agent-hitch 0.2.15 → 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 +56 -15
- 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,6 +1,20 @@
|
|
|
1
|
+
import path from "node:path";
|
|
1
2
|
import { HitchError, invalidInput } from "../../foundation/index.js";
|
|
2
3
|
const HITCH_DOCKER_ENVIRONMENT = "hitch_harbor_environment:HitchHarborDockerEnvironment";
|
|
3
|
-
export function
|
|
4
|
+
export function harborPreparationOptions(env) {
|
|
5
|
+
const keepalive = env.HITCH_HARBOR_MANAGED_KEEPALIVE;
|
|
6
|
+
if (keepalive !== undefined && keepalive !== "0" && keepalive !== "1")
|
|
7
|
+
throw invalidInput("HITCH_HARBOR_MANAGED_KEEPALIVE must be 0 or 1");
|
|
8
|
+
const slots = env.HITCH_HARBOR_IMAGE_BUILD_SLOTS;
|
|
9
|
+
if (slots !== undefined && !/^[1-9][0-9]*$/.test(slots))
|
|
10
|
+
throw invalidInput("HITCH_HARBOR_IMAGE_BUILD_SLOTS must be a positive integer");
|
|
11
|
+
return {
|
|
12
|
+
...(env.HITCH_HARBOR_IMAGE_CACHE_DIR === undefined ? {} : { cacheDirectory: env.HITCH_HARBOR_IMAGE_CACHE_DIR }),
|
|
13
|
+
...(slots === undefined ? {} : { buildSlots: Number(slots) }),
|
|
14
|
+
...(keepalive === "1" ? { managedKeepalive: true } : {}),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function harborEnvironmentConfig(resources, ownership, serviceLimits, resolvedImages, prebuiltTaskImage, modelProxyHostGateway = false, privateExecEnvironment = false, sharedRuntime, preparation = {}) {
|
|
4
18
|
const environment = { type: "docker", delete: true };
|
|
5
19
|
let gpuCount = 0;
|
|
6
20
|
if (resources) {
|
|
@@ -23,10 +37,19 @@ export function harborEnvironmentConfig(resources, ownership, serviceLimits, res
|
|
|
23
37
|
const images = resolvedImages ? parseResolvedImages(resolvedImages) : {};
|
|
24
38
|
if (prebuiltTaskImage !== undefined && !/^sha256:[a-f0-9]{64}$/.test(prebuiltTaskImage))
|
|
25
39
|
throw invalidInput("Harbor prebuilt task image is invalid");
|
|
26
|
-
if (
|
|
40
|
+
if (preparation.cacheDirectory !== undefined && (!path.isAbsolute(preparation.cacheDirectory) || /[\0\r\n]/.test(preparation.cacheDirectory)))
|
|
41
|
+
throw invalidInput("Hitch image cache directory must be absolute");
|
|
42
|
+
if (preparation.buildSlots !== undefined && (!Number.isSafeInteger(preparation.buildSlots) || preparation.buildSlots < 1 || preparation.buildSlots > 64 || !preparation.cacheDirectory))
|
|
43
|
+
throw invalidInput("Hitch image build slots require a cache directory and a value between 1 and 64");
|
|
44
|
+
if (preparation.managedKeepalive !== undefined && typeof preparation.managedKeepalive !== "boolean")
|
|
45
|
+
throw invalidInput("Hitch managed keepalive flag is invalid");
|
|
46
|
+
if (ownership || Object.keys(images).length > 0 || prebuiltTaskImage || modelProxyHostGateway || gpuCount > 0 || privateExecEnvironment || sharedRuntime || preparation.cacheDirectory || preparation.managedKeepalive)
|
|
27
47
|
Object.assign(environment, {
|
|
28
48
|
import_path: HITCH_DOCKER_ENVIRONMENT,
|
|
29
49
|
kwargs: {
|
|
50
|
+
...(preparation.cacheDirectory ? { hitch_image_cache_dir: preparation.cacheDirectory, hitch_image_build_slots: preparation.buildSlots ?? 2 } : {}),
|
|
51
|
+
...(preparation.managedKeepalive ? { hitch_managed_keepalive: true } : {}),
|
|
52
|
+
...(sharedRuntime ? { hitch_shared_runtime: sharedRuntime } : {}),
|
|
30
53
|
...(ownership ? { hitch_ownership_labels: harborOwnershipLabels(ownership) } : {}),
|
|
31
54
|
...(serviceLimits && Object.keys(serviceLimits).length > 0 ? { hitch_service_resource_limits: parseServiceLimits(serviceLimits) } : {}),
|
|
32
55
|
...(Object.keys(images).length > 0 ? { hitch_resolved_images: images } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../../src/backends/harbor/environment-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,wBAAwB,GAAG,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../../src/backends/harbor/environment-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { constants } from "node:fs";
|
|
2
|
+
import { lstat, open, readdir, realpath } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { createHash } from "node:crypto";
|
|
5
|
+
import { HitchError } from "../../foundation/index.js";
|
|
6
|
+
const FILE_NAMES = [
|
|
7
|
+
"SSL_CERT_FILE", "REQUESTS_CA_BUNDLE", "CURL_CA_BUNDLE", "NODE_EXTRA_CA_CERTS",
|
|
8
|
+
"AWS_CA_BUNDLE", "AWS_CONFIG_FILE", "AWS_SHARED_CREDENTIALS_FILE", "AWS_WEB_IDENTITY_TOKEN_FILE",
|
|
9
|
+
"GOOGLE_APPLICATION_CREDENTIALS", "CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE", "BOTO_CONFIG", "NETRC",
|
|
10
|
+
];
|
|
11
|
+
const DECLARATION = "HITCH_EVALUATION_FILE_ENV_JSON";
|
|
12
|
+
/** Private inputs only. The caller HMACs this manifest and never persists its paths or plain hashes. */
|
|
13
|
+
export async function evaluationEnvironmentFiles(env) {
|
|
14
|
+
try {
|
|
15
|
+
const extra = env[DECLARATION] ? JSON.parse(env[DECLARATION]) : [];
|
|
16
|
+
if (!Array.isArray(extra) || extra.length > 128
|
|
17
|
+
|| extra.some(name => typeof name !== "string" || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)))
|
|
18
|
+
throw unavailable();
|
|
19
|
+
const references = [];
|
|
20
|
+
const add = (source, file, required, tree = false) => {
|
|
21
|
+
if (!file)
|
|
22
|
+
return;
|
|
23
|
+
if (!path.isAbsolute(file) || file.includes("\0"))
|
|
24
|
+
throw unavailable();
|
|
25
|
+
references.push({ source, file, required, tree });
|
|
26
|
+
};
|
|
27
|
+
for (const name of new Set([...FILE_NAMES, ...extra]))
|
|
28
|
+
add(name, env[name], true);
|
|
29
|
+
for (const file of env.SSL_CERT_DIR ? env.SSL_CERT_DIR.split(path.delimiter) : []) {
|
|
30
|
+
if (!file)
|
|
31
|
+
throw unavailable();
|
|
32
|
+
add("SSL_CERT_DIR", file, true, true);
|
|
33
|
+
}
|
|
34
|
+
if (env.DOCKER_CERT_PATH) {
|
|
35
|
+
if (!path.isAbsolute(env.DOCKER_CERT_PATH))
|
|
36
|
+
throw unavailable();
|
|
37
|
+
for (const name of ["ca.pem", "cert.pem", "key.pem"])
|
|
38
|
+
add("DOCKER_CERT_PATH/" + name, path.join(env.DOCKER_CERT_PATH, name), false);
|
|
39
|
+
}
|
|
40
|
+
const home = env.HOME;
|
|
41
|
+
if (home && !path.isAbsolute(home))
|
|
42
|
+
throw unavailable();
|
|
43
|
+
if (home) {
|
|
44
|
+
for (const [variable, name] of [["NETRC", ".netrc"], ["AWS_CONFIG_FILE", ".aws/config"],
|
|
45
|
+
["AWS_SHARED_CREDENTIALS_FILE", ".aws/credentials"], ["GOOGLE_APPLICATION_CREDENTIALS", ".config/gcloud/application_default_credentials.json"]]) {
|
|
46
|
+
if (!env[variable])
|
|
47
|
+
add("default/" + name, path.join(home, name), false);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const dockerConfig = env.DOCKER_CONFIG || (home ? path.join(home, ".docker") : undefined);
|
|
51
|
+
if (dockerConfig) {
|
|
52
|
+
if (!path.isAbsolute(dockerConfig))
|
|
53
|
+
throw unavailable();
|
|
54
|
+
add("DOCKER_CONFIG/config.json", path.join(dockerConfig, "config.json"), false);
|
|
55
|
+
}
|
|
56
|
+
const manifest = [];
|
|
57
|
+
const checks = [];
|
|
58
|
+
let entries = 0, bytes = 0;
|
|
59
|
+
const signature = (s) => [s.dev, s.ino, s.size, s.mode, s.mtimeMs, s.ctimeMs].join(":");
|
|
60
|
+
const visit = async (source, file, required, tree, ancestors) => {
|
|
61
|
+
if (++entries > 4096 || ancestors.size > 32)
|
|
62
|
+
throw unavailable();
|
|
63
|
+
let resolved;
|
|
64
|
+
try {
|
|
65
|
+
resolved = await realpath(file);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (error.code !== "ENOENT" || required)
|
|
69
|
+
throw unavailable();
|
|
70
|
+
manifest.push({ source, path: file, kind: "missing" });
|
|
71
|
+
checks.push(async () => {
|
|
72
|
+
try {
|
|
73
|
+
await lstat(file);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (error.code === "ENOENT")
|
|
77
|
+
return;
|
|
78
|
+
throw unavailable();
|
|
79
|
+
}
|
|
80
|
+
throw unavailable();
|
|
81
|
+
});
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const before = await lstat(resolved);
|
|
85
|
+
checks.push(async () => {
|
|
86
|
+
if (await realpath(file) !== resolved || signature(await lstat(resolved)) !== signature(before))
|
|
87
|
+
throw unavailable();
|
|
88
|
+
});
|
|
89
|
+
if (before.isDirectory() && tree) {
|
|
90
|
+
if (ancestors.has(resolved))
|
|
91
|
+
throw unavailable();
|
|
92
|
+
const names = (await readdir(resolved)).sort();
|
|
93
|
+
manifest.push({ source, path: file, kind: "directory", target: resolved, mode: before.mode & 0o777 });
|
|
94
|
+
checks.push(async () => { if (JSON.stringify((await readdir(resolved)).sort()) !== JSON.stringify(names))
|
|
95
|
+
throw unavailable(); });
|
|
96
|
+
for (const name of names)
|
|
97
|
+
await visit(source, path.join(file, name), true, true, new Set([...ancestors, resolved]));
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (!before.isFile() || before.size > 16 * 1024 * 1024 || bytes + before.size > 64 * 1024 * 1024)
|
|
101
|
+
throw unavailable();
|
|
102
|
+
const handle = await open(resolved, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
103
|
+
try {
|
|
104
|
+
if (signature(await handle.stat()) !== signature(before))
|
|
105
|
+
throw unavailable();
|
|
106
|
+
const hash = createHash("sha256"), buffer = Buffer.alloc(64 * 1024);
|
|
107
|
+
let size = 0;
|
|
108
|
+
for (;;) {
|
|
109
|
+
const chunk = await handle.read(buffer, 0, buffer.length, null);
|
|
110
|
+
if (!chunk.bytesRead)
|
|
111
|
+
break;
|
|
112
|
+
size += chunk.bytesRead;
|
|
113
|
+
bytes += chunk.bytesRead;
|
|
114
|
+
if (size > 16 * 1024 * 1024 || bytes > 64 * 1024 * 1024)
|
|
115
|
+
throw unavailable();
|
|
116
|
+
hash.update(buffer.subarray(0, chunk.bytesRead));
|
|
117
|
+
}
|
|
118
|
+
if (signature(await handle.stat()) !== signature(before))
|
|
119
|
+
throw unavailable();
|
|
120
|
+
manifest.push({ source, path: file, kind: "file", target: resolved, digest: hash.digest("hex"), mode: before.mode & 0o777 });
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
await handle.close();
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
const compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;
|
|
127
|
+
for (const ref of references.sort((a, b) => compare(a.source, b.source) || compare(a.file, b.file))) {
|
|
128
|
+
await visit(ref.source, ref.file, ref.required, ref.tree, new Set());
|
|
129
|
+
}
|
|
130
|
+
for (const check of checks)
|
|
131
|
+
await check();
|
|
132
|
+
return manifest;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
throw unavailable();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function unavailable() {
|
|
139
|
+
return new HitchError("evaluation environment files are unavailable, changed or outside supported limits; use absolute regular-file references", {
|
|
140
|
+
code: "evaluation_environment_files_unavailable", exitCode: 12,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=environment-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-files.js","sourceRoot":"","sources":["../../../../src/backends/harbor/environment-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { createHmac, randomBytes } from "node:crypto";
|
|
2
|
+
import { chmod, mkdir } from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { snapshotHostCredentials } from "./credential-snapshot.js";
|
|
5
|
+
import { evaluationCredentialValidity, HOST_CREDENTIAL_HELPER_ENV, withHostCredentialPlaceholders } from "./host-credential-helper.js";
|
|
6
|
+
import { observeHarborPythonRuntime } from "./python-runtime.js";
|
|
7
|
+
import { evaluationEnvironmentFiles } from "./environment-files.js";
|
|
8
|
+
import { canonicalJSON, durableWriteJSON, HitchError, invalidInput, readJSON, withFileLock } from "../../foundation/index.js";
|
|
9
|
+
const validId = (id) => /^hmac-sha256:[a-f0-9]{64}$/.test(id);
|
|
10
|
+
const mac = (key, kind, value) => `hmac-sha256:${createHmac("sha256", Buffer.from(key, "hex")).update(kind + "\n" + canonicalJSON(value)).digest("hex")}`;
|
|
11
|
+
const environment = (env) => Object.fromEntries(Object.entries(env).filter((entry) => entry[1] !== undefined));
|
|
12
|
+
const directory = (root) => path.join(root, "evaluation-bindings");
|
|
13
|
+
function selection(model, names) {
|
|
14
|
+
if (typeof model !== "string" || !model || model.length > 1024 || /[\0\r\n]/.test(model)
|
|
15
|
+
|| !Array.isArray(names) || names.length > 128 || names.some(name => typeof name !== "string" || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(name))) {
|
|
16
|
+
throw invalidInput("evaluation binding requires a model and environment variable names");
|
|
17
|
+
}
|
|
18
|
+
return { model, pass_env: [...new Set(names)].sort() };
|
|
19
|
+
}
|
|
20
|
+
function validity(value) {
|
|
21
|
+
// Credential lifetime also covers setup and the bridge's safety margin; it
|
|
22
|
+
// is not a task timeout and must not inherit the task's 24-hour ceiling.
|
|
23
|
+
if (!Number.isSafeInteger(value) || value < 0 || !Number.isSafeInteger(Date.now() + value)) {
|
|
24
|
+
throw invalidInput("invalid evaluation binding validity");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async function keyFor(root, create) {
|
|
28
|
+
const file = path.join(directory(root), "key.json");
|
|
29
|
+
const value = await readJSON(file, null).catch(() => { throw unavailable(); });
|
|
30
|
+
if (value === null && create) {
|
|
31
|
+
const key = randomBytes(32).toString("hex");
|
|
32
|
+
await durableWriteJSON(file, { version: 1, key });
|
|
33
|
+
return key;
|
|
34
|
+
}
|
|
35
|
+
if (!value || typeof value !== "object" || Array.isArray(value)
|
|
36
|
+
|| Object.keys(value).sort().join(",") !== "key,version"
|
|
37
|
+
|| value.version !== 1
|
|
38
|
+
|| typeof value.key !== "string"
|
|
39
|
+
|| !/^[a-f0-9]{64}$/.test(value.key))
|
|
40
|
+
throw unavailable();
|
|
41
|
+
return value.key;
|
|
42
|
+
}
|
|
43
|
+
/** The resident executor's environment is the authority, never the connecting CLI's process.env. */
|
|
44
|
+
export async function prepareEvaluationBinding(input) {
|
|
45
|
+
const selected = selection(input.model, input.passEnv);
|
|
46
|
+
validity(input.minimumValidityMs);
|
|
47
|
+
const frozen = environment(input.env);
|
|
48
|
+
const credentials = await snapshotHostCredentials(frozen, selected.pass_env, input.minimumValidityMs, input.signal);
|
|
49
|
+
const executionEnv = withHostCredentialPlaceholders(frozen, Object.keys(credentials.overrides));
|
|
50
|
+
const files = await evaluationEnvironmentFiles(executionEnv);
|
|
51
|
+
const pythonRuntime = await observeHarborPythonRuntime({ root: input.root, env: executionEnv, ...(input.signal ? { signal: input.signal } : {}) });
|
|
52
|
+
if (credentials.expiresAtMs !== null && credentials.expiresAtMs < Date.now() + input.minimumValidityMs)
|
|
53
|
+
throw unavailable();
|
|
54
|
+
input.signal?.throwIfAborted();
|
|
55
|
+
await mkdir(directory(input.root), { recursive: true, mode: 0o700 });
|
|
56
|
+
await chmod(directory(input.root), 0o700);
|
|
57
|
+
return withFileLock(path.join(input.root, "locks"), "evaluation-bindings", async () => {
|
|
58
|
+
const key = await keyFor(input.root, true);
|
|
59
|
+
if (canonicalJSON(environment(input.env)) !== canonicalJSON(frozen)
|
|
60
|
+
|| canonicalJSON(await evaluationEnvironmentFiles(executionEnv)) !== canonicalJSON(files)
|
|
61
|
+
|| credentials.expiresAtMs !== null && credentials.expiresAtMs < Date.now() + input.minimumValidityMs)
|
|
62
|
+
throw unavailable();
|
|
63
|
+
const record = { schema_version: "3", ...selected,
|
|
64
|
+
source_environment: mac(key, "resident-environment-v1", frozen),
|
|
65
|
+
python_runtime: pythonRuntime,
|
|
66
|
+
environment_files: mac(key, "evaluation-files-v1", files),
|
|
67
|
+
overrides: credentials.overrides, expires_at_ms: credentials.expiresAtMs };
|
|
68
|
+
const bindingId = mac(key, "evaluation-binding-v1", record);
|
|
69
|
+
await durableWriteJSON(path.join(directory(input.root), bindingId.slice(12) + ".json"), record);
|
|
70
|
+
return { schema_version: "1", binding_id: bindingId, ...selected, expires_at_ms: record.expires_at_ms };
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/** A missing, changed or expired binding never refreshes credentials or authorizes another plan. */
|
|
74
|
+
export async function boundEvaluationEnvironment(input) {
|
|
75
|
+
const selected = selection(input.model, input.passEnv);
|
|
76
|
+
validity(input.minimumValidityMs);
|
|
77
|
+
if (!validId(input.bindingId))
|
|
78
|
+
throw unavailable();
|
|
79
|
+
try {
|
|
80
|
+
input.signal?.throwIfAborted();
|
|
81
|
+
const { key, record } = await verifiedRecord(input.root, input.bindingId, input.minimumValidityMs);
|
|
82
|
+
if (record.model !== selected.model
|
|
83
|
+
|| canonicalJSON(record.pass_env) !== canonicalJSON(selected.pass_env)
|
|
84
|
+
|| record.source_environment !== mac(key, "resident-environment-v1", environment(input.env))
|
|
85
|
+
|| record.expires_at_ms !== null && record.expires_at_ms < Date.now() + input.minimumValidityMs)
|
|
86
|
+
throw unavailable();
|
|
87
|
+
const executionEnv = withHostCredentialPlaceholders(input.env, Object.keys(record.overrides));
|
|
88
|
+
const checkFiles = async () => mac(key, "evaluation-files-v1", await evaluationEnvironmentFiles(executionEnv)) === record.environment_files;
|
|
89
|
+
if (!await checkFiles())
|
|
90
|
+
throw unavailable();
|
|
91
|
+
const pythonRuntime = await observeHarborPythonRuntime({ root: input.root, env: executionEnv,
|
|
92
|
+
...(input.signal ? { signal: input.signal } : {}),
|
|
93
|
+
...(input.harborExecutable ? { harborExecutable: input.harborExecutable } : {}) });
|
|
94
|
+
if (canonicalJSON(pythonRuntime) !== canonicalJSON(record.python_runtime)
|
|
95
|
+
|| !await checkFiles()
|
|
96
|
+
|| record.source_environment !== mac(key, "resident-environment-v1", environment(input.env))
|
|
97
|
+
|| record.expires_at_ms !== null && record.expires_at_ms < Date.now() + input.minimumValidityMs)
|
|
98
|
+
throw unavailable();
|
|
99
|
+
// The helper result is now frozen. The Harbor child must not run the helper again.
|
|
100
|
+
const result = { ...input.env, ...record.overrides };
|
|
101
|
+
delete result[HOST_CREDENTIAL_HELPER_ENV];
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (input.signal?.aborted || error instanceof HitchError && error.code === "harbor_python_runtime_timeout")
|
|
106
|
+
throw error;
|
|
107
|
+
throw unavailable();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async function verifiedRecord(root, bindingId, minimumValidityMs) {
|
|
111
|
+
if (!validId(bindingId))
|
|
112
|
+
throw unavailable();
|
|
113
|
+
const key = await keyFor(root, false);
|
|
114
|
+
const record = await readJSON(path.join(directory(root), bindingId.slice(12) + ".json"));
|
|
115
|
+
if (mac(key, "evaluation-binding-v1", record) !== bindingId || record.schema_version !== "3"
|
|
116
|
+
|| record.expires_at_ms !== null && record.expires_at_ms < Date.now() + minimumValidityMs)
|
|
117
|
+
throw unavailable();
|
|
118
|
+
return { key, record };
|
|
119
|
+
}
|
|
120
|
+
/** Preserve Harbor's private credential transport: helper secrets never become ordinary agent env. */
|
|
121
|
+
export async function boundHarborEnvironment(input) {
|
|
122
|
+
const env = await boundEvaluationEnvironment(input);
|
|
123
|
+
const { record } = await verifiedRecord(input.root, input.bindingId, input.minimumValidityMs);
|
|
124
|
+
const names = Object.keys(record.overrides).sort();
|
|
125
|
+
if (names.length) {
|
|
126
|
+
for (const name of names)
|
|
127
|
+
env[name] = "";
|
|
128
|
+
env[HOST_CREDENTIAL_HELPER_ENV] = JSON.stringify({ version: 1,
|
|
129
|
+
argv: [process.execPath, path.join(input.runtimeDirectory, "payload/dist/src/backends/harbor/bound-credential-helper.js"), input.root, input.bindingId],
|
|
130
|
+
credentialNames: names, timeoutMs: 10_000 });
|
|
131
|
+
}
|
|
132
|
+
return env;
|
|
133
|
+
}
|
|
134
|
+
/** Check the request at launch using the same validity budget as admission. */
|
|
135
|
+
export async function harborRequestEnvironment(input) {
|
|
136
|
+
const { request, ...execution } = input;
|
|
137
|
+
if (!request.environment_binding)
|
|
138
|
+
return input.env;
|
|
139
|
+
return boundHarborEnvironment({ ...execution, bindingId: request.environment_binding,
|
|
140
|
+
model: request.model, passEnv: request.pass_env, minimumValidityMs: evaluationCredentialValidity(request) });
|
|
141
|
+
}
|
|
142
|
+
/** Called only by the host-side private helper; it reads a frozen record and cannot refresh it. */
|
|
143
|
+
export async function readBoundHelperCredentials(root, bindingId, names, minimumValidityMs) {
|
|
144
|
+
validity(minimumValidityMs);
|
|
145
|
+
try {
|
|
146
|
+
const { record } = await verifiedRecord(root, bindingId, minimumValidityMs);
|
|
147
|
+
if (canonicalJSON(names) !== canonicalJSON(Object.keys(record.overrides).sort()) || record.expires_at_ms === null)
|
|
148
|
+
throw unavailable();
|
|
149
|
+
return { version: 1, env: record.overrides, expiresAtMs: record.expires_at_ms };
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
throw unavailable();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function unavailable() {
|
|
156
|
+
return new HitchError("evaluation environment binding is missing, changed or expired; prepare a new run", {
|
|
157
|
+
code: "evaluation_binding_unavailable", exitCode: 12,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=evaluation-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluation-binding.js","sourceRoot":"","sources":["../../../../src/backends/harbor/evaluation-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,11 @@ import path from "node:path";
|
|
|
4
4
|
import { HitchError, invalidInput } from "../../foundation/index.js";
|
|
5
5
|
export const HOST_CREDENTIAL_HELPER_ENV = "HITCH_HOST_CREDENTIAL_HELPER_JSON";
|
|
6
6
|
export const HOST_CREDENTIAL_HELPER_CAPABILITY = "host-task-credential-helper-v1";
|
|
7
|
+
// Shared with the Harbor bridge in integrations/harbor/hitch_host_credentials.py.
|
|
8
|
+
export const HOST_CREDENTIAL_VALIDITY_MARGIN_MS = 5 * 60 * 1000;
|
|
9
|
+
export function evaluationCredentialValidity(request) {
|
|
10
|
+
return request.timeout_ms + request.setup_timeout_ms + HOST_CREDENTIAL_VALIDITY_MARGIN_MS;
|
|
11
|
+
}
|
|
7
12
|
const MAX_CONFIG_BYTES = 64 * 1024;
|
|
8
13
|
const MAX_ARGUMENTS = 32;
|
|
9
14
|
const MAX_ARGUMENT_LENGTH = 4_096;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-credential-helper.js","sourceRoot":"","sources":["../../../../src/backends/harbor/host-credential-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,CAAC,MAAM,0BAA0B,GAAG,mCAAmC,CAAC;AAC9E,MAAM,CAAC,MAAM,iCAAiC,GAAG,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"host-credential-helper.js","sourceRoot":"","sources":["../../../../src/backends/harbor/host-credential-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,6 @@ export { DEFAULT_LOCAL_GIT_TRANSPORT_LIMITS, LOCAL_GIT_TRANSPORT_MANIFEST, LOCAL
|
|
|
9
9
|
export { inspectHarborTaskResources, parseHarborTaskResourceDeclaration } from "./task-resources.js";
|
|
10
10
|
export { DEFAULT_HARBOR_VERSION, HARBOR_CREDENTIAL_ENV, doctorHarbor, locateHarbor, managedHarborExecutable, setupHarbor } from "./tools.js";
|
|
11
11
|
export { HOST_CREDENTIAL_HELPER_CAPABILITY, HOST_CREDENTIAL_HELPER_ENV } from "./host-credential-helper.js";
|
|
12
|
+
export { prepareEvaluationBinding, boundEvaluationEnvironment } from "./evaluation-binding.js";
|
|
13
|
+
export { parseEvalArtifactPins, assertHarborArtifactPin, assertHarborArtifactPins } from "./artifact-pins.js";
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/backends/harbor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpI,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,kCAAkC,EAAE,MAAM,uBAAuB,CAAC;AAEjJ,OAAO,EAAE,oCAAoC,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGrL,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAGnU,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAErG,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7I,OAAO,EAAE,iCAAiC,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/backends/harbor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpI,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAClG,OAAO,EAAE,kCAAkC,EAAE,gCAAgC,EAAE,kCAAkC,EAAE,MAAM,uBAAuB,CAAC;AAEjJ,OAAO,EAAE,oCAAoC,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAGrL,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAGnU,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,qBAAqB,CAAC;AAErG,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7I,OAAO,EAAE,iCAAiC,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAE5G,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,28 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { parseEndpointBinding } from "../../model-access/index.js";
|
|
2
2
|
import { invalidInput } from "../../foundation/index.js";
|
|
3
3
|
export function parseHarborModelProxyRoute(value) {
|
|
4
|
-
const
|
|
4
|
+
const external = value?.external_endpoint ? parseEndpointBinding(value.external_endpoint) : undefined;
|
|
5
5
|
if (value.schema_version !== "1" || !new Set(["proxy", "hybrid"]).has(value.mode)
|
|
6
6
|
|| typeof value.required !== "boolean" || !new Set(["host-side", "in-sandbox"]).has(value.topology)
|
|
7
7
|
|| !proxyTemplate(value.base_url_template, true) || !proxyTemplate(value.health_url_template, false)) {
|
|
8
8
|
throw invalidInput("Harbor model proxy route is invalid");
|
|
9
9
|
}
|
|
10
|
-
return { ...value, ...(
|
|
11
|
-
}
|
|
12
|
-
function digest(value) {
|
|
13
|
-
return typeof value === "string" && /^sha256:[a-f0-9]{64}$/.test(value);
|
|
14
|
-
}
|
|
15
|
-
function parseManagedInference(value) {
|
|
16
|
-
if (value === undefined)
|
|
17
|
-
return undefined;
|
|
18
|
-
if (!value || typeof value !== "object" || Array.isArray(value)
|
|
19
|
-
|| Object.keys(value).some((key) => !["inference_id", "model_id", "model_node"].includes(key)))
|
|
20
|
-
throw invalidInput("Harbor managed inference identity is invalid");
|
|
21
|
-
const record = value;
|
|
22
|
-
if (!digest(record.inference_id) || !digest(record.model_id))
|
|
23
|
-
throw invalidInput("Harbor managed inference identity is invalid");
|
|
24
|
-
return { inference_id: record.inference_id, model_id: record.model_id,
|
|
25
|
-
...(record.model_node === undefined ? {} : { model_node: parseModelNodeBinding(record.model_node) }) };
|
|
10
|
+
return { ...value, ...(external ? { external_endpoint: external } : {}) };
|
|
26
11
|
}
|
|
27
12
|
function proxyTemplate(value, provider) {
|
|
28
13
|
if (typeof value !== "string" || value.length > 2_048 || /[\0\r\n]/.test(value))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-proxy-config.js","sourceRoot":"","sources":["../../../../src/backends/harbor/model-proxy-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"model-proxy-config.js","sourceRoot":"","sources":["../../../../src/backends/harbor/model-proxy-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,UAAU,0BAA0B,CAAC,KAAwB;IACjE,MAAM,QAAQ,GAAG,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtG,IAAI,KAAK,CAAC,cAAc,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;WAC5E,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;WAChG,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;QACvG,MAAM,YAAY,CAAC,qCAAqC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,QAAiB;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9F,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACxI,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3G,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -50,8 +50,19 @@ function portableEnvironment(value) {
|
|
|
50
50
|
if (env.import_path !== "hitch_harbor_environment:HitchHarborDockerEnvironment" || env.type !== "docker"
|
|
51
51
|
|| nonempty(env.mounts) || nonempty(env.extra_docker_compose) || nonempty(env.env) || env.override_tpu != null)
|
|
52
52
|
throw invalid("source environment requires unavailable host mounts, credentials or runtime");
|
|
53
|
-
const kwargs = exact(env.kwargs ?? {}, ["hitch_ownership_labels", "hitch_service_resource_limits", "hitch_resolved_images", "hitch_prebuilt_task_image", "hitch_model_proxy_host_gateway", "hitch_main_gpu_count"]);
|
|
54
|
-
|
|
53
|
+
const kwargs = exact(env.kwargs ?? {}, ["hitch_ownership_labels", "hitch_service_resource_limits", "hitch_resolved_images", "hitch_prebuilt_task_image", "hitch_model_proxy_host_gateway", "hitch_main_gpu_count", "hitch_shared_runtime", "hitch_image_cache_dir", "hitch_image_build_slots", "hitch_managed_keepalive"]);
|
|
54
|
+
// Host installation/cache paths cannot travel to another regrade worker.
|
|
55
|
+
// They are transport optimizations, never task or verifier inputs.
|
|
56
|
+
if (kwargs.hitch_image_cache_dir !== undefined && !path.isAbsolute(text(kwargs.hitch_image_cache_dir)))
|
|
57
|
+
throw invalid("source image cache directory is invalid");
|
|
58
|
+
if (kwargs.hitch_image_build_slots !== undefined && (!positiveInteger(kwargs.hitch_image_build_slots) || Number(kwargs.hitch_image_build_slots) > 64))
|
|
59
|
+
throw invalid("source image build slots are invalid");
|
|
60
|
+
if (kwargs.hitch_shared_runtime !== undefined) {
|
|
61
|
+
const shared = exact(kwargs.hitch_shared_runtime, ["runtime_directory", "artifact_directory"]);
|
|
62
|
+
if (!path.isAbsolute(text(shared.runtime_directory)) || !path.isAbsolute(text(shared.artifact_directory)))
|
|
63
|
+
throw invalid("source shared runtime paths are invalid");
|
|
64
|
+
}
|
|
65
|
+
const { hitch_ownership_labels: _labels, hitch_shared_runtime: _runtime, hitch_image_cache_dir: _cache, hitch_image_build_slots: _slots, ...portableKwargs } = kwargs;
|
|
55
66
|
if (portableKwargs.hitch_service_resource_limits !== undefined)
|
|
56
67
|
for (const [name, value] of Object.entries(object(portableKwargs.hitch_service_resource_limits))) {
|
|
57
68
|
text(name);
|
|
@@ -69,7 +80,8 @@ function portableEnvironment(value) {
|
|
|
69
80
|
}
|
|
70
81
|
if (portableKwargs.hitch_prebuilt_task_image !== undefined && !digest(portableKwargs.hitch_prebuilt_task_image)
|
|
71
82
|
|| portableKwargs.hitch_main_gpu_count !== undefined && !positiveInteger(portableKwargs.hitch_main_gpu_count)
|
|
72
|
-
|| portableKwargs.hitch_model_proxy_host_gateway !== undefined && typeof portableKwargs.hitch_model_proxy_host_gateway !== "boolean"
|
|
83
|
+
|| portableKwargs.hitch_model_proxy_host_gateway !== undefined && typeof portableKwargs.hitch_model_proxy_host_gateway !== "boolean"
|
|
84
|
+
|| portableKwargs.hitch_managed_keepalive !== undefined && typeof portableKwargs.hitch_managed_keepalive !== "boolean")
|
|
73
85
|
throw invalid("source environment settings are invalid");
|
|
74
86
|
const result = { type: "docker", import_path: env.import_path, delete: false, kwargs: portableKwargs };
|
|
75
87
|
for (const field of ["force_build", "suppress_override_warnings"])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable-regrade.js","sourceRoot":"","sources":["../../../../src/backends/harbor/portable-regrade.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portable-regrade.js","sourceRoot":"","sources":["../../../../src/backends/harbor/portable-regrade.ts"],"names":[],"mappings":"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"}
|