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.
Files changed (361) hide show
  1. package/README.md +7 -28
  2. package/README.zh-CN.md +6 -26
  3. package/dist/scripts/benchmark-dataset-verification.js +118 -0
  4. package/dist/scripts/benchmark-dataset-verification.js.map +1 -0
  5. package/dist/scripts/canary-external-endpoint.js +56 -0
  6. package/dist/scripts/canary-external-endpoint.js.map +1 -0
  7. package/dist/scripts/canary-native-training.js +8 -6
  8. package/dist/scripts/canary-native-training.js.map +1 -1
  9. package/dist/scripts/canary-remote-training.js +8 -6
  10. package/dist/scripts/canary-remote-training.js.map +1 -1
  11. package/dist/scripts/check-architecture.js +1 -1
  12. package/dist/scripts/check-architecture.js.map +1 -1
  13. package/dist/src/adapters/providers/codex.js +5 -2
  14. package/dist/src/adapters/providers/codex.js.map +1 -1
  15. package/dist/src/adapters/providers/model-call.js +1 -2
  16. package/dist/src/adapters/providers/model-call.js.map +1 -1
  17. package/dist/src/adapters/providers/training-tool.js +2 -0
  18. package/dist/src/adapters/providers/training-tool.js.map +1 -1
  19. package/dist/src/backends/harbor/artifact-pins.js +42 -0
  20. package/dist/src/backends/harbor/artifact-pins.js.map +1 -0
  21. package/dist/src/backends/harbor/backend.js +16 -8
  22. package/dist/src/backends/harbor/backend.js.map +1 -1
  23. package/dist/src/backends/harbor/bound-credential-helper.js +24 -0
  24. package/dist/src/backends/harbor/bound-credential-helper.js.map +1 -0
  25. package/dist/src/backends/harbor/credential-snapshot.js +71 -0
  26. package/dist/src/backends/harbor/credential-snapshot.js.map +1 -0
  27. package/dist/src/backends/harbor/environment-config.js +25 -2
  28. package/dist/src/backends/harbor/environment-config.js.map +1 -1
  29. package/dist/src/backends/harbor/environment-files.js +143 -0
  30. package/dist/src/backends/harbor/environment-files.js.map +1 -0
  31. package/dist/src/backends/harbor/evaluation-binding.js +160 -0
  32. package/dist/src/backends/harbor/evaluation-binding.js.map +1 -0
  33. package/dist/src/backends/harbor/host-credential-helper.js +5 -0
  34. package/dist/src/backends/harbor/host-credential-helper.js.map +1 -1
  35. package/dist/src/backends/harbor/index.js +2 -0
  36. package/dist/src/backends/harbor/index.js.map +1 -1
  37. package/dist/src/backends/harbor/model-proxy-config.js +3 -18
  38. package/dist/src/backends/harbor/model-proxy-config.js.map +1 -1
  39. package/dist/src/backends/harbor/portable-regrade.js +15 -3
  40. package/dist/src/backends/harbor/portable-regrade.js.map +1 -1
  41. package/dist/src/backends/harbor/python-runtime.js +71 -0
  42. package/dist/src/backends/harbor/python-runtime.js.map +1 -0
  43. package/dist/src/backends/harbor/tools.js +6 -4
  44. package/dist/src/backends/harbor/tools.js.map +1 -1
  45. package/dist/src/backends/index.js +3 -0
  46. package/dist/src/backends/index.js.map +1 -1
  47. package/dist/src/cli/arguments.js +30 -30
  48. package/dist/src/cli/arguments.js.map +1 -1
  49. package/dist/src/cli/commands/capabilities.js +7 -3
  50. package/dist/src/cli/commands/capabilities.js.map +1 -1
  51. package/dist/src/cli/commands/daemon.js +0 -17
  52. package/dist/src/cli/commands/daemon.js.map +1 -1
  53. package/dist/src/cli/commands/eval-binding.js +32 -0
  54. package/dist/src/cli/commands/eval-binding.js.map +1 -0
  55. package/dist/src/cli/commands/eval.js +21 -15
  56. package/dist/src/cli/commands/eval.js.map +1 -1
  57. package/dist/src/cli/commands/models.js +32 -45
  58. package/dist/src/cli/commands/models.js.map +1 -1
  59. package/dist/src/cli/commands/run.js +0 -35
  60. package/dist/src/cli/commands/run.js.map +1 -1
  61. package/dist/src/cli/main.js +0 -4
  62. package/dist/src/cli/main.js.map +1 -1
  63. package/dist/src/cli/output.js +5 -16
  64. package/dist/src/cli/output.js.map +1 -1
  65. package/dist/src/control-plane/eval-records.js +3 -1
  66. package/dist/src/control-plane/eval-records.js.map +1 -1
  67. package/dist/src/control-plane/eval-recovery.js +4 -1
  68. package/dist/src/control-plane/eval-recovery.js.map +1 -1
  69. package/dist/src/control-plane/eval-scheduler.js +16 -8
  70. package/dist/src/control-plane/eval-scheduler.js.map +1 -1
  71. package/dist/src/control-plane/index.js +0 -2
  72. package/dist/src/control-plane/index.js.map +1 -1
  73. package/dist/src/control-plane/model-capture-planning.js +3 -4
  74. package/dist/src/control-plane/model-capture-planning.js.map +1 -1
  75. package/dist/src/control-plane/remote-model-routes.js +4 -24
  76. package/dist/src/control-plane/remote-model-routes.js.map +1 -1
  77. package/dist/src/control-plane/remote-offer-contract.js +2 -2
  78. package/dist/src/control-plane/remote-offer-contract.js.map +1 -1
  79. package/dist/src/control-plane/remote-result-transport.js +7 -8
  80. package/dist/src/control-plane/remote-result-transport.js.map +1 -1
  81. package/dist/src/control-plane/remote-work-coordinator.js +2 -2
  82. package/dist/src/control-plane/remote-work-coordinator.js.map +1 -1
  83. package/dist/src/control-plane/remote-work-recovery.js +2 -2
  84. package/dist/src/control-plane/remote-work-recovery.js.map +1 -1
  85. package/dist/src/control-plane/remote-worker-protocol.js +1 -1
  86. package/dist/src/control-plane/remote-worker-protocol.js.map +1 -1
  87. package/dist/src/control-plane/remote-worker-runner.js +21 -6
  88. package/dist/src/control-plane/remote-worker-runner.js.map +1 -1
  89. package/dist/src/control-plane/remote-workers.js +2 -2
  90. package/dist/src/control-plane/remote-workers.js.map +1 -1
  91. package/dist/src/control-plane/rerun-recovery.js +1 -1
  92. package/dist/src/control-plane/rerun-recovery.js.map +1 -1
  93. package/dist/src/control-plane/rerun-scheduler.js +21 -14
  94. package/dist/src/control-plane/rerun-scheduler.js.map +1 -1
  95. package/dist/src/control-plane/rerun-source.js +5 -2
  96. package/dist/src/control-plane/rerun-source.js.map +1 -1
  97. package/dist/src/control-plane/rerun-submission.js +7 -5
  98. package/dist/src/control-plane/rerun-submission.js.map +1 -1
  99. package/dist/src/control-plane/synthetic-result.js +3 -2
  100. package/dist/src/control-plane/synthetic-result.js.map +1 -1
  101. package/dist/src/control-plane/worker-model-relay.js +1 -1
  102. package/dist/src/control-plane/worker-model-relay.js.map +1 -1
  103. package/dist/src/controller-runtime/hash.js +6 -0
  104. package/dist/src/controller-runtime/hash.js.map +1 -1
  105. package/dist/src/daemon/client.js +12 -35
  106. package/dist/src/daemon/client.js.map +1 -1
  107. package/dist/src/daemon/evaluation-binding.js +33 -0
  108. package/dist/src/daemon/evaluation-binding.js.map +1 -0
  109. package/dist/src/daemon/evaluation-submission.js +27 -0
  110. package/dist/src/daemon/evaluation-submission.js.map +1 -0
  111. package/dist/src/daemon/index.js +1 -0
  112. package/dist/src/daemon/index.js.map +1 -1
  113. package/dist/src/daemon/json-stream.js +98 -0
  114. package/dist/src/daemon/json-stream.js.map +1 -0
  115. package/dist/src/daemon/scheduler.js +1 -4
  116. package/dist/src/daemon/scheduler.js.map +1 -1
  117. package/dist/src/daemon/server.js +14 -54
  118. package/dist/src/daemon/server.js.map +1 -1
  119. package/dist/src/domain/endpoints.js +2 -0
  120. package/dist/src/domain/endpoints.js.map +1 -0
  121. package/dist/src/domain/evaluation-binding.js +5 -0
  122. package/dist/src/domain/evaluation-binding.js.map +1 -0
  123. package/dist/src/domain/index.js +2 -0
  124. package/dist/src/domain/index.js.map +1 -1
  125. package/dist/src/domain/runs.js.map +1 -1
  126. package/dist/src/evals/benchmark-adapter-manifest.js +95 -32
  127. package/dist/src/evals/benchmark-adapter-manifest.js.map +1 -1
  128. package/dist/src/evals/benchmark-verification.js +106 -0
  129. package/dist/src/evals/benchmark-verification.js.map +1 -0
  130. package/dist/src/evals/collect-only-rerun.js +3 -2
  131. package/dist/src/evals/collect-only-rerun.js.map +1 -1
  132. package/dist/src/evals/directory.js +9 -1
  133. package/dist/src/evals/directory.js.map +1 -1
  134. package/dist/src/evals/endpoint-attempts.js +112 -0
  135. package/dist/src/evals/endpoint-attempts.js.map +1 -0
  136. package/dist/src/evals/endpoint-usage.js +8 -0
  137. package/dist/src/evals/endpoint-usage.js.map +1 -0
  138. package/dist/src/evals/environment-binding.js +9 -0
  139. package/dist/src/evals/environment-binding.js.map +1 -0
  140. package/dist/src/evals/eval-artifact-planning.js +10 -1
  141. package/dist/src/evals/eval-artifact-planning.js.map +1 -1
  142. package/dist/src/evals/eval-finalization.js +2 -3
  143. package/dist/src/evals/eval-finalization.js.map +1 -1
  144. package/dist/src/evals/eval-logical-plan.js +2 -0
  145. package/dist/src/evals/eval-logical-plan.js.map +1 -1
  146. package/dist/src/evals/eval-result-builder.js +4 -0
  147. package/dist/src/evals/eval-result-builder.js.map +1 -1
  148. package/dist/src/evals/eval-state.js +22 -0
  149. package/dist/src/evals/eval-state.js.map +1 -0
  150. package/dist/src/evals/execution-plan.js +6 -2
  151. package/dist/src/evals/execution-plan.js.map +1 -1
  152. package/dist/src/evals/index.js +5 -1
  153. package/dist/src/evals/index.js.map +1 -1
  154. package/dist/src/evals/infrastructure-retry.js +2 -0
  155. package/dist/src/evals/infrastructure-retry.js.map +1 -1
  156. package/dist/src/evals/model-capture-runtime.js +9 -13
  157. package/dist/src/evals/model-capture-runtime.js.map +1 -1
  158. package/dist/src/evals/native-phase-evidence.js +8 -2
  159. package/dist/src/evals/native-phase-evidence.js.map +1 -1
  160. package/dist/src/evals/planned-execution.js +7 -2
  161. package/dist/src/evals/planned-execution.js.map +1 -1
  162. package/dist/src/evals/planned-progress-publisher.js +18 -5
  163. package/dist/src/evals/planned-progress-publisher.js.map +1 -1
  164. package/dist/src/evals/planned-retry-execution.js +1 -0
  165. package/dist/src/evals/planned-retry-execution.js.map +1 -1
  166. package/dist/src/evals/preparation-rerun.js +0 -1
  167. package/dist/src/evals/preparation-rerun.js.map +1 -1
  168. package/dist/src/evals/progress.js +92 -7
  169. package/dist/src/evals/progress.js.map +1 -1
  170. package/dist/src/evals/records.js +12 -2
  171. package/dist/src/evals/records.js.map +1 -1
  172. package/dist/src/evals/recovery.js +2 -0
  173. package/dist/src/evals/recovery.js.map +1 -1
  174. package/dist/src/evals/remote-rerun-execution.js +1 -3
  175. package/dist/src/evals/remote-rerun-execution.js.map +1 -1
  176. package/dist/src/evals/remote-verifier-rerun.js +1 -1
  177. package/dist/src/evals/remote-verifier-rerun.js.map +1 -1
  178. package/dist/src/evals/request.js +14 -45
  179. package/dist/src/evals/request.js.map +1 -1
  180. package/dist/src/evals/rerun-observation.js +31 -0
  181. package/dist/src/evals/rerun-observation.js.map +1 -0
  182. package/dist/src/evals/rerun.js +23 -28
  183. package/dist/src/evals/rerun.js.map +1 -1
  184. package/dist/src/evals/service.js +45 -42
  185. package/dist/src/evals/service.js.map +1 -1
  186. package/dist/src/evals/shared-runtime.js +125 -0
  187. package/dist/src/evals/shared-runtime.js.map +1 -0
  188. package/dist/src/evals/trial-import.js +10 -2
  189. package/dist/src/evals/trial-import.js.map +1 -1
  190. package/dist/src/evals/trial-publication-recovery.js +1 -1
  191. package/dist/src/evals/trial-publication-recovery.js.map +1 -1
  192. package/dist/src/evals/verifier-artifacts.js +1 -0
  193. package/dist/src/evals/verifier-artifacts.js.map +1 -1
  194. package/dist/src/evals/verifier-only-rerun.js +1 -1
  195. package/dist/src/evals/verifier-only-rerun.js.map +1 -1
  196. package/dist/src/evals/verifier-rerun-result.js +3 -2
  197. package/dist/src/evals/verifier-rerun-result.js.map +1 -1
  198. package/dist/src/evals/verifier-score-artifacts.js +9 -1
  199. package/dist/src/evals/verifier-score-artifacts.js.map +1 -1
  200. package/dist/src/foundation/config.js +0 -5
  201. package/dist/src/foundation/config.js.map +1 -1
  202. package/dist/src/inference/index.js +3 -22
  203. package/dist/src/inference/index.js.map +1 -1
  204. package/dist/src/inference/lock.js +44 -130
  205. package/dist/src/inference/lock.js.map +1 -1
  206. package/dist/src/model-access/endpoint-contract.js +127 -0
  207. package/dist/src/model-access/endpoint-contract.js.map +1 -0
  208. package/dist/src/model-access/endpoint-credentials.js +54 -0
  209. package/dist/src/model-access/endpoint-credentials.js.map +1 -0
  210. package/dist/src/model-access/endpoint-probe-stream.js +66 -0
  211. package/dist/src/model-access/endpoint-probe-stream.js.map +1 -0
  212. package/dist/src/model-access/endpoint-verification.js +76 -0
  213. package/dist/src/model-access/endpoint-verification.js.map +1 -0
  214. package/dist/src/model-access/endpoints.js +105 -0
  215. package/dist/src/model-access/endpoints.js.map +1 -0
  216. package/dist/src/model-access/index.js +5 -1
  217. package/dist/src/model-access/index.js.map +1 -1
  218. package/dist/src/model-access/proxy.js +57 -14
  219. package/dist/src/model-access/proxy.js.map +1 -1
  220. package/dist/src/model-access/remote-model.js +21 -29
  221. package/dist/src/model-access/remote-model.js.map +1 -1
  222. package/dist/src/model-access/usage.js +30 -0
  223. package/dist/src/model-access/usage.js.map +1 -0
  224. package/dist/src/runs/endpoint-runtime.js +40 -0
  225. package/dist/src/runs/endpoint-runtime.js.map +1 -0
  226. package/dist/src/runs/executor.js +28 -42
  227. package/dist/src/runs/executor.js.map +1 -1
  228. package/dist/src/runs/local-inference-environment.js +5 -53
  229. package/dist/src/runs/local-inference-environment.js.map +1 -1
  230. package/dist/src/runs/manifest.js +1 -0
  231. package/dist/src/runs/manifest.js.map +1 -1
  232. package/dist/src/runs/outcome.js +3 -10
  233. package/dist/src/runs/outcome.js.map +1 -1
  234. package/dist/src/runs/queued.js +3 -2
  235. package/dist/src/runs/queued.js.map +1 -1
  236. package/dist/src/runs/records.js +3 -0
  237. package/dist/src/runs/records.js.map +1 -1
  238. package/dist/src/runs/request.js +10 -38
  239. package/dist/src/runs/request.js.map +1 -1
  240. package/dist/src/workers/remote-harbor-work-spec.js +8 -10
  241. package/dist/src/workers/remote-harbor-work-spec.js.map +1 -1
  242. package/dist/src/workers/remote-harbor-worker.js +3 -0
  243. package/dist/src/workers/remote-harbor-worker.js.map +1 -1
  244. package/docs/evidence/eval-preparation-2026-10-09.json +393 -0
  245. package/docs/evidence/eval-preparation-2026-10-09.md +178 -0
  246. package/docs/local-model-inference-spec.zh-CN.md +4 -663
  247. package/docs/resource-storage.zh-CN.md +116 -0
  248. package/docs/schemas/endpoint-evaluation-attempt.schema.json +29 -0
  249. package/docs/schemas/eval-artifact-pin.schema.json +14 -0
  250. package/docs/schemas/eval-execution-plan.schema.json +486 -105
  251. package/docs/schemas/eval-progress.schema.json +1 -1
  252. package/docs/schemas/eval-request.schema.json +149 -18
  253. package/docs/schemas/eval-rerun-submission.schema.json +8 -1
  254. package/docs/schemas/eval-result.schema.json +310 -56
  255. package/docs/schemas/evaluation-binding.schema.json +15 -0
  256. package/docs/schemas/external-endpoint-binding.schema.json +153 -0
  257. package/docs/schemas/external-endpoint-config.schema.json +93 -0
  258. package/docs/schemas/inference-execution-evidence.schema.json +253 -3
  259. package/docs/schemas/inference-lock-v3.schema.json +6 -0
  260. package/docs/schemas/inference-lock.schema.json +842 -341
  261. package/docs/schemas/ordered-eval-control.schema.json +7 -1
  262. package/docs/schemas/ready-endpoint-binding.schema.json +201 -0
  263. package/docs/schemas/run-manifest.schema.json +6 -0
  264. package/docs/schemas/run-request.schema.json +122 -20
  265. package/examples/external-inference/.env.example +16 -0
  266. package/examples/external-inference/README.md +203 -0
  267. package/examples/external-inference/accept.mjs +297 -0
  268. package/examples/external-inference/compose.gateway.yaml +119 -0
  269. package/examples/external-inference/compose.single.yaml +64 -0
  270. package/examples/external-inference/compose.tp2.yaml +15 -0
  271. package/examples/external-inference/deployment.example.json +58 -0
  272. package/examples/external-inference/endpoint.chat-completions.example.json +13 -0
  273. package/examples/external-inference/endpoint.responses.example.json +13 -0
  274. package/integrations/harbor/hitch_build_inputs.py +213 -0
  275. package/integrations/harbor/hitch_build_process.py +126 -0
  276. package/integrations/harbor/hitch_compose_preparation.py +274 -0
  277. package/integrations/harbor/hitch_harbor_agent.py +25 -39
  278. package/integrations/harbor/hitch_harbor_environment.py +96 -3
  279. package/integrations/harbor/hitch_image_cache.py +357 -0
  280. package/integrations/harbor/hitch_python_runtime.py +303 -0
  281. package/integrations/harbor/hitch_shared_runtime.py +123 -0
  282. package/integrations/model-call/cli.js +11 -10
  283. package/integrations/training-tool/cli.js +5 -3
  284. package/node_modules/smol-toml/LICENSE +24 -0
  285. package/node_modules/smol-toml/README.md +418 -0
  286. package/node_modules/smol-toml/dist/date.d.ts +41 -0
  287. package/node_modules/smol-toml/dist/date.js +127 -0
  288. package/node_modules/smol-toml/dist/error.d.ts +38 -0
  289. package/node_modules/smol-toml/dist/error.js +63 -0
  290. package/node_modules/smol-toml/dist/extract.js +69 -0
  291. package/node_modules/smol-toml/dist/index.cjs +734 -0
  292. package/node_modules/smol-toml/dist/index.d.ts +43 -0
  293. package/node_modules/smol-toml/dist/index.js +33 -0
  294. package/node_modules/smol-toml/dist/parse.d.ts +36 -0
  295. package/node_modules/smol-toml/dist/parse.js +149 -0
  296. package/node_modules/smol-toml/dist/primitive.js +238 -0
  297. package/node_modules/smol-toml/dist/stringify.d.ts +31 -0
  298. package/node_modules/smol-toml/dist/stringify.js +181 -0
  299. package/node_modules/smol-toml/dist/struct.js +179 -0
  300. package/node_modules/smol-toml/dist/util.d.ts +38 -0
  301. package/node_modules/smol-toml/dist/util.js +89 -0
  302. package/node_modules/smol-toml/package.json +68 -0
  303. package/package.json +15 -4
  304. package/dist/src/cli/commands/local.js +0 -130
  305. package/dist/src/cli/commands/local.js.map +0 -1
  306. package/dist/src/cli/commands/model-node.js +0 -26
  307. package/dist/src/cli/commands/model-node.js.map +0 -1
  308. package/dist/src/control-plane/inference-manager.js +0 -357
  309. package/dist/src/control-plane/inference-manager.js.map +0 -1
  310. package/dist/src/control-plane/managed-gateway-receipt.js +0 -26
  311. package/dist/src/control-plane/managed-gateway-receipt.js.map +0 -1
  312. package/dist/src/control-plane/managed-service-recovery.js +0 -158
  313. package/dist/src/control-plane/managed-service-recovery.js.map +0 -1
  314. package/dist/src/daemon/inference-prepare.js +0 -47
  315. package/dist/src/daemon/inference-prepare.js.map +0 -1
  316. package/dist/src/inference/daemon-capacity.js +0 -41
  317. package/dist/src/inference/daemon-capacity.js.map +0 -1
  318. package/dist/src/inference/device-reservation.js +0 -58
  319. package/dist/src/inference/device-reservation.js.map +0 -1
  320. package/dist/src/inference/doctor.js +0 -95
  321. package/dist/src/inference/doctor.js.map +0 -1
  322. package/dist/src/inference/generation-recovery.js +0 -83
  323. package/dist/src/inference/generation-recovery.js.map +0 -1
  324. package/dist/src/inference/managed-launcher.js +0 -35
  325. package/dist/src/inference/managed-launcher.js.map +0 -1
  326. package/dist/src/inference/materialize.js +0 -66
  327. package/dist/src/inference/materialize.js.map +0 -1
  328. package/dist/src/inference/model-location.js +0 -34
  329. package/dist/src/inference/model-location.js.map +0 -1
  330. package/dist/src/inference/node-client.js +0 -167
  331. package/dist/src/inference/node-client.js.map +0 -1
  332. package/dist/src/inference/node-registry.js +0 -79
  333. package/dist/src/inference/node-registry.js.map +0 -1
  334. package/dist/src/inference/observation.js +0 -79
  335. package/dist/src/inference/observation.js.map +0 -1
  336. package/dist/src/inference/preflight.js +0 -132
  337. package/dist/src/inference/preflight.js.map +0 -1
  338. package/dist/src/inference/process-sglang.js +0 -169
  339. package/dist/src/inference/process-sglang.js.map +0 -1
  340. package/dist/src/inference/protocol-probe.js +0 -29
  341. package/dist/src/inference/protocol-probe.js.map +0 -1
  342. package/dist/src/inference/remote-model-store.js +0 -24
  343. package/dist/src/inference/remote-model-store.js.map +0 -1
  344. package/dist/src/inference/runtime-catalog.js +0 -41
  345. package/dist/src/inference/runtime-catalog.js.map +0 -1
  346. package/dist/src/inference/runtime-store.js +0 -93
  347. package/dist/src/inference/runtime-store.js.map +0 -1
  348. package/dist/src/inference/service-attachment.js +0 -46
  349. package/dist/src/inference/service-attachment.js.map +0 -1
  350. package/dist/src/inference/service-inspection.js +0 -38
  351. package/dist/src/inference/service-inspection.js.map +0 -1
  352. package/dist/src/inference/sglang.js +0 -279
  353. package/dist/src/inference/sglang.js.map +0 -1
  354. package/dist/src/inference/supervisor.js +0 -460
  355. package/dist/src/inference/supervisor.js.map +0 -1
  356. package/dist/src/model-access/local-gateway-request.js +0 -139
  357. package/dist/src/model-access/local-gateway-request.js.map +0 -1
  358. package/dist/src/model-access/local-gateway.js +0 -323
  359. package/dist/src/model-access/local-gateway.js.map +0 -1
  360. package/dist/src/runs/local-inference-run.js +0 -53
  361. 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, inferenceCoordinator, inferenceRerunId, resumeExisting = false, onControlPhase, onWorkItemState, onWorkItemQueued, evolutionBaselineDurations, dockerResourceReaper, environmentBuildMode = "backend", environmentImageResolver, environmentImageBuilder, environmentImageManifestLoader, harborArtifactBuilder }) {
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 persistedRequest = normalizedRequest || await validateEvalRequest(request);
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
- let inferenceLease;
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 standardDataset = localTaskIds !== null && await loadBenchmarkAdapterManifest(normalized.dataset) !== null;
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.local_inference) {
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
- ...(inferenceLease ? { inference_id: inferenceLease.lock.inference_id } : {}),
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
- ...(inferenceLease ? { managedInference: {
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
- ...(inferenceLease ? { modelTarget: {
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
- progress = mergeEvalProgressTrial(progress, ref);
364
- if (progress.generation === previousGeneration)
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, progress);
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 (inferenceLease)
507
- await inferenceLease.release().catch((error) => sink.emit({ type: "inference.release.failed", code: error.code || "inference_release_failed" }));
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;