agent-hitch 0.2.16 → 0.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -28
- package/README.zh-CN.md +6 -26
- package/dist/scripts/benchmark-dataset-verification.js +118 -0
- package/dist/scripts/benchmark-dataset-verification.js.map +1 -0
- package/dist/scripts/canary-external-endpoint.js +56 -0
- package/dist/scripts/canary-external-endpoint.js.map +1 -0
- package/dist/scripts/canary-native-training.js +8 -6
- package/dist/scripts/canary-native-training.js.map +1 -1
- package/dist/scripts/canary-remote-training.js +8 -6
- package/dist/scripts/canary-remote-training.js.map +1 -1
- package/dist/scripts/check-architecture.js +1 -1
- package/dist/scripts/check-architecture.js.map +1 -1
- package/dist/src/adapters/providers/codex.js +5 -2
- package/dist/src/adapters/providers/codex.js.map +1 -1
- package/dist/src/adapters/providers/model-call.js +1 -2
- package/dist/src/adapters/providers/model-call.js.map +1 -1
- package/dist/src/adapters/providers/training-tool.js +2 -0
- package/dist/src/adapters/providers/training-tool.js.map +1 -1
- package/dist/src/backends/harbor/artifact-pins.js +42 -0
- package/dist/src/backends/harbor/artifact-pins.js.map +1 -0
- package/dist/src/backends/harbor/backend.js +16 -8
- package/dist/src/backends/harbor/backend.js.map +1 -1
- package/dist/src/backends/harbor/bound-credential-helper.js +24 -0
- package/dist/src/backends/harbor/bound-credential-helper.js.map +1 -0
- package/dist/src/backends/harbor/credential-snapshot.js +71 -0
- package/dist/src/backends/harbor/credential-snapshot.js.map +1 -0
- package/dist/src/backends/harbor/environment-config.js +25 -2
- package/dist/src/backends/harbor/environment-config.js.map +1 -1
- package/dist/src/backends/harbor/environment-files.js +143 -0
- package/dist/src/backends/harbor/environment-files.js.map +1 -0
- package/dist/src/backends/harbor/evaluation-binding.js +160 -0
- package/dist/src/backends/harbor/evaluation-binding.js.map +1 -0
- package/dist/src/backends/harbor/host-credential-helper.js +5 -0
- package/dist/src/backends/harbor/host-credential-helper.js.map +1 -1
- package/dist/src/backends/harbor/index.js +2 -0
- package/dist/src/backends/harbor/index.js.map +1 -1
- package/dist/src/backends/harbor/model-proxy-config.js +3 -18
- package/dist/src/backends/harbor/model-proxy-config.js.map +1 -1
- package/dist/src/backends/harbor/portable-regrade.js +15 -3
- package/dist/src/backends/harbor/portable-regrade.js.map +1 -1
- package/dist/src/backends/harbor/python-runtime.js +71 -0
- package/dist/src/backends/harbor/python-runtime.js.map +1 -0
- package/dist/src/backends/harbor/tools.js +6 -4
- package/dist/src/backends/harbor/tools.js.map +1 -1
- package/dist/src/backends/index.js +3 -0
- package/dist/src/backends/index.js.map +1 -1
- package/dist/src/cli/arguments.js +30 -30
- package/dist/src/cli/arguments.js.map +1 -1
- package/dist/src/cli/commands/capabilities.js +7 -3
- package/dist/src/cli/commands/capabilities.js.map +1 -1
- package/dist/src/cli/commands/daemon.js +0 -17
- package/dist/src/cli/commands/daemon.js.map +1 -1
- package/dist/src/cli/commands/eval-binding.js +32 -0
- package/dist/src/cli/commands/eval-binding.js.map +1 -0
- package/dist/src/cli/commands/eval.js +21 -15
- package/dist/src/cli/commands/eval.js.map +1 -1
- package/dist/src/cli/commands/models.js +32 -45
- package/dist/src/cli/commands/models.js.map +1 -1
- package/dist/src/cli/commands/run.js +0 -35
- package/dist/src/cli/commands/run.js.map +1 -1
- package/dist/src/cli/main.js +0 -4
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/output.js +5 -16
- package/dist/src/cli/output.js.map +1 -1
- package/dist/src/control-plane/eval-records.js +3 -1
- package/dist/src/control-plane/eval-records.js.map +1 -1
- package/dist/src/control-plane/eval-recovery.js +4 -1
- package/dist/src/control-plane/eval-recovery.js.map +1 -1
- package/dist/src/control-plane/eval-scheduler.js +16 -8
- package/dist/src/control-plane/eval-scheduler.js.map +1 -1
- package/dist/src/control-plane/index.js +0 -2
- package/dist/src/control-plane/index.js.map +1 -1
- package/dist/src/control-plane/model-capture-planning.js +3 -4
- package/dist/src/control-plane/model-capture-planning.js.map +1 -1
- package/dist/src/control-plane/remote-model-routes.js +4 -24
- package/dist/src/control-plane/remote-model-routes.js.map +1 -1
- package/dist/src/control-plane/remote-offer-contract.js +2 -2
- package/dist/src/control-plane/remote-offer-contract.js.map +1 -1
- package/dist/src/control-plane/remote-result-transport.js +7 -8
- package/dist/src/control-plane/remote-result-transport.js.map +1 -1
- package/dist/src/control-plane/remote-work-coordinator.js +2 -2
- package/dist/src/control-plane/remote-work-coordinator.js.map +1 -1
- package/dist/src/control-plane/remote-work-recovery.js +2 -2
- package/dist/src/control-plane/remote-work-recovery.js.map +1 -1
- package/dist/src/control-plane/remote-worker-protocol.js +1 -1
- package/dist/src/control-plane/remote-worker-protocol.js.map +1 -1
- package/dist/src/control-plane/remote-worker-runner.js +21 -6
- package/dist/src/control-plane/remote-worker-runner.js.map +1 -1
- package/dist/src/control-plane/remote-workers.js +2 -2
- package/dist/src/control-plane/remote-workers.js.map +1 -1
- package/dist/src/control-plane/rerun-recovery.js +1 -1
- package/dist/src/control-plane/rerun-recovery.js.map +1 -1
- package/dist/src/control-plane/rerun-scheduler.js +21 -14
- package/dist/src/control-plane/rerun-scheduler.js.map +1 -1
- package/dist/src/control-plane/rerun-source.js +5 -2
- package/dist/src/control-plane/rerun-source.js.map +1 -1
- package/dist/src/control-plane/rerun-submission.js +7 -5
- package/dist/src/control-plane/rerun-submission.js.map +1 -1
- package/dist/src/control-plane/synthetic-result.js +3 -2
- package/dist/src/control-plane/synthetic-result.js.map +1 -1
- package/dist/src/control-plane/worker-model-relay.js +1 -1
- package/dist/src/control-plane/worker-model-relay.js.map +1 -1
- package/dist/src/controller-runtime/hash.js +6 -0
- package/dist/src/controller-runtime/hash.js.map +1 -1
- package/dist/src/daemon/client.js +12 -35
- package/dist/src/daemon/client.js.map +1 -1
- package/dist/src/daemon/evaluation-binding.js +33 -0
- package/dist/src/daemon/evaluation-binding.js.map +1 -0
- package/dist/src/daemon/evaluation-submission.js +27 -0
- package/dist/src/daemon/evaluation-submission.js.map +1 -0
- package/dist/src/daemon/index.js +1 -0
- package/dist/src/daemon/index.js.map +1 -1
- package/dist/src/daemon/json-stream.js +98 -0
- package/dist/src/daemon/json-stream.js.map +1 -0
- package/dist/src/daemon/scheduler.js +1 -4
- package/dist/src/daemon/scheduler.js.map +1 -1
- package/dist/src/daemon/server.js +14 -54
- package/dist/src/daemon/server.js.map +1 -1
- package/dist/src/domain/endpoints.js +2 -0
- package/dist/src/domain/endpoints.js.map +1 -0
- package/dist/src/domain/evaluation-binding.js +5 -0
- package/dist/src/domain/evaluation-binding.js.map +1 -0
- package/dist/src/domain/index.js +2 -0
- package/dist/src/domain/index.js.map +1 -1
- package/dist/src/domain/runs.js.map +1 -1
- package/dist/src/evals/benchmark-adapter-manifest.js +95 -32
- package/dist/src/evals/benchmark-adapter-manifest.js.map +1 -1
- package/dist/src/evals/benchmark-verification.js +106 -0
- package/dist/src/evals/benchmark-verification.js.map +1 -0
- package/dist/src/evals/collect-only-rerun.js +3 -2
- package/dist/src/evals/collect-only-rerun.js.map +1 -1
- package/dist/src/evals/directory.js +9 -1
- package/dist/src/evals/directory.js.map +1 -1
- package/dist/src/evals/endpoint-attempts.js +112 -0
- package/dist/src/evals/endpoint-attempts.js.map +1 -0
- package/dist/src/evals/endpoint-usage.js +8 -0
- package/dist/src/evals/endpoint-usage.js.map +1 -0
- package/dist/src/evals/environment-binding.js +9 -0
- package/dist/src/evals/environment-binding.js.map +1 -0
- package/dist/src/evals/eval-artifact-planning.js +10 -1
- package/dist/src/evals/eval-artifact-planning.js.map +1 -1
- package/dist/src/evals/eval-finalization.js +2 -3
- package/dist/src/evals/eval-finalization.js.map +1 -1
- package/dist/src/evals/eval-logical-plan.js +2 -0
- package/dist/src/evals/eval-logical-plan.js.map +1 -1
- package/dist/src/evals/eval-result-builder.js +4 -0
- package/dist/src/evals/eval-result-builder.js.map +1 -1
- package/dist/src/evals/eval-state.js +22 -0
- package/dist/src/evals/eval-state.js.map +1 -0
- package/dist/src/evals/execution-plan.js +6 -2
- package/dist/src/evals/execution-plan.js.map +1 -1
- package/dist/src/evals/index.js +5 -1
- package/dist/src/evals/index.js.map +1 -1
- package/dist/src/evals/infrastructure-retry.js +2 -0
- package/dist/src/evals/infrastructure-retry.js.map +1 -1
- package/dist/src/evals/model-capture-runtime.js +9 -13
- package/dist/src/evals/model-capture-runtime.js.map +1 -1
- package/dist/src/evals/native-phase-evidence.js +8 -2
- package/dist/src/evals/native-phase-evidence.js.map +1 -1
- package/dist/src/evals/planned-execution.js +7 -2
- package/dist/src/evals/planned-execution.js.map +1 -1
- package/dist/src/evals/planned-progress-publisher.js +18 -5
- package/dist/src/evals/planned-progress-publisher.js.map +1 -1
- package/dist/src/evals/planned-retry-execution.js +1 -0
- package/dist/src/evals/planned-retry-execution.js.map +1 -1
- package/dist/src/evals/preparation-rerun.js +0 -1
- package/dist/src/evals/preparation-rerun.js.map +1 -1
- package/dist/src/evals/progress.js +92 -7
- package/dist/src/evals/progress.js.map +1 -1
- package/dist/src/evals/records.js +12 -2
- package/dist/src/evals/records.js.map +1 -1
- package/dist/src/evals/recovery.js +2 -0
- package/dist/src/evals/recovery.js.map +1 -1
- package/dist/src/evals/remote-rerun-execution.js +1 -3
- package/dist/src/evals/remote-rerun-execution.js.map +1 -1
- package/dist/src/evals/remote-verifier-rerun.js +1 -1
- package/dist/src/evals/remote-verifier-rerun.js.map +1 -1
- package/dist/src/evals/request.js +14 -45
- package/dist/src/evals/request.js.map +1 -1
- package/dist/src/evals/rerun-observation.js +31 -0
- package/dist/src/evals/rerun-observation.js.map +1 -0
- package/dist/src/evals/rerun.js +23 -28
- package/dist/src/evals/rerun.js.map +1 -1
- package/dist/src/evals/service.js +45 -42
- package/dist/src/evals/service.js.map +1 -1
- package/dist/src/evals/shared-runtime.js +125 -0
- package/dist/src/evals/shared-runtime.js.map +1 -0
- package/dist/src/evals/trial-import.js +10 -2
- package/dist/src/evals/trial-import.js.map +1 -1
- package/dist/src/evals/trial-publication-recovery.js +1 -1
- package/dist/src/evals/trial-publication-recovery.js.map +1 -1
- package/dist/src/evals/verifier-artifacts.js +1 -0
- package/dist/src/evals/verifier-artifacts.js.map +1 -1
- package/dist/src/evals/verifier-only-rerun.js +1 -1
- package/dist/src/evals/verifier-only-rerun.js.map +1 -1
- package/dist/src/evals/verifier-rerun-result.js +3 -2
- package/dist/src/evals/verifier-rerun-result.js.map +1 -1
- package/dist/src/evals/verifier-score-artifacts.js +9 -1
- package/dist/src/evals/verifier-score-artifacts.js.map +1 -1
- package/dist/src/foundation/config.js +0 -5
- package/dist/src/foundation/config.js.map +1 -1
- package/dist/src/inference/index.js +3 -22
- package/dist/src/inference/index.js.map +1 -1
- package/dist/src/inference/lock.js +44 -130
- package/dist/src/inference/lock.js.map +1 -1
- package/dist/src/model-access/endpoint-contract.js +127 -0
- package/dist/src/model-access/endpoint-contract.js.map +1 -0
- package/dist/src/model-access/endpoint-credentials.js +54 -0
- package/dist/src/model-access/endpoint-credentials.js.map +1 -0
- package/dist/src/model-access/endpoint-probe-stream.js +66 -0
- package/dist/src/model-access/endpoint-probe-stream.js.map +1 -0
- package/dist/src/model-access/endpoint-verification.js +76 -0
- package/dist/src/model-access/endpoint-verification.js.map +1 -0
- package/dist/src/model-access/endpoints.js +105 -0
- package/dist/src/model-access/endpoints.js.map +1 -0
- package/dist/src/model-access/index.js +5 -1
- package/dist/src/model-access/index.js.map +1 -1
- package/dist/src/model-access/proxy.js +57 -14
- package/dist/src/model-access/proxy.js.map +1 -1
- package/dist/src/model-access/remote-model.js +21 -29
- package/dist/src/model-access/remote-model.js.map +1 -1
- package/dist/src/model-access/usage.js +30 -0
- package/dist/src/model-access/usage.js.map +1 -0
- package/dist/src/runs/endpoint-runtime.js +40 -0
- package/dist/src/runs/endpoint-runtime.js.map +1 -0
- package/dist/src/runs/executor.js +28 -42
- package/dist/src/runs/executor.js.map +1 -1
- package/dist/src/runs/local-inference-environment.js +5 -53
- package/dist/src/runs/local-inference-environment.js.map +1 -1
- package/dist/src/runs/manifest.js +1 -0
- package/dist/src/runs/manifest.js.map +1 -1
- package/dist/src/runs/outcome.js +3 -10
- package/dist/src/runs/outcome.js.map +1 -1
- package/dist/src/runs/queued.js +3 -2
- package/dist/src/runs/queued.js.map +1 -1
- package/dist/src/runs/records.js +3 -0
- package/dist/src/runs/records.js.map +1 -1
- package/dist/src/runs/request.js +10 -38
- package/dist/src/runs/request.js.map +1 -1
- package/dist/src/workers/remote-harbor-work-spec.js +8 -10
- package/dist/src/workers/remote-harbor-work-spec.js.map +1 -1
- package/dist/src/workers/remote-harbor-worker.js +3 -0
- package/dist/src/workers/remote-harbor-worker.js.map +1 -1
- package/docs/evidence/eval-preparation-2026-10-09.json +393 -0
- package/docs/evidence/eval-preparation-2026-10-09.md +178 -0
- package/docs/local-model-inference-spec.zh-CN.md +4 -663
- package/docs/resource-storage.zh-CN.md +116 -0
- package/docs/schemas/endpoint-evaluation-attempt.schema.json +29 -0
- package/docs/schemas/eval-artifact-pin.schema.json +14 -0
- package/docs/schemas/eval-execution-plan.schema.json +486 -105
- package/docs/schemas/eval-progress.schema.json +1 -1
- package/docs/schemas/eval-request.schema.json +149 -18
- package/docs/schemas/eval-rerun-submission.schema.json +8 -1
- package/docs/schemas/eval-result.schema.json +310 -56
- package/docs/schemas/evaluation-binding.schema.json +15 -0
- package/docs/schemas/external-endpoint-binding.schema.json +153 -0
- package/docs/schemas/external-endpoint-config.schema.json +93 -0
- package/docs/schemas/inference-execution-evidence.schema.json +253 -3
- package/docs/schemas/inference-lock-v3.schema.json +6 -0
- package/docs/schemas/inference-lock.schema.json +842 -341
- package/docs/schemas/ordered-eval-control.schema.json +7 -1
- package/docs/schemas/ready-endpoint-binding.schema.json +201 -0
- package/docs/schemas/run-manifest.schema.json +6 -0
- package/docs/schemas/run-request.schema.json +122 -20
- package/examples/external-inference/.env.example +16 -0
- package/examples/external-inference/README.md +203 -0
- package/examples/external-inference/accept.mjs +297 -0
- package/examples/external-inference/compose.gateway.yaml +119 -0
- package/examples/external-inference/compose.single.yaml +64 -0
- package/examples/external-inference/compose.tp2.yaml +15 -0
- package/examples/external-inference/deployment.example.json +58 -0
- package/examples/external-inference/endpoint.chat-completions.example.json +13 -0
- package/examples/external-inference/endpoint.responses.example.json +13 -0
- package/integrations/harbor/hitch_build_inputs.py +213 -0
- package/integrations/harbor/hitch_build_process.py +126 -0
- package/integrations/harbor/hitch_compose_preparation.py +274 -0
- package/integrations/harbor/hitch_harbor_agent.py +25 -39
- package/integrations/harbor/hitch_harbor_environment.py +96 -3
- package/integrations/harbor/hitch_image_cache.py +357 -0
- package/integrations/harbor/hitch_python_runtime.py +303 -0
- package/integrations/harbor/hitch_shared_runtime.py +123 -0
- package/integrations/model-call/cli.js +11 -10
- package/integrations/training-tool/cli.js +5 -3
- package/node_modules/smol-toml/LICENSE +24 -0
- package/node_modules/smol-toml/README.md +418 -0
- package/node_modules/smol-toml/dist/date.d.ts +41 -0
- package/node_modules/smol-toml/dist/date.js +127 -0
- package/node_modules/smol-toml/dist/error.d.ts +38 -0
- package/node_modules/smol-toml/dist/error.js +63 -0
- package/node_modules/smol-toml/dist/extract.js +69 -0
- package/node_modules/smol-toml/dist/index.cjs +734 -0
- package/node_modules/smol-toml/dist/index.d.ts +43 -0
- package/node_modules/smol-toml/dist/index.js +33 -0
- package/node_modules/smol-toml/dist/parse.d.ts +36 -0
- package/node_modules/smol-toml/dist/parse.js +149 -0
- package/node_modules/smol-toml/dist/primitive.js +238 -0
- package/node_modules/smol-toml/dist/stringify.d.ts +31 -0
- package/node_modules/smol-toml/dist/stringify.js +181 -0
- package/node_modules/smol-toml/dist/struct.js +179 -0
- package/node_modules/smol-toml/dist/util.d.ts +38 -0
- package/node_modules/smol-toml/dist/util.js +89 -0
- package/node_modules/smol-toml/package.json +68 -0
- package/package.json +15 -4
- package/dist/src/cli/commands/local.js +0 -130
- package/dist/src/cli/commands/local.js.map +0 -1
- package/dist/src/cli/commands/model-node.js +0 -26
- package/dist/src/cli/commands/model-node.js.map +0 -1
- package/dist/src/control-plane/inference-manager.js +0 -357
- package/dist/src/control-plane/inference-manager.js.map +0 -1
- package/dist/src/control-plane/managed-gateway-receipt.js +0 -26
- package/dist/src/control-plane/managed-gateway-receipt.js.map +0 -1
- package/dist/src/control-plane/managed-service-recovery.js +0 -158
- package/dist/src/control-plane/managed-service-recovery.js.map +0 -1
- package/dist/src/daemon/inference-prepare.js +0 -47
- package/dist/src/daemon/inference-prepare.js.map +0 -1
- package/dist/src/inference/daemon-capacity.js +0 -41
- package/dist/src/inference/daemon-capacity.js.map +0 -1
- package/dist/src/inference/device-reservation.js +0 -58
- package/dist/src/inference/device-reservation.js.map +0 -1
- package/dist/src/inference/doctor.js +0 -95
- package/dist/src/inference/doctor.js.map +0 -1
- package/dist/src/inference/generation-recovery.js +0 -83
- package/dist/src/inference/generation-recovery.js.map +0 -1
- package/dist/src/inference/managed-launcher.js +0 -35
- package/dist/src/inference/managed-launcher.js.map +0 -1
- package/dist/src/inference/materialize.js +0 -66
- package/dist/src/inference/materialize.js.map +0 -1
- package/dist/src/inference/model-location.js +0 -34
- package/dist/src/inference/model-location.js.map +0 -1
- package/dist/src/inference/node-client.js +0 -167
- package/dist/src/inference/node-client.js.map +0 -1
- package/dist/src/inference/node-registry.js +0 -79
- package/dist/src/inference/node-registry.js.map +0 -1
- package/dist/src/inference/observation.js +0 -79
- package/dist/src/inference/observation.js.map +0 -1
- package/dist/src/inference/preflight.js +0 -132
- package/dist/src/inference/preflight.js.map +0 -1
- package/dist/src/inference/process-sglang.js +0 -169
- package/dist/src/inference/process-sglang.js.map +0 -1
- package/dist/src/inference/protocol-probe.js +0 -29
- package/dist/src/inference/protocol-probe.js.map +0 -1
- package/dist/src/inference/remote-model-store.js +0 -24
- package/dist/src/inference/remote-model-store.js.map +0 -1
- package/dist/src/inference/runtime-catalog.js +0 -41
- package/dist/src/inference/runtime-catalog.js.map +0 -1
- package/dist/src/inference/runtime-store.js +0 -93
- package/dist/src/inference/runtime-store.js.map +0 -1
- package/dist/src/inference/service-attachment.js +0 -46
- package/dist/src/inference/service-attachment.js.map +0 -1
- package/dist/src/inference/service-inspection.js +0 -38
- package/dist/src/inference/service-inspection.js.map +0 -1
- package/dist/src/inference/sglang.js +0 -279
- package/dist/src/inference/sglang.js.map +0 -1
- package/dist/src/inference/supervisor.js +0 -460
- package/dist/src/inference/supervisor.js.map +0 -1
- package/dist/src/model-access/local-gateway-request.js +0 -139
- package/dist/src/model-access/local-gateway-request.js.map +0 -1
- package/dist/src/model-access/local-gateway.js +0 -323
- package/dist/src/model-access/local-gateway.js.map +0 -1
- package/dist/src/runs/local-inference-run.js +0 -53
- package/dist/src/runs/local-inference-run.js.map +0 -1
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import { cumulativeEndpointUsage } from "./endpoint-usage.js";
|
|
2
|
+
import { freezeEndpointRequest, loadFrozenEndpoint } from "../model-access/index.js";
|
|
1
3
|
import { admitEvalResources } from "./resource-eval-lifecycle.js";
|
|
2
4
|
import path from "node:path";
|
|
3
5
|
import { resolveHarness } from "../artifacts/index.js";
|
|
4
6
|
import { HitchError, SCHEMA_VERSION, atomicWriteJSON, beginEvalEnvironmentImagePlanning, ensureDir, invalidInput, statePaths, withEnvironmentImageReferenceLock, writeEvalEnvironmentImageReferences } from "../foundation/index.js";
|
|
5
7
|
import { parseHarnessReference } from "../revisions/index.js";
|
|
6
|
-
import { buildLocalGitTransport, lockedHarnessRef, runHarborBackend, verifyLocalGitTransport } from "../backends/index.js";
|
|
8
|
+
import { assertHarborArtifactPins, buildLocalGitTransport, lockedHarnessRef, runHarborBackend, verifyLocalGitTransport } from "../backends/index.js";
|
|
7
9
|
import { ensureControllerRuntime, writeRuntimeReference } from "../controller-runtime/index.js";
|
|
8
10
|
import { importEvalTrialRun, importEvalTrialRuns, TrialBundlePendingError, validateEvalTrialReferences } from "./trial-import.js";
|
|
9
11
|
import { EvalEventSink } from "./events.js";
|
|
10
|
-
import { createEvalProgress, mergeEvalProgressTrial, writeEvalProgress } from "./progress.js";
|
|
12
|
+
import { createEvalProgress, mergeEvalProgressTrial, readEvalProgress, writeEvalProgress } from "./progress.js";
|
|
11
13
|
import { runInfrastructureRetries } from "./infrastructure-retry.js";
|
|
12
14
|
import { newEvalId, resolveLocalDatasetTaskIds, validateEvalId, validateEvalRequest } from "./request.js";
|
|
13
15
|
import { prepareEvalDirectory } from "./directory.js";
|
|
@@ -28,14 +30,14 @@ import { emitEvalPlanLifecycle } from "./eval-lifecycle-events.js";
|
|
|
28
30
|
import { materializeEvalPlan, writeEvalPlanningCheckpoint } from "./eval-logical-plan.js";
|
|
29
31
|
import { planTaskSchedulingHints, schedulingHintsFromPlan } from "./duration-estimator.js";
|
|
30
32
|
import { buildCompletedEvalResult, buildFailedEvalResult } from "./eval-result-builder.js";
|
|
33
|
+
import { verifyBenchmarkExecution } from "./benchmark-verification.js";
|
|
31
34
|
import { loadBenchmarkAdapterManifest } from "./benchmark-adapter-manifest.js";
|
|
32
|
-
export async function runEval({ evalId = newEvalId(), request, root, env = process.env, harborExecutable, signal, onEvent, trialBundleGraceMs, precreated = false, replaceTerminal = false, normalizedRequest, maxConcurrentOverride, executionResources, executionResourceSource = "operator-default", executionStrategy = "legacy-attempt-shards", executionWorker, modelCapturePlan, workItemAdmission, remoteWorkExecutor,
|
|
35
|
+
export async function runEval({ evalId = newEvalId(), request, root, env = process.env, harborExecutable, signal, onEvent, trialBundleGraceMs, precreated = false, replaceTerminal = false, normalizedRequest, maxConcurrentOverride, executionResources, executionResourceSource = "operator-default", executionStrategy = "legacy-attempt-shards", executionWorker, modelCapturePlan, workItemAdmission, remoteWorkExecutor, resumeExisting = false, onControlPhase, onWorkItemState, onWorkItemQueued, evolutionBaselineDurations, dockerResourceReaper, environmentBuildMode = "backend", environmentImageResolver, environmentImageBuilder, environmentImageManifestLoader, harborArtifactBuilder }) {
|
|
33
36
|
if (!root)
|
|
34
37
|
throw invalidInput("a Hitch state root is required for eval");
|
|
35
|
-
if (inferenceRerunId && !/^rerun_[a-f0-9]{32}$/.test(inferenceRerunId))
|
|
36
|
-
throw invalidInput("invalid inference repair scope");
|
|
37
38
|
evalId = validateEvalId(evalId);
|
|
38
|
-
const
|
|
39
|
+
const frozenRequest = await freezeEndpointRequest(root, normalizedRequest || request, env);
|
|
40
|
+
const persistedRequest = normalizedRequest ? frozenRequest : await validateEvalRequest(frozenRequest);
|
|
39
41
|
if (maxConcurrentOverride !== undefined && (!Number.isSafeInteger(maxConcurrentOverride) || maxConcurrentOverride < 1 || maxConcurrentOverride > persistedRequest.max_concurrent)) {
|
|
40
42
|
throw invalidInput("control-plane max concurrency override is invalid");
|
|
41
43
|
}
|
|
@@ -49,9 +51,10 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
49
51
|
let result;
|
|
50
52
|
let trialRefs = [];
|
|
51
53
|
let progress = null;
|
|
54
|
+
let progressRecoveryError;
|
|
52
55
|
let schedulerSummary;
|
|
53
56
|
let captureRuntime;
|
|
54
|
-
|
|
57
|
+
const externalEndpoint = persistedRequest.endpoint_binding ? await loadFrozenEndpoint(root, persistedRequest.endpoint_binding) : undefined;
|
|
55
58
|
let failureStage = "planning";
|
|
56
59
|
try {
|
|
57
60
|
const planningStartedAt = Date.now();
|
|
@@ -95,7 +98,8 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
95
98
|
reference: runtimeRefFile,
|
|
96
99
|
});
|
|
97
100
|
const localTaskIds = await resolveLocalDatasetTaskIds(normalized.dataset);
|
|
98
|
-
const
|
|
101
|
+
const verifiedBenchmark = localTaskIds !== null ? await verifyBenchmarkExecution({ root, evalId, evalDirectory, request: normalized, revisionIdentity: resolvedRevision.identity }) : null;
|
|
102
|
+
const standardDataset = localTaskIds !== null && (verifiedBenchmark !== null || await import("../resources/index.js").then(m => m.readResourceInput(normalized.dataset)) !== undefined);
|
|
99
103
|
const resume = resumeExisting ? await loadEvalResumeState(evalDirectory) : null;
|
|
100
104
|
await withEnvironmentImageReferenceLock(root, () => beginEvalEnvironmentImagePlanning(evalDirectory, evalId));
|
|
101
105
|
const localPlanning = await planLocalEvalInputs({ root, dataset: normalized.dataset, taskIds: localTaskIds, defaultResources: executionResources ?? DEFAULT_EVAL_TRIAL_RESOURCES, defaultSource: executionResourceSource, benchmarkId: normalized.benchmark_id, benchmarkRevision: normalized.benchmark_revision, buildMode: environmentBuildMode, harborTaskResourceInspector: path.join(controllerRuntime.directory, "payload", "integrations", "harbor", "hitch_harbor_task_resources.py"), ...(environmentImageResolver ? { resolver: environmentImageResolver } : {}), ...(environmentImageBuilder ? { builder: environmentImageBuilder } : {}), ...(resume ? { resumePlan: resume.executionPlan } : {}), ...(harborExecutable ? { harborExecutable } : {}), env, ...(signal ? { signal } : {}) });
|
|
@@ -115,26 +119,9 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
115
119
|
capture.plan = forceLocalInferenceCapturePlan(capture.plan, remoteWorkExecutor ? "in-sandbox" : "host-side");
|
|
116
120
|
capture.persist = true;
|
|
117
121
|
}
|
|
118
|
-
if (normalized.
|
|
122
|
+
if (normalized.endpoint_binding) {
|
|
119
123
|
capture.plan = forceLocalInferenceCapturePlan(capture.plan, remoteWorkExecutor ? "in-sandbox" : "host-side");
|
|
120
124
|
capture.persist = true;
|
|
121
|
-
if (!inferenceCoordinator)
|
|
122
|
-
throw new HitchError("local eval inference requires the Hitch daemon", { code: "inference_route_unavailable", exitCode: 12 });
|
|
123
|
-
const resumedInferenceId = resume?.plan.candidate?.inference_id;
|
|
124
|
-
if (resumedInferenceId !== undefined && (typeof resumedInferenceId !== "string" || !/^sha256:[a-f0-9]{64}$/.test(resumedInferenceId))) {
|
|
125
|
-
throw new HitchError("persisted local inference identity is invalid", { code: "inference_lock_mismatch", exitCode: 12 });
|
|
126
|
-
}
|
|
127
|
-
inferenceLease = await inferenceCoordinator.acquire({
|
|
128
|
-
run_id: inferenceRerunId ? `run_${inferenceRerunId.slice("rerun_".length)}` : `run_${evalId.slice("eval_".length)}`,
|
|
129
|
-
harness_ref: normalized.harness_ref,
|
|
130
|
-
selection: resumedInferenceId
|
|
131
|
-
? { ...normalized.local_inference, inference_id: resumedInferenceId }
|
|
132
|
-
: normalized.local_inference,
|
|
133
|
-
cache_scope_owner: inferenceRerunId ? `${evalId}:${inferenceRerunId}` : evalId,
|
|
134
|
-
evidence_owner: { kind: "eval", eval_id: evalId, ...(inferenceRerunId ? { rerun_id: inferenceRerunId } : {}) },
|
|
135
|
-
...(signal ? { signal } : {}),
|
|
136
|
-
on_event: (event) => sink.emit(event),
|
|
137
|
-
});
|
|
138
125
|
}
|
|
139
126
|
const multipleRuntimeContracts = localPlanning.taskRuntimeContracts.length > 1;
|
|
140
127
|
const logicalPlan = {
|
|
@@ -146,10 +133,10 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
146
133
|
id: "candidate-1", requested_harness_ref: normalized.harness_ref,
|
|
147
134
|
harness_ref: lockedHarnessRef(resolvedRevision), harness_id: resolvedRevision.harness_id,
|
|
148
135
|
revision_identity: resolvedRevision.identity, model: normalized.model || null,
|
|
149
|
-
...(
|
|
150
|
-
...(inferenceLease?.lock.model_node ? { model_node: inferenceLease.lock.model_node } : {}),
|
|
136
|
+
...(normalized.endpoint_binding ? { endpoint_binding: normalized.endpoint_binding } : {}),
|
|
151
137
|
...(normalized.training_binding ? { training_binding: normalized.training_binding } : {}),
|
|
152
138
|
},
|
|
139
|
+
...(normalized.endpoint_binding ? { endpoint_binding: normalized.endpoint_binding } : {}),
|
|
153
140
|
dataset: normalized.dataset,
|
|
154
141
|
benchmark_id: normalized.benchmark_id,
|
|
155
142
|
benchmark_revision: normalized.benchmark_revision,
|
|
@@ -181,16 +168,15 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
181
168
|
writeEvalPlanningCheckpoint(evalDirectory, logicalPlan, progress),
|
|
182
169
|
]);
|
|
183
170
|
const selectedArtifactBuilder = harborArtifactBuilder ?? (env.NODE_ENV === "test" && env.HITCH_TEST_HOST_ARTIFACT_BUILDER === "1" ? prepareHostHarborArtifactForTest : prepareHarborArtifact);
|
|
184
|
-
const prepared = await prepareEvalArtifactAssignments({ builder: selectedArtifactBuilder, root, resolvedRevision, requestedReference, controllerRuntime, ...(localTransport ? { localTransport } : {}), taskRuntimeContracts: localPlanning.taskRuntimeContracts, sink, env, ...(signal ? { signal } : {}) });
|
|
171
|
+
const prepared = await prepareEvalArtifactAssignments({ builder: selectedArtifactBuilder, root, resolvedRevision, requestedReference, controllerRuntime, ...(!remoteWorkExecutor ? { sharedRuntimeDirectory: path.join(evalDirectory, "shared-runtime") } : {}), ...(localTransport ? { localTransport } : {}), taskRuntimeContracts: localPlanning.taskRuntimeContracts, sink, env, ...(signal ? { signal } : {}) });
|
|
185
172
|
const preparedAssignments = prepared.assignments;
|
|
173
|
+
assertHarborArtifactPins(normalized.artifact_pins, preparedAssignments.map(entry => entry.artifact));
|
|
186
174
|
const preparedArtifact = prepared.primary;
|
|
187
175
|
const preparedArtifacts = prepared.artifactsById;
|
|
188
176
|
const activeCaptureRuntime = await startEvalModelCaptureRuntime({
|
|
189
177
|
plan: capture.plan, evalId, evalDirectory, env,
|
|
190
178
|
...(normalized.training_binding ? { trainingBinding: normalized.training_binding } : {}),
|
|
191
|
-
...(
|
|
192
|
-
binding: inferenceLease.binding, credential: inferenceLease.credential, modelId: inferenceLease.lock.model_id,
|
|
193
|
-
} } : {}),
|
|
179
|
+
...(externalEndpoint ? { externalEndpoint } : {}),
|
|
194
180
|
});
|
|
195
181
|
captureRuntime = activeCaptureRuntime;
|
|
196
182
|
capture.plan = activeCaptureRuntime.plan;
|
|
@@ -218,7 +204,6 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
218
204
|
candidate: {
|
|
219
205
|
revisionIdentity: resolvedRevision.identity,
|
|
220
206
|
artifactId: preparedArtifact.artifact_id,
|
|
221
|
-
...(inferenceLease ? { inferenceId: inferenceLease.lock.inference_id } : {}),
|
|
222
207
|
artifactAssignments: preparedAssignments.map((entry) => ({
|
|
223
208
|
taskIds: entry.taskIds,
|
|
224
209
|
artifactId: entry.artifact.artifact_id,
|
|
@@ -296,6 +281,7 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
296
281
|
evalId,
|
|
297
282
|
evalDirectory,
|
|
298
283
|
plan: executionPlan,
|
|
284
|
+
...(verifiedBenchmark ? { verifiedBenchmark } : {}),
|
|
299
285
|
progress,
|
|
300
286
|
request: normalized,
|
|
301
287
|
root,
|
|
@@ -322,10 +308,7 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
322
308
|
...(activeCaptureRuntime.exporter ? { interactionCaptureExporter: activeCaptureRuntime.exporter } : {}),
|
|
323
309
|
...(remoteWorkExecutor ? { remoteWorkExecutor: (execution) => remoteWorkExecutor({
|
|
324
310
|
...execution,
|
|
325
|
-
...(
|
|
326
|
-
kind: "managed-inference", binding: inferenceLease.binding, credential: inferenceLease.credential,
|
|
327
|
-
modelId: inferenceLease.lock.model_id, maxOutputTokens: inferenceLease.lock.generation.max_output_tokens,
|
|
328
|
-
} } : {}),
|
|
311
|
+
...(externalEndpoint ? { modelTarget: { kind: "external-endpoint", endpoint: externalEndpoint } } : {}),
|
|
329
312
|
}) } : {}),
|
|
330
313
|
});
|
|
331
314
|
progress = execution.progress;
|
|
@@ -360,14 +343,14 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
360
343
|
if (progress === null)
|
|
361
344
|
throw new Error("eval progress was not initialized");
|
|
362
345
|
const previousGeneration = progress.generation;
|
|
363
|
-
|
|
364
|
-
if (
|
|
346
|
+
const next = mergeEvalProgressTrial(progress, ref);
|
|
347
|
+
if (next.generation === previousGeneration)
|
|
365
348
|
return;
|
|
366
349
|
await validateEvalTrialReferences(root, evalId, [ref], {
|
|
367
350
|
benchmarkId: normalized.benchmark_id,
|
|
368
351
|
benchmarkRevision: normalized.benchmark_revision,
|
|
369
352
|
});
|
|
370
|
-
await writeEvalProgress(evalDirectory,
|
|
353
|
+
progress = await writeEvalProgress(evalDirectory, next);
|
|
371
354
|
sink.emit({
|
|
372
355
|
type: "eval.trial.published",
|
|
373
356
|
trial_id: ref.trial_id,
|
|
@@ -407,6 +390,7 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
407
390
|
harborJobDirectory,
|
|
408
391
|
expectedAttempt: logicalAttempt,
|
|
409
392
|
request: normalized,
|
|
393
|
+
...(verifiedBenchmark ? { verifiedBenchmark } : {}),
|
|
410
394
|
resolvedRevision,
|
|
411
395
|
benchmarkId: normalized.benchmark_id,
|
|
412
396
|
benchmarkRevision: normalized.benchmark_revision,
|
|
@@ -435,6 +419,7 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
435
419
|
harborJobDirectory,
|
|
436
420
|
expectedAttempt: logicalAttempt,
|
|
437
421
|
request: normalized,
|
|
422
|
+
...(verifiedBenchmark ? { verifiedBenchmark } : {}),
|
|
438
423
|
resolvedRevision,
|
|
439
424
|
benchmarkId: normalized.benchmark_id,
|
|
440
425
|
benchmarkRevision: normalized.benchmark_revision,
|
|
@@ -488,6 +473,14 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
488
473
|
failureStage = "finalizing";
|
|
489
474
|
await onControlPhase?.("finalizing");
|
|
490
475
|
trialRefs = progress.trials;
|
|
476
|
+
// Sweep already-collected and unselected tasks again before finalization.
|
|
477
|
+
if (standardDataset && !signal?.aborted) {
|
|
478
|
+
const manifest = await loadBenchmarkAdapterManifest(normalized.dataset);
|
|
479
|
+
if (!manifest)
|
|
480
|
+
throw invalidInput("benchmark adapter manifest disappeared after eval admission");
|
|
481
|
+
if (manifest.dataset_digest !== normalized.benchmark_revision)
|
|
482
|
+
throw invalidInput("benchmark adapter manifest changed after eval admission");
|
|
483
|
+
}
|
|
491
484
|
result = buildCompletedEvalResult({
|
|
492
485
|
evalId, request: normalized, plannedTaskExecution, plannedTrials,
|
|
493
486
|
executionWorkItems: executionPlan.work_items.length, localTaskIds, backendRuns,
|
|
@@ -498,13 +491,23 @@ export async function runEval({ evalId = newEvalId(), request, root, env = proce
|
|
|
498
491
|
});
|
|
499
492
|
}
|
|
500
493
|
catch (error) {
|
|
494
|
+
try {
|
|
495
|
+
progress = await readEvalProgress(evalDirectory) ?? progress;
|
|
496
|
+
}
|
|
497
|
+
catch (stateError) {
|
|
498
|
+
progressRecoveryError = stateError;
|
|
499
|
+
}
|
|
501
500
|
trialRefs = progress?.trials ?? trialRefs;
|
|
502
501
|
result = buildFailedEvalResult({ error, evalId, request: normalized, env, failureStage, startedAt, trials: trialRefs, progress, cancelled: signal?.aborted === true });
|
|
503
502
|
}
|
|
504
503
|
if (captureRuntime)
|
|
505
504
|
await captureRuntime.close().catch((error) => sink.emit({ type: "interaction.capture.close-failed", code: error.code || "model_capture_close_failed" }));
|
|
506
|
-
if (
|
|
507
|
-
await
|
|
505
|
+
if (normalized.endpoint_binding)
|
|
506
|
+
result.usage = await cumulativeEndpointUsage(root, evalId, trialRefs.flatMap(ref => ref.run_id ? [ref.run_id] : []));
|
|
507
|
+
if (progressRecoveryError) {
|
|
508
|
+
await sink.close();
|
|
509
|
+
throw progressRecoveryError;
|
|
510
|
+
}
|
|
508
511
|
return finalizeEvalResult(evalDirectory, sink, result);
|
|
509
512
|
}
|
|
510
513
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/evals/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/evals/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { constants } from "node:fs";
|
|
2
|
+
import { chmod, copyFile, lstat, mkdir, mkdtemp, readdir, readlink, rename, rm, symlink } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { verifyPreparedArtifact } from "../artifacts/index.js";
|
|
5
|
+
import { useControllerRuntimeDirectory } from "../controller-runtime/index.js";
|
|
6
|
+
import { digest, ensureDir, invalidInput } from "../foundation/index.js";
|
|
7
|
+
/** Transport is opt-in: a harness must keep its installation tree read-only.
|
|
8
|
+
* Snapshots are evaluation-local and retained with its jobs, so cancellation,
|
|
9
|
+
* recovery, and other evaluations cannot delete a live task's source files.
|
|
10
|
+
* Never hard-link the mutable host cache or reuse a path/mtime verification.
|
|
11
|
+
*/
|
|
12
|
+
export class SharedRuntimeSnapshots {
|
|
13
|
+
directory;
|
|
14
|
+
controller;
|
|
15
|
+
transport;
|
|
16
|
+
controllerDirectory;
|
|
17
|
+
artifacts = new Map();
|
|
18
|
+
constructor(directory, controller, transport) {
|
|
19
|
+
this.directory = directory;
|
|
20
|
+
this.controller = controller;
|
|
21
|
+
this.transport = transport;
|
|
22
|
+
if (transport !== undefined && !["upload", "readonly-bind"].includes(transport)) {
|
|
23
|
+
throw invalidInput("HITCH_HARBOR_RUNTIME_TRANSPORT must be upload or readonly-bind");
|
|
24
|
+
}
|
|
25
|
+
if (transport === "readonly-bind" && (!directory || process.platform !== "linux")) {
|
|
26
|
+
throw invalidInput("readonly-bind runtime transport requires a local Linux Docker evaluation");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async prepare(artifact, signal) {
|
|
30
|
+
if (this.transport !== "readonly-bind")
|
|
31
|
+
return artifact;
|
|
32
|
+
if (!/^linux-(x64|arm64)$/.test(artifact.platform)) {
|
|
33
|
+
throw invalidInput("readonly-bind runtime transport requires a Linux task runtime");
|
|
34
|
+
}
|
|
35
|
+
signal?.throwIfAborted();
|
|
36
|
+
const base = await ensureDir(this.directory);
|
|
37
|
+
if (!this.controllerDirectory) {
|
|
38
|
+
this.controllerDirectory = snapshot(base, "controller", this.controller.directory, async (directory) => {
|
|
39
|
+
await useControllerRuntimeDirectory(directory, this.controller.runtime_id);
|
|
40
|
+
}, signal);
|
|
41
|
+
}
|
|
42
|
+
const runtimeDirectory = await this.controllerDirectory;
|
|
43
|
+
const { directory: _source, sharedRuntime: _transport, storage: _storage, ...identity } = artifact;
|
|
44
|
+
const key = digest(identity);
|
|
45
|
+
if (!this.artifacts.has(key)) {
|
|
46
|
+
this.artifacts.set(key, snapshot(base, "artifact", artifact.directory, async (directory) => {
|
|
47
|
+
// The installation root and artifact.json are outside the sealed
|
|
48
|
+
// payload digest. Bind mounts keep host ownership, so expose these
|
|
49
|
+
// transport entries without requiring the candidate's DAC override.
|
|
50
|
+
// Do not follow a metadata symlink or change hash-covered file modes.
|
|
51
|
+
const metadata = path.join(directory, "artifact.json");
|
|
52
|
+
if (!(await lstat(metadata)).isFile())
|
|
53
|
+
throw invalidInput("shared artifact metadata must be a regular file");
|
|
54
|
+
await chmod(directory, 0o755);
|
|
55
|
+
await chmod(metadata, 0o644);
|
|
56
|
+
await verifyPreparedArtifact(directory, artifact);
|
|
57
|
+
}, signal));
|
|
58
|
+
}
|
|
59
|
+
const artifactDirectory = await this.artifacts.get(key);
|
|
60
|
+
return {
|
|
61
|
+
...artifact,
|
|
62
|
+
sharedRuntime: { runtime_directory: runtimeDirectory, artifact_directory: artifactDirectory },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async function snapshot(base, label, source, verify, signal) {
|
|
67
|
+
if (!(await lstat(source)).isDirectory()) {
|
|
68
|
+
throw invalidInput("shared runtime snapshot source must be a regular directory");
|
|
69
|
+
}
|
|
70
|
+
const staging = await mkdtemp(path.join(base, `.${label}-`));
|
|
71
|
+
const payload = path.join(staging, "payload");
|
|
72
|
+
const ready = path.join(base, path.basename(staging).slice(1));
|
|
73
|
+
try {
|
|
74
|
+
await copyInstallation(source, payload, signal);
|
|
75
|
+
signal?.throwIfAborted();
|
|
76
|
+
await verify(payload);
|
|
77
|
+
signal?.throwIfAborted();
|
|
78
|
+
// Rename the writable staging wrapper: moving a 0555 payload directory
|
|
79
|
+
// between parents requires write access to its own '..' entry on Linux.
|
|
80
|
+
await rename(staging, ready);
|
|
81
|
+
return path.join(ready, "payload");
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
// Keep the validation/cancellation error even if cleanup also fails.
|
|
85
|
+
await removeStaging(staging).catch(() => undefined);
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async function copyInstallation(source, destination, signal) {
|
|
90
|
+
signal?.throwIfAborted();
|
|
91
|
+
const info = await lstat(source);
|
|
92
|
+
if (info.isDirectory()) {
|
|
93
|
+
// Source bundles can be 0555. Apply their modes only after populating
|
|
94
|
+
// children, independent of the caller's umask. Never follow symlinks.
|
|
95
|
+
await mkdir(destination, { mode: 0o700 });
|
|
96
|
+
for (const name of await readdir(source)) {
|
|
97
|
+
await copyInstallation(path.join(source, name), path.join(destination, name), signal);
|
|
98
|
+
}
|
|
99
|
+
await chmod(destination, info.mode & 0o7777);
|
|
100
|
+
}
|
|
101
|
+
else if (info.isFile()) {
|
|
102
|
+
// Reflink when supported; copy otherwise. Neither aliases mutable cache
|
|
103
|
+
// inodes. Preserve exact modes because artifact integrity includes them.
|
|
104
|
+
await copyFile(source, destination, constants.COPYFILE_FICLONE | constants.COPYFILE_EXCL);
|
|
105
|
+
await chmod(destination, info.mode & 0o7777);
|
|
106
|
+
}
|
|
107
|
+
else if (info.isSymbolicLink()) {
|
|
108
|
+
await symlink(await readlink(source), destination);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
throw invalidInput("unsupported special file in shared runtime installation");
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
async function removeStaging(directory) {
|
|
115
|
+
// Only directories need write permission for unlinking. In particular,
|
|
116
|
+
// never chmod a symlink's target outside this private staging tree.
|
|
117
|
+
await chmod(directory, 0o700);
|
|
118
|
+
for (const name of await readdir(directory)) {
|
|
119
|
+
const child = path.join(directory, name);
|
|
120
|
+
if ((await lstat(child)).isDirectory())
|
|
121
|
+
await removeStaging(child);
|
|
122
|
+
}
|
|
123
|
+
await rm(directory, { recursive: true, force: true });
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=shared-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-runtime.js","sourceRoot":"","sources":["../../../src/evals/shared-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ import { lockedHarborTaskId, nonEmptyString, trialAttemptFromId } from "./trial-
|
|
|
18
18
|
import { writeEvalTrialPublication } from "./trial-publication.js";
|
|
19
19
|
import { importNativePhaseTrial, nativePhaseDescriptor, NativePhaseBundlePendingError } from "./native-phase-evidence.js";
|
|
20
20
|
import { readCandidateIneligibleDiagnostic } from "./verifier-eligibility.js";
|
|
21
|
+
import { verifyTrialBenchmark } from "./benchmark-verification.js";
|
|
21
22
|
export async function importEvalTrialRuns(options, existingRefs = []) {
|
|
22
23
|
const trials = Array.isArray(options.rawResult?.trial_results)
|
|
23
24
|
? options.rawResult.trial_results
|
|
@@ -51,6 +52,9 @@ export async function importEvalTrialRun(options, trial, index = 0, existingRefs
|
|
|
51
52
|
let bundle = null;
|
|
52
53
|
let published = false;
|
|
53
54
|
try {
|
|
55
|
+
const verifiedTrialBinding = { ...options, revisionIdentity: options.resolvedRevision.identity, taskId, trialDirectory };
|
|
56
|
+
const verifiedTrialBenchmark = await verifyTrialBenchmark(verifiedTrialBinding, taskId, options.verifiedBenchmark);
|
|
57
|
+
options = { ...options, verifiedTrialBenchmark, verifiedTrialBinding };
|
|
54
58
|
const descriptor = await nativePhaseDescriptor(options, taskId);
|
|
55
59
|
if (descriptor)
|
|
56
60
|
return await importNativePhaseTrial({ ...options, trial, taskId, trialId, attempt, trialDirectory }, descriptor);
|
|
@@ -70,6 +74,10 @@ export async function importEvalTrialRun(options, trial, index = 0, existingRefs
|
|
|
70
74
|
throw new TrialBundlePendingError(trialId);
|
|
71
75
|
if (error instanceof TrialBundlePendingError || error instanceof TrialIdentityConflictError)
|
|
72
76
|
throw error;
|
|
77
|
+
// Verification may fail before bundle discovery. Retain any staged bundle
|
|
78
|
+
// and attach the original error beside it without importing or trusting it.
|
|
79
|
+
if (bundle === null)
|
|
80
|
+
bundle = await findRunBundle(trialDirectory, 0, options.requireCompleteMarker === true).catch(() => null);
|
|
73
81
|
const safeMessage = safeDiagnosticMessage(error, credentialValuesFromEnv(options.request.pass_env ?? [], options.env ?? process.env));
|
|
74
82
|
{
|
|
75
83
|
await atomicWriteJSON(path.join(bundle ? path.dirname(bundle) : trialDirectory, "hitch-run-import-error.json"), {
|
|
@@ -175,7 +183,7 @@ async function importRunBundle(input) {
|
|
|
175
183
|
const candidateIneligible = await readCandidateIneligibleDiagnostic(input.trialDirectory);
|
|
176
184
|
if (verifierInfrastructure)
|
|
177
185
|
await writeVerifierInfrastructureDiagnostic(staging, verifierInfrastructure);
|
|
178
|
-
const structured = await persistTrialVerifierDiagnostics({ trialDirectory: input.trialDirectory, runDirectory: staging, passEnv: input.request.pass_env, env: input.env, maxArtifactBytes: input.verifierDiagnosticsMaxBytes, verifierResult: verifier, dataset: input.request.dataset, benchmarkRevision: input.benchmarkRevision, signal: input.signal });
|
|
186
|
+
const structured = await persistTrialVerifierDiagnostics({ trialDirectory: input.trialDirectory, runDirectory: staging, passEnv: input.request.pass_env, env: input.env, maxArtifactBytes: input.verifierDiagnosticsMaxBytes, verifierResult: verifier, dataset: input.request.dataset, benchmarkRevision: input.benchmarkRevision, verifiedTrialBenchmark: input.verifiedTrialBenchmark, verifiedTrialBinding: input.verifiedTrialBinding, signal: input.signal });
|
|
179
187
|
const beforeObservation = await loadRunRecord(staging, { verifyTrajectory: true });
|
|
180
188
|
const bridgeError = input.trial.exception_info
|
|
181
189
|
? await readHarborBridgeError(input.trialDirectory, credentialValuesFromEnv(input.request.pass_env ?? [], input.env ?? process.env))
|
|
@@ -256,7 +264,7 @@ async function createDiagnosticRun(input) {
|
|
|
256
264
|
const candidateIneligible = await readCandidateIneligibleDiagnostic(input.trialDirectory);
|
|
257
265
|
if (verifierInfrastructure)
|
|
258
266
|
await writeVerifierInfrastructureDiagnostic(runDirectory, verifierInfrastructure);
|
|
259
|
-
await persistTrialVerifierDiagnostics({ trialDirectory: input.trialDirectory, runDirectory, passEnv: input.request.pass_env, env: input.env, maxArtifactBytes: input.verifierDiagnosticsMaxBytes, verifierResult: verifier, dataset: input.request.dataset, benchmarkRevision: input.benchmarkRevision, signal: input.signal });
|
|
267
|
+
await persistTrialVerifierDiagnostics({ trialDirectory: input.trialDirectory, runDirectory, passEnv: input.request.pass_env, env: input.env, maxArtifactBytes: input.verifierDiagnosticsMaxBytes, verifierResult: verifier, dataset: input.request.dataset, benchmarkRevision: input.benchmarkRevision, verifiedTrialBenchmark: input.verifiedTrialBenchmark, verifiedTrialBinding: input.verifiedTrialBinding, signal: input.signal });
|
|
260
268
|
const bridgeError = input.trial.exception_info
|
|
261
269
|
? await readHarborBridgeError(input.trialDirectory, credentialValuesFromEnv(input.request.pass_env ?? [], input.env ?? process.env))
|
|
262
270
|
: null;
|