agent-hitch 0.2.6 → 0.2.8

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 (562) hide show
  1. package/README.md +30 -3
  2. package/README.zh-CN.md +14 -2
  3. package/dist/bin/hitch.js +25 -3
  4. package/dist/bin/hitch.js.map +1 -1
  5. package/dist/scripts/canary-benchmark.js +54 -0
  6. package/dist/scripts/canary-benchmark.js.map +1 -0
  7. package/dist/scripts/canary-buildkit-secrets.js +166 -0
  8. package/dist/scripts/canary-buildkit-secrets.js.map +1 -0
  9. package/dist/scripts/canary-collision-domains.js +77 -0
  10. package/dist/scripts/canary-collision-domains.js.map +1 -0
  11. package/dist/scripts/canary-docker-image-observation.js +181 -0
  12. package/dist/scripts/canary-docker-image-observation.js.map +1 -0
  13. package/dist/scripts/canary-eval-scheduler-throughput.js +47 -0
  14. package/dist/scripts/canary-eval-scheduler-throughput.js.map +1 -0
  15. package/dist/scripts/canary-gpu-hardware.js +95 -0
  16. package/dist/scripts/canary-gpu-hardware.js.map +1 -0
  17. package/dist/scripts/canary-harbor-load.js +365 -0
  18. package/dist/scripts/canary-harbor-load.js.map +1 -0
  19. package/dist/scripts/canary-packaged-harness.js +75 -0
  20. package/dist/scripts/canary-packaged-harness.js.map +1 -0
  21. package/dist/scripts/canary-resource-load.js +188 -0
  22. package/dist/scripts/canary-resource-load.js.map +1 -0
  23. package/dist/scripts/check-architecture.js +10 -5
  24. package/dist/scripts/check-architecture.js.map +1 -1
  25. package/dist/scripts/docker-reaper-crash-child.js +21 -0
  26. package/dist/scripts/docker-reaper-crash-child.js.map +1 -0
  27. package/dist/src/adapters/catalog.js +3 -1
  28. package/dist/src/adapters/catalog.js.map +1 -1
  29. package/dist/src/adapters/discovery.js +1 -1
  30. package/dist/src/adapters/discovery.js.map +1 -1
  31. package/dist/src/adapters/providers/claude.js +6 -0
  32. package/dist/src/adapters/providers/claude.js.map +1 -1
  33. package/dist/src/adapters/providers/codex-auth.js +29 -0
  34. package/dist/src/adapters/providers/codex-auth.js.map +1 -0
  35. package/dist/src/adapters/providers/codex.js +29 -6
  36. package/dist/src/adapters/providers/codex.js.map +1 -1
  37. package/dist/src/adapters/providers/deepseek.js +6 -0
  38. package/dist/src/adapters/providers/deepseek.js.map +1 -1
  39. package/dist/src/adapters/providers/model-call.js +26 -0
  40. package/dist/src/adapters/providers/model-call.js.map +1 -0
  41. package/dist/src/adapters/providers/opencode.js +6 -0
  42. package/dist/src/adapters/providers/opencode.js.map +1 -1
  43. package/dist/src/adapters/providers/pi.js +6 -0
  44. package/dist/src/adapters/providers/pi.js.map +1 -1
  45. package/dist/src/artifacts/index.js +1 -0
  46. package/dist/src/artifacts/index.js.map +1 -1
  47. package/dist/src/artifacts/preparer.js +7 -2
  48. package/dist/src/artifacts/preparer.js.map +1 -1
  49. package/dist/src/backends/harbor/agent-budget.js +31 -0
  50. package/dist/src/backends/harbor/agent-budget.js.map +1 -0
  51. package/dist/src/backends/harbor/backend.js +59 -107
  52. package/dist/src/backends/harbor/backend.js.map +1 -1
  53. package/dist/src/backends/harbor/environment-config.js +92 -0
  54. package/dist/src/backends/harbor/environment-config.js.map +1 -0
  55. package/dist/src/backends/harbor/index.js +6 -1
  56. package/dist/src/backends/harbor/index.js.map +1 -1
  57. package/dist/src/backends/harbor/model-proxy-config.js +23 -0
  58. package/dist/src/backends/harbor/model-proxy-config.js.map +1 -0
  59. package/dist/src/backends/harbor/process.js +177 -0
  60. package/dist/src/backends/harbor/process.js.map +1 -0
  61. package/dist/src/backends/harbor/regrade.js +77 -0
  62. package/dist/src/backends/harbor/regrade.js.map +1 -0
  63. package/dist/src/backends/harbor/runtime-toolchain.js +30 -0
  64. package/dist/src/backends/harbor/runtime-toolchain.js.map +1 -0
  65. package/dist/src/backends/harbor/supervisor.js +74 -0
  66. package/dist/src/backends/harbor/supervisor.js.map +1 -0
  67. package/dist/src/backends/harbor/task-resources.js +206 -0
  68. package/dist/src/backends/harbor/task-resources.js.map +1 -0
  69. package/dist/src/backends/harbor/tools.js +6 -29
  70. package/dist/src/backends/harbor/tools.js.map +1 -1
  71. package/dist/src/backends/index.js +5 -1
  72. package/dist/src/backends/index.js.map +1 -1
  73. package/dist/src/benchmarks/index.js +3 -0
  74. package/dist/src/benchmarks/index.js.map +1 -0
  75. package/dist/src/benchmarks/loader.js +271 -0
  76. package/dist/src/benchmarks/loader.js.map +1 -0
  77. package/dist/src/benchmarks/metrics.js +16 -0
  78. package/dist/src/benchmarks/metrics.js.map +1 -0
  79. package/dist/src/benchmarks/toml.js +13 -0
  80. package/dist/src/benchmarks/toml.js.map +1 -0
  81. package/dist/src/benchmarks/validation.js +242 -0
  82. package/dist/src/benchmarks/validation.js.map +1 -0
  83. package/dist/src/cli/arguments.js +6 -4
  84. package/dist/src/cli/arguments.js.map +1 -1
  85. package/dist/src/cli/commands/benchmark.js +22 -0
  86. package/dist/src/cli/commands/benchmark.js.map +1 -0
  87. package/dist/src/cli/commands/capabilities.js +18 -0
  88. package/dist/src/cli/commands/capabilities.js.map +1 -0
  89. package/dist/src/cli/commands/daemon.js +135 -8
  90. package/dist/src/cli/commands/daemon.js.map +1 -1
  91. package/dist/src/cli/commands/eval.js +228 -6
  92. package/dist/src/cli/commands/eval.js.map +1 -1
  93. package/dist/src/cli/commands/images.js +40 -0
  94. package/dist/src/cli/commands/images.js.map +1 -0
  95. package/dist/src/cli/commands/run.js +42 -17
  96. package/dist/src/cli/commands/run.js.map +1 -1
  97. package/dist/src/cli/commands/runs.js +25 -3
  98. package/dist/src/cli/commands/runs.js.map +1 -1
  99. package/dist/src/cli/commands/trajectory.js +96 -5
  100. package/dist/src/cli/commands/trajectory.js.map +1 -1
  101. package/dist/src/cli/commands/verifier.js +36 -0
  102. package/dist/src/cli/commands/verifier.js.map +1 -0
  103. package/dist/src/cli/commands/worker.js +79 -0
  104. package/dist/src/cli/commands/worker.js.map +1 -0
  105. package/dist/src/cli/main.js +10 -0
  106. package/dist/src/cli/main.js.map +1 -1
  107. package/dist/src/cli/output.js +84 -4
  108. package/dist/src/cli/output.js.map +1 -1
  109. package/dist/src/control-plane/build-admission.js +69 -0
  110. package/dist/src/control-plane/build-admission.js.map +1 -0
  111. package/dist/src/control-plane/build-records.js +6 -0
  112. package/dist/src/control-plane/build-records.js.map +1 -0
  113. package/dist/src/control-plane/collisions.js +40 -0
  114. package/dist/src/control-plane/collisions.js.map +1 -0
  115. package/dist/src/control-plane/eval-control-state.js +22 -0
  116. package/dist/src/control-plane/eval-control-state.js.map +1 -0
  117. package/dist/src/control-plane/eval-control-work.js +44 -0
  118. package/dist/src/control-plane/eval-control-work.js.map +1 -0
  119. package/dist/src/control-plane/eval-image-resolution.js +52 -0
  120. package/dist/src/control-plane/eval-image-resolution.js.map +1 -0
  121. package/dist/src/control-plane/eval-image-services.js +30 -0
  122. package/dist/src/control-plane/eval-image-services.js.map +1 -0
  123. package/dist/src/control-plane/eval-records.js +252 -0
  124. package/dist/src/control-plane/eval-records.js.map +1 -0
  125. package/dist/src/control-plane/eval-recovery.js +181 -0
  126. package/dist/src/control-plane/eval-recovery.js.map +1 -0
  127. package/dist/src/control-plane/eval-scheduler.js +450 -0
  128. package/dist/src/control-plane/eval-scheduler.js.map +1 -0
  129. package/dist/src/control-plane/index.js +20 -0
  130. package/dist/src/control-plane/index.js.map +1 -0
  131. package/dist/src/control-plane/local-worker.js +49 -0
  132. package/dist/src/control-plane/local-worker.js.map +1 -0
  133. package/dist/src/control-plane/model-capture-planning.js +12 -0
  134. package/dist/src/control-plane/model-capture-planning.js.map +1 -0
  135. package/dist/src/control-plane/remote-result-transport.js +175 -0
  136. package/dist/src/control-plane/remote-result-transport.js.map +1 -0
  137. package/dist/src/control-plane/remote-work-coordinator.js +333 -0
  138. package/dist/src/control-plane/remote-work-coordinator.js.map +1 -0
  139. package/dist/src/control-plane/remote-work-inputs.js +266 -0
  140. package/dist/src/control-plane/remote-work-inputs.js.map +1 -0
  141. package/dist/src/control-plane/remote-work-item.js +62 -0
  142. package/dist/src/control-plane/remote-work-item.js.map +1 -0
  143. package/dist/src/control-plane/remote-work-recovery.js +220 -0
  144. package/dist/src/control-plane/remote-work-recovery.js.map +1 -0
  145. package/dist/src/control-plane/remote-worker-artifacts.js +135 -0
  146. package/dist/src/control-plane/remote-worker-artifacts.js.map +1 -0
  147. package/dist/src/control-plane/remote-worker-client.js +202 -0
  148. package/dist/src/control-plane/remote-worker-client.js.map +1 -0
  149. package/dist/src/control-plane/remote-worker-configuration.js +34 -0
  150. package/dist/src/control-plane/remote-worker-configuration.js.map +1 -0
  151. package/dist/src/control-plane/remote-worker-credentials.js +58 -0
  152. package/dist/src/control-plane/remote-worker-credentials.js.map +1 -0
  153. package/dist/src/control-plane/remote-worker-protocol.js +489 -0
  154. package/dist/src/control-plane/remote-worker-protocol.js.map +1 -0
  155. package/dist/src/control-plane/remote-worker-runner.js +214 -0
  156. package/dist/src/control-plane/remote-worker-runner.js.map +1 -0
  157. package/dist/src/control-plane/remote-workers.js +377 -0
  158. package/dist/src/control-plane/remote-workers.js.map +1 -0
  159. package/dist/src/control-plane/rerun-scheduler.js +448 -0
  160. package/dist/src/control-plane/rerun-scheduler.js.map +1 -0
  161. package/dist/src/control-plane/rerun-submission.js +62 -0
  162. package/dist/src/control-plane/rerun-submission.js.map +1 -0
  163. package/dist/src/control-plane/resources.js +182 -0
  164. package/dist/src/control-plane/resources.js.map +1 -0
  165. package/dist/src/control-plane/scheduler-eval-entry.js +32 -0
  166. package/dist/src/control-plane/scheduler-eval-entry.js.map +1 -0
  167. package/dist/src/control-plane/synthetic-result.js +21 -0
  168. package/dist/src/control-plane/synthetic-result.js.map +1 -0
  169. package/dist/src/control-plane/work-admission.js +23 -0
  170. package/dist/src/control-plane/work-admission.js.map +1 -0
  171. package/dist/src/control-plane/work-dispatcher.js +237 -0
  172. package/dist/src/control-plane/work-dispatcher.js.map +1 -0
  173. package/dist/src/controller-runtime/hash.js +19 -3
  174. package/dist/src/controller-runtime/hash.js.map +1 -1
  175. package/dist/src/controller-runtime/index.js +1 -1
  176. package/dist/src/controller-runtime/index.js.map +1 -1
  177. package/dist/src/controller-runtime/store.js +15 -6
  178. package/dist/src/controller-runtime/store.js.map +1 -1
  179. package/dist/src/daemon/auth.js +5 -0
  180. package/dist/src/daemon/auth.js.map +1 -1
  181. package/dist/src/daemon/client.js.map +1 -1
  182. package/dist/src/daemon/event-stream.js +46 -0
  183. package/dist/src/daemon/event-stream.js.map +1 -0
  184. package/dist/src/daemon/health.js +66 -0
  185. package/dist/src/daemon/health.js.map +1 -0
  186. package/dist/src/daemon/launcher.js +28 -1
  187. package/dist/src/daemon/launcher.js.map +1 -1
  188. package/dist/src/daemon/logging.js +23 -0
  189. package/dist/src/daemon/logging.js.map +1 -0
  190. package/dist/src/daemon/scheduler.js +26 -5
  191. package/dist/src/daemon/scheduler.js.map +1 -1
  192. package/dist/src/daemon/server.js +255 -98
  193. package/dist/src/daemon/server.js.map +1 -1
  194. package/dist/src/daemon/telemetry.js +163 -0
  195. package/dist/src/daemon/telemetry.js.map +1 -0
  196. package/dist/src/daemon/worker-routes.js +219 -0
  197. package/dist/src/daemon/worker-routes.js.map +1 -0
  198. package/dist/src/domain/benchmarks.js +2 -0
  199. package/dist/src/domain/benchmarks.js.map +1 -0
  200. package/dist/src/domain/bundles.js +2 -0
  201. package/dist/src/domain/bundles.js.map +1 -0
  202. package/dist/src/domain/control-plane.js +2 -0
  203. package/dist/src/domain/control-plane.js.map +1 -0
  204. package/dist/src/domain/execution-evidence.js +2 -0
  205. package/dist/src/domain/execution-evidence.js.map +1 -0
  206. package/dist/src/domain/execution-plan.js +2 -0
  207. package/dist/src/domain/execution-plan.js.map +1 -0
  208. package/dist/src/domain/images.js +2 -0
  209. package/dist/src/domain/images.js.map +1 -0
  210. package/dist/src/domain/index.js +13 -0
  211. package/dist/src/domain/index.js.map +1 -1
  212. package/dist/src/domain/interactions.js +2 -0
  213. package/dist/src/domain/interactions.js.map +1 -0
  214. package/dist/src/domain/providers.js +2 -0
  215. package/dist/src/domain/providers.js.map +1 -0
  216. package/dist/src/domain/resources.js +2 -0
  217. package/dist/src/domain/resources.js.map +1 -0
  218. package/dist/src/domain/runs.js.map +1 -1
  219. package/dist/src/domain/validation.js +11 -4
  220. package/dist/src/domain/validation.js.map +1 -1
  221. package/dist/src/domain/verifier-evidence-validation.js +214 -0
  222. package/dist/src/domain/verifier-evidence-validation.js.map +1 -0
  223. package/dist/src/domain/verifier-evidence.js +3 -0
  224. package/dist/src/domain/verifier-evidence.js.map +1 -0
  225. package/dist/src/domain/verifier-score-contract.js +232 -0
  226. package/dist/src/domain/verifier-score-contract.js.map +1 -0
  227. package/dist/src/domain/workers.js +2 -0
  228. package/dist/src/domain/workers.js.map +1 -0
  229. package/dist/src/evals/benchmark-adapter-manifest.js +219 -0
  230. package/dist/src/evals/benchmark-adapter-manifest.js.map +1 -0
  231. package/dist/src/evals/benchmark-candidate.js +36 -0
  232. package/dist/src/evals/benchmark-candidate.js.map +1 -0
  233. package/dist/src/evals/benchmark-run.js +166 -0
  234. package/dist/src/evals/benchmark-run.js.map +1 -0
  235. package/dist/src/evals/collect-only-rerun.js +183 -0
  236. package/dist/src/evals/collect-only-rerun.js.map +1 -0
  237. package/dist/src/evals/directory.js +30 -0
  238. package/dist/src/evals/directory.js.map +1 -0
  239. package/dist/src/evals/docker-engine-stats.js +89 -0
  240. package/dist/src/evals/docker-engine-stats.js.map +1 -0
  241. package/dist/src/evals/docker-ownership.js +51 -0
  242. package/dist/src/evals/docker-ownership.js.map +1 -0
  243. package/dist/src/evals/docker-reaper.js +144 -0
  244. package/dist/src/evals/docker-reaper.js.map +1 -0
  245. package/dist/src/evals/docker-resource-observer.js +207 -0
  246. package/dist/src/evals/docker-resource-observer.js.map +1 -0
  247. package/dist/src/evals/duration-estimator.js +126 -0
  248. package/dist/src/evals/duration-estimator.js.map +1 -0
  249. package/dist/src/evals/environment-image-planning.js +164 -0
  250. package/dist/src/evals/environment-image-planning.js.map +1 -0
  251. package/dist/src/evals/eval-artifact-planning.js +56 -0
  252. package/dist/src/evals/eval-artifact-planning.js.map +1 -0
  253. package/dist/src/evals/eval-finalization.js +10 -0
  254. package/dist/src/evals/eval-finalization.js.map +1 -0
  255. package/dist/src/evals/eval-lifecycle-events.js +29 -0
  256. package/dist/src/evals/eval-lifecycle-events.js.map +1 -0
  257. package/dist/src/evals/eval-logical-plan.js +51 -0
  258. package/dist/src/evals/eval-logical-plan.js.map +1 -0
  259. package/dist/src/evals/eval-result-builder.js +81 -0
  260. package/dist/src/evals/eval-result-builder.js.map +1 -0
  261. package/dist/src/evals/events.js +53 -5
  262. package/dist/src/evals/events.js.map +1 -1
  263. package/dist/src/evals/evolution-baseline.js +191 -0
  264. package/dist/src/evals/evolution-baseline.js.map +1 -0
  265. package/dist/src/evals/execution-evidence.js +116 -0
  266. package/dist/src/evals/execution-evidence.js.map +1 -0
  267. package/dist/src/evals/execution-leases.js +342 -0
  268. package/dist/src/evals/execution-leases.js.map +1 -0
  269. package/dist/src/evals/execution-plan-artifacts.js +72 -0
  270. package/dist/src/evals/execution-plan-artifacts.js.map +1 -0
  271. package/dist/src/evals/execution-plan-images.js +69 -0
  272. package/dist/src/evals/execution-plan-images.js.map +1 -0
  273. package/dist/src/evals/execution-plan-resources.js +174 -0
  274. package/dist/src/evals/execution-plan-resources.js.map +1 -0
  275. package/dist/src/evals/execution-plan.js +451 -0
  276. package/dist/src/evals/execution-plan.js.map +1 -0
  277. package/dist/src/evals/failure-classifier.js +61 -0
  278. package/dist/src/evals/failure-classifier.js.map +1 -0
  279. package/dist/src/evals/harbor-artifact-builder-image.js +99 -0
  280. package/dist/src/evals/harbor-artifact-builder-image.js.map +1 -0
  281. package/dist/src/evals/harbor-artifact-builder.js +358 -0
  282. package/dist/src/evals/harbor-artifact-builder.js.map +1 -0
  283. package/dist/src/evals/harbor-bridge-error.js +58 -3
  284. package/dist/src/evals/harbor-bridge-error.js.map +1 -1
  285. package/dist/src/evals/harbor-node-runtime.js +146 -0
  286. package/dist/src/evals/harbor-node-runtime.js.map +1 -0
  287. package/dist/src/evals/harbor-phase-timings.js +60 -0
  288. package/dist/src/evals/harbor-phase-timings.js.map +1 -0
  289. package/dist/src/evals/index.js +40 -2
  290. package/dist/src/evals/index.js.map +1 -1
  291. package/dist/src/evals/infrastructure-retry.js +208 -84
  292. package/dist/src/evals/infrastructure-retry.js.map +1 -1
  293. package/dist/src/evals/interaction-capture-import.js +49 -0
  294. package/dist/src/evals/interaction-capture-import.js.map +1 -0
  295. package/dist/src/evals/local-docker-provider.js +372 -0
  296. package/dist/src/evals/local-docker-provider.js.map +1 -0
  297. package/dist/src/evals/local-eval-planning.js +80 -0
  298. package/dist/src/evals/local-eval-planning.js.map +1 -0
  299. package/dist/src/evals/model-capture-plan.js +22 -0
  300. package/dist/src/evals/model-capture-plan.js.map +1 -0
  301. package/dist/src/evals/model-capture-runtime.js +114 -0
  302. package/dist/src/evals/model-capture-runtime.js.map +1 -0
  303. package/dist/src/evals/model-proxy-runtime-state.js +53 -0
  304. package/dist/src/evals/model-proxy-runtime-state.js.map +1 -0
  305. package/dist/src/evals/native-phase-evidence.js +440 -0
  306. package/dist/src/evals/native-phase-evidence.js.map +1 -0
  307. package/dist/src/evals/physical-retry-work.js +31 -0
  308. package/dist/src/evals/physical-retry-work.js.map +1 -0
  309. package/dist/src/evals/planned-execution-support.js +66 -0
  310. package/dist/src/evals/planned-execution-support.js.map +1 -0
  311. package/dist/src/evals/planned-execution.js +469 -0
  312. package/dist/src/evals/planned-execution.js.map +1 -0
  313. package/dist/src/evals/planned-progress-publisher.js +62 -0
  314. package/dist/src/evals/planned-progress-publisher.js.map +1 -0
  315. package/dist/src/evals/planned-remote-execution.js +40 -0
  316. package/dist/src/evals/planned-remote-execution.js.map +1 -0
  317. package/dist/src/evals/planned-retry-execution.js +174 -0
  318. package/dist/src/evals/planned-retry-execution.js.map +1 -0
  319. package/dist/src/evals/planned-retry-lifecycle.js +188 -0
  320. package/dist/src/evals/planned-retry-lifecycle.js.map +1 -0
  321. package/dist/src/evals/preparation-rerun.js +225 -0
  322. package/dist/src/evals/preparation-rerun.js.map +1 -0
  323. package/dist/src/evals/prepared-harness.js +76 -0
  324. package/dist/src/evals/prepared-harness.js.map +1 -0
  325. package/dist/src/evals/progress.js +52 -12
  326. package/dist/src/evals/progress.js.map +1 -1
  327. package/dist/src/evals/records.js +20 -3
  328. package/dist/src/evals/records.js.map +1 -1
  329. package/dist/src/evals/recovery.js +242 -0
  330. package/dist/src/evals/recovery.js.map +1 -0
  331. package/dist/src/evals/regrade-evidence.js +77 -0
  332. package/dist/src/evals/regrade-evidence.js.map +1 -0
  333. package/dist/src/evals/remote-infrastructure-retry.js +165 -0
  334. package/dist/src/evals/remote-infrastructure-retry.js.map +1 -0
  335. package/dist/src/evals/request.js +21 -3
  336. package/dist/src/evals/request.js.map +1 -1
  337. package/dist/src/evals/rerun-inputs.js +108 -0
  338. package/dist/src/evals/rerun-inputs.js.map +1 -0
  339. package/dist/src/evals/rerun-slots.js +4 -3
  340. package/dist/src/evals/rerun-slots.js.map +1 -1
  341. package/dist/src/evals/rerun-types.js +45 -0
  342. package/dist/src/evals/rerun-types.js.map +1 -0
  343. package/dist/src/evals/rerun.js +133 -88
  344. package/dist/src/evals/rerun.js.map +1 -1
  345. package/dist/src/evals/result-helpers.js +78 -0
  346. package/dist/src/evals/result-helpers.js.map +1 -0
  347. package/dist/src/evals/resume-state.js +36 -0
  348. package/dist/src/evals/resume-state.js.map +1 -0
  349. package/dist/src/evals/retry-backoff.js +20 -0
  350. package/dist/src/evals/retry-backoff.js.map +1 -0
  351. package/dist/src/evals/retry-state.js +195 -0
  352. package/dist/src/evals/retry-state.js.map +1 -0
  353. package/dist/src/evals/scheduler-metrics.js +95 -0
  354. package/dist/src/evals/scheduler-metrics.js.map +1 -0
  355. package/dist/src/evals/scheduler-trace-replay.js +107 -0
  356. package/dist/src/evals/scheduler-trace-replay.js.map +1 -0
  357. package/dist/src/evals/service-types.js +2 -0
  358. package/dist/src/evals/service-types.js.map +1 -0
  359. package/dist/src/evals/service.js +331 -347
  360. package/dist/src/evals/service.js.map +1 -1
  361. package/dist/src/evals/task-resources.js +209 -0
  362. package/dist/src/evals/task-resources.js.map +1 -0
  363. package/dist/src/evals/trial-environment-evidence.js +87 -0
  364. package/dist/src/evals/trial-environment-evidence.js.map +1 -0
  365. package/dist/src/evals/trial-execution-evidence.js +13 -0
  366. package/dist/src/evals/trial-execution-evidence.js.map +1 -0
  367. package/dist/src/evals/trial-import-identity.js +31 -0
  368. package/dist/src/evals/trial-import-identity.js.map +1 -0
  369. package/dist/src/evals/trial-import.js +183 -188
  370. package/dist/src/evals/trial-import.js.map +1 -1
  371. package/dist/src/evals/trial-publication-recovery.js +144 -0
  372. package/dist/src/evals/trial-publication-recovery.js.map +1 -0
  373. package/dist/src/evals/trial-publication.js +25 -0
  374. package/dist/src/evals/trial-publication.js.map +1 -0
  375. package/dist/src/evals/trial-reference-validation.js +49 -0
  376. package/dist/src/evals/trial-reference-validation.js.map +1 -0
  377. package/dist/src/evals/verifier-artifacts.js +317 -0
  378. package/dist/src/evals/verifier-artifacts.js.map +1 -0
  379. package/dist/src/evals/verifier-eligibility.js +25 -0
  380. package/dist/src/evals/verifier-eligibility.js.map +1 -0
  381. package/dist/src/evals/verifier-only-rerun.js +210 -0
  382. package/dist/src/evals/verifier-only-rerun.js.map +1 -0
  383. package/dist/src/evals/verifier-runtime.js +61 -0
  384. package/dist/src/evals/verifier-runtime.js.map +1 -0
  385. package/dist/src/evals/verifier-score-artifacts.js +119 -0
  386. package/dist/src/evals/verifier-score-artifacts.js.map +1 -0
  387. package/dist/src/evals/work-item-artifacts.js +23 -0
  388. package/dist/src/evals/work-item-artifacts.js.map +1 -0
  389. package/dist/src/foundation/config.js +17 -0
  390. package/dist/src/foundation/config.js.map +1 -1
  391. package/dist/src/foundation/contained-file.js +85 -0
  392. package/dist/src/foundation/contained-file.js.map +1 -0
  393. package/dist/src/foundation/credential-redaction.js +162 -0
  394. package/dist/src/foundation/credential-redaction.js.map +1 -0
  395. package/dist/src/foundation/environment-image-references.js +59 -0
  396. package/dist/src/foundation/environment-image-references.js.map +1 -0
  397. package/dist/src/foundation/executable.js +45 -5
  398. package/dist/src/foundation/executable.js.map +1 -1
  399. package/dist/src/foundation/fs.js +2 -1
  400. package/dist/src/foundation/fs.js.map +1 -1
  401. package/dist/src/foundation/index.js +6 -2
  402. package/dist/src/foundation/index.js.map +1 -1
  403. package/dist/src/foundation/process-identity.js +69 -0
  404. package/dist/src/foundation/process-identity.js.map +1 -0
  405. package/dist/src/images/context.js +47 -0
  406. package/dist/src/images/context.js.map +1 -0
  407. package/dist/src/images/docker-buildkit.js +137 -0
  408. package/dist/src/images/docker-buildkit.js.map +1 -0
  409. package/dist/src/images/dockerfile.js +67 -0
  410. package/dist/src/images/dockerfile.js.map +1 -0
  411. package/dist/src/images/gc.js +261 -0
  412. package/dist/src/images/gc.js.map +1 -0
  413. package/dist/src/images/index.js +10 -0
  414. package/dist/src/images/index.js.map +1 -0
  415. package/dist/src/images/manifest.js +109 -0
  416. package/dist/src/images/manifest.js.map +1 -0
  417. package/dist/src/images/ownership.js +5 -0
  418. package/dist/src/images/ownership.js.map +1 -0
  419. package/dist/src/images/records.js +32 -0
  420. package/dist/src/images/records.js.map +1 -0
  421. package/dist/src/images/registry.js +154 -0
  422. package/dist/src/images/registry.js.map +1 -0
  423. package/dist/src/images/service.js +224 -0
  424. package/dist/src/images/service.js.map +1 -0
  425. package/dist/src/model-access/capture.js +255 -0
  426. package/dist/src/model-access/capture.js.map +1 -0
  427. package/dist/src/model-access/index.js +5 -0
  428. package/dist/src/model-access/index.js.map +1 -0
  429. package/dist/src/model-access/policy.js +49 -0
  430. package/dist/src/model-access/policy.js.map +1 -0
  431. package/dist/src/model-access/proxy.js +336 -0
  432. package/dist/src/model-access/proxy.js.map +1 -0
  433. package/dist/src/model-access/records.js +167 -0
  434. package/dist/src/model-access/records.js.map +1 -0
  435. package/dist/src/runs/adapter-process.js +12 -0
  436. package/dist/src/runs/adapter-process.js.map +1 -0
  437. package/dist/src/runs/bundle.js +450 -0
  438. package/dist/src/runs/bundle.js.map +1 -0
  439. package/dist/src/runs/events.js +12 -1
  440. package/dist/src/runs/events.js.map +1 -1
  441. package/dist/src/runs/executor.js +46 -45
  442. package/dist/src/runs/executor.js.map +1 -1
  443. package/dist/src/runs/finalizer.js +17 -0
  444. package/dist/src/runs/finalizer.js.map +1 -1
  445. package/dist/src/runs/index.js +8 -1
  446. package/dist/src/runs/index.js.map +1 -1
  447. package/dist/src/runs/manifest.js +5 -5
  448. package/dist/src/runs/manifest.js.map +1 -1
  449. package/dist/src/runs/phase-bundle.js +86 -0
  450. package/dist/src/runs/phase-bundle.js.map +1 -0
  451. package/dist/src/runs/phase-cancellation.js +107 -0
  452. package/dist/src/runs/phase-cancellation.js.map +1 -0
  453. package/dist/src/runs/phase-group.js +113 -0
  454. package/dist/src/runs/phase-group.js.map +1 -0
  455. package/dist/src/runs/query.js +1 -1
  456. package/dist/src/runs/query.js.map +1 -1
  457. package/dist/src/runs/records.js +3 -0
  458. package/dist/src/runs/records.js.map +1 -1
  459. package/dist/src/runs/request.js +10 -3
  460. package/dist/src/runs/request.js.map +1 -1
  461. package/dist/src/runs/training-candidate.js +161 -0
  462. package/dist/src/runs/training-candidate.js.map +1 -0
  463. package/dist/src/runs/verifier-evidence-redaction.js +61 -0
  464. package/dist/src/runs/verifier-evidence-redaction.js.map +1 -0
  465. package/dist/src/runs/verifier-evidence.js +459 -0
  466. package/dist/src/runs/verifier-evidence.js.map +1 -0
  467. package/dist/src/runs/verifier-structured-evidence.js +83 -0
  468. package/dist/src/runs/verifier-structured-evidence.js.map +1 -0
  469. package/dist/src/trajectories/analysis.js +288 -0
  470. package/dist/src/trajectories/analysis.js.map +1 -0
  471. package/dist/src/trajectories/chunk-projection.js +148 -0
  472. package/dist/src/trajectories/chunk-projection.js.map +1 -0
  473. package/dist/src/trajectories/content-projection.js +389 -0
  474. package/dist/src/trajectories/content-projection.js.map +1 -0
  475. package/dist/src/trajectories/dsh-chunk-contract.js +176 -0
  476. package/dist/src/trajectories/dsh-chunk-contract.js.map +1 -0
  477. package/dist/src/trajectories/dsh-contract.js +284 -0
  478. package/dist/src/trajectories/dsh-contract.js.map +1 -0
  479. package/dist/src/trajectories/events-chunk-drill.js +95 -0
  480. package/dist/src/trajectories/events-chunk-drill.js.map +1 -0
  481. package/dist/src/trajectories/events-page.js +367 -0
  482. package/dist/src/trajectories/events-page.js.map +1 -0
  483. package/dist/src/trajectories/index.js +3 -0
  484. package/dist/src/trajectories/index.js.map +1 -1
  485. package/dist/src/trajectories/provider-capture.js +15 -24
  486. package/dist/src/trajectories/provider-capture.js.map +1 -1
  487. package/dist/src/trajectories/providers/deepseek.js +3 -3
  488. package/dist/src/trajectories/providers/deepseek.js.map +1 -1
  489. package/dist/src/trajectories/request-attempt.js +47 -0
  490. package/dist/src/trajectories/request-attempt.js.map +1 -0
  491. package/dist/src/trajectories/stream-reader.js +311 -0
  492. package/dist/src/trajectories/stream-reader.js.map +1 -0
  493. package/dist/src/trajectories/surface-fold.js +126 -0
  494. package/dist/src/trajectories/surface-fold.js.map +1 -0
  495. package/dist/src/workers/index.js +3 -0
  496. package/dist/src/workers/index.js.map +1 -0
  497. package/dist/src/workers/remote-harbor-work-spec.js +97 -0
  498. package/dist/src/workers/remote-harbor-work-spec.js.map +1 -0
  499. package/dist/src/workers/remote-harbor-worker.js +223 -0
  500. package/dist/src/workers/remote-harbor-worker.js.map +1 -0
  501. package/docs/schemas/benchmark-hook-request-v1.schema.json +65 -0
  502. package/docs/schemas/benchmark-hook-response-v1.schema.json +75 -0
  503. package/docs/schemas/benchmark-hook-v1.schema.json +33 -0
  504. package/docs/schemas/benchmark-lock-v1.schema.json +351 -0
  505. package/docs/schemas/benchmark-metric-v1.schema.json +37 -0
  506. package/docs/schemas/benchmark-package-v1.schema.json +167 -0
  507. package/docs/schemas/benchmark-phase-group.schema.json +41 -0
  508. package/docs/schemas/benchmark-profile-v1.schema.json +141 -0
  509. package/docs/schemas/benchmark-task-v1.schema.json +384 -0
  510. package/docs/schemas/benchmark-tool-result-v1.schema.json +30 -0
  511. package/docs/schemas/environment-build-index.schema.json +13 -0
  512. package/docs/schemas/environment-build-record.schema.json +25 -0
  513. package/docs/schemas/environment-image-manifest.schema.json +62 -0
  514. package/docs/schemas/error.schema.json +22 -0
  515. package/docs/schemas/eval-control.schema.json +36 -0
  516. package/docs/schemas/eval-execution-plan.schema.json +216 -0
  517. package/docs/schemas/eval-progress.schema.json +1 -15
  518. package/docs/schemas/eval-rerun-result.schema.json +58 -0
  519. package/docs/schemas/eval-rerun-state.schema.json +61 -0
  520. package/docs/schemas/eval-rerun-submission.schema.json +60 -0
  521. package/docs/schemas/eval-result.schema.json +32 -13
  522. package/docs/schemas/eval-submission-input.schema.json +14 -0
  523. package/docs/schemas/eval-submission.schema.json +68 -0
  524. package/docs/schemas/eval-trial-publication.schema.json +15 -0
  525. package/docs/schemas/eval-trial-reference.schema.json +129 -0
  526. package/docs/schemas/execution-evidence.schema.json +96 -0
  527. package/docs/schemas/execution-lease.schema.json +50 -0
  528. package/docs/schemas/execution-provider-status.schema.json +65 -0
  529. package/docs/schemas/execution-worker.schema.json +53 -0
  530. package/docs/schemas/harbor-process-exit.schema.json +14 -0
  531. package/docs/schemas/interaction-capture-ref.schema.json +45 -0
  532. package/docs/schemas/local-provider-execution.schema.json +33 -0
  533. package/docs/schemas/model-interaction.schema.json +41 -0
  534. package/docs/schemas/regrade-assessment-reference.schema.json +11 -0
  535. package/docs/schemas/remote-result-envelope.schema.json +32 -0
  536. package/docs/schemas/remote-tree-envelope.schema.json +25 -0
  537. package/docs/schemas/remote-work-offer.schema.json +58 -0
  538. package/docs/schemas/remote-work-receipt.schema.json +50 -0
  539. package/docs/schemas/remote-worker-artifact.schema.json +17 -0
  540. package/docs/schemas/remote-worker-event.schema.json +18 -0
  541. package/docs/schemas/remote-worker-heartbeat.schema.json +37 -0
  542. package/docs/schemas/remote-worker-registration.schema.json +52 -0
  543. package/docs/schemas/result-bundle-index.schema.json +133 -0
  544. package/docs/schemas/run-context.schema.json +15 -0
  545. package/docs/schemas/run-environment-images.schema.json +39 -0
  546. package/docs/schemas/run-manifest.schema.json +4 -0
  547. package/docs/schemas/run-request.schema.json +4 -0
  548. package/docs/schemas/training-data-candidate.schema.json +46 -0
  549. package/docs/schemas/trajectory-analysis.schema.json +258 -0
  550. package/docs/schemas/trajectory-events-page.schema.json +40 -0
  551. package/docs/schemas/verifier-assessment.schema.json +77 -0
  552. package/docs/schemas/verifier-evidence.schema.json +276 -0
  553. package/integrations/harbor/hitch_benchmark.py +252 -0
  554. package/integrations/harbor/hitch_candidate_recycle.py +262 -0
  555. package/integrations/harbor/hitch_harbor_agent.py +698 -568
  556. package/integrations/harbor/hitch_harbor_environment.py +469 -0
  557. package/integrations/harbor/hitch_harbor_task_resources.py +275 -0
  558. package/integrations/harbor/hitch_harbor_verifier.py +83 -2
  559. package/integrations/harbor/hitch_phase_supervisor.py +452 -0
  560. package/integrations/harbor/hitch_tool_client.mjs +91 -0
  561. package/integrations/model-call/cli.js +57 -0
  562. package/package.json +30 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-workers.js","sourceRoot":"","sources":["../../../src/control-plane/remote-workers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,448 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { mkdir, readdir, rm } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { assertEvalRerunTypeSupported, evalRerunSemantics, rerunEval, validateEvalId, parseEvalExecutionPlan, } from "../evals/index.js";
5
+ import { EvalEventSink } from "../evals/index.js";
6
+ import { HitchError, SCHEMA_VERSION, atomicWriteJSON, credentialValuesFromEnv, ensureDir, hitchRootId, readJSON, safeDiagnosticMessage, statePaths } from "../foundation/index.js";
7
+ import { CollisionLockManager } from "./collisions.js";
8
+ import { defaultEvalExecutionPolicy, evalCollisionKeys, isTerminalControl, parseEvalControl, parseEvalSubmission } from "./eval-records.js";
9
+ import { localProviderStatusSnapshot } from "./local-worker.js";
10
+ import { modelCapturePlanForEval } from "./model-capture-planning.js";
11
+ import { scaleResources, zeroResources } from "./resources.js";
12
+ import { parseEvalRerunSubmissionInput, parsePersistedSubmission, serializedSelector, validateRerunId } from "./rerun-submission.js";
13
+ export { parseEvalRerunSubmissionInput } from "./rerun-submission.js";
14
+ export class EvalRerunScheduler {
15
+ root;
16
+ rerunsRoot;
17
+ resources;
18
+ trialResources;
19
+ collisions;
20
+ collisionDomainId;
21
+ provider;
22
+ workerId;
23
+ executor;
24
+ onEvent;
25
+ credentialEnv;
26
+ unsubscribeResources;
27
+ unsubscribeCollisions;
28
+ queue = [];
29
+ active = new Map();
30
+ completions = new Map();
31
+ mutations = new Map();
32
+ accepting = true;
33
+ draining = false;
34
+ constructor({ root, resources, trialResources, collisions = new CollisionLockManager(), collisionDomainId = "local-docker", provider = "local-docker", executor = rerunEval, onEvent = () => { }, credentialEnv = process.env }) {
35
+ this.root = root;
36
+ this.rerunsRoot = statePaths(root).evals;
37
+ this.resources = resources;
38
+ this.trialResources = trialResources;
39
+ this.collisions = collisions;
40
+ this.collisionDomainId = collisionDomainId;
41
+ this.provider = provider;
42
+ this.workerId = `worker_${hitchRootId(root)}`;
43
+ this.executor = executor;
44
+ this.onEvent = onEvent;
45
+ this.credentialEnv = credentialEnv;
46
+ this.unsubscribeResources = resources.subscribe(() => this.scheduleDrain());
47
+ this.unsubscribeCollisions = collisions.subscribe(() => this.scheduleDrain());
48
+ }
49
+ async initialize() {
50
+ await ensureDir(this.rerunsRoot);
51
+ await this.recoverInterrupted();
52
+ this.scheduleDrain();
53
+ }
54
+ async submit(evalIdValue, value) {
55
+ if (!this.accepting)
56
+ throw new HitchError("daemon is shutting down", { code: "daemon_shutting_down", exitCode: 12 });
57
+ const evalId = validateEvalId(evalIdValue);
58
+ const input = parseEvalRerunSubmissionInput(value);
59
+ assertEvalRerunTypeSupported(input.rerun_type);
60
+ const rerunId = input.rerun_id ?? `rerun_${randomUUID().replaceAll("-", "")}`;
61
+ return this.serialize(evalId, rerunId, async () => {
62
+ const directory = path.join(this.rerunsRoot, evalId, "reruns", rerunId);
63
+ if (await readJSON(path.join(directory, "cancellation.json"), null)) {
64
+ throw new HitchError("rerun identity has been cancelled", { code: "eval_rerun_cancelled", exitCode: 12 });
65
+ }
66
+ const existing = await readJSON(path.join(directory, "submission.json"), null);
67
+ if (existing) {
68
+ const parsed = parsePersistedSubmission(existing, evalId, rerunId);
69
+ if (parsed.rerun_type !== input.rerun_type || parsed.verifier_runtime_id !== input.verifier_runtime_id || JSON.stringify(parsed.selector) !== JSON.stringify(input.selector)) {
70
+ throw new HitchError("rerun identity already belongs to a different request", { code: "idempotency_conflict", exitCode: 12 });
71
+ }
72
+ return { evalId, rerunId, rerunType: input.rerun_type };
73
+ }
74
+ return this.submitNew(evalId, rerunId, input);
75
+ });
76
+ }
77
+ async submitNew(evalId, rerunId, input) {
78
+ const source = await this.loadSource(evalId, input.rerun_type);
79
+ if (!this.resources.canEverFit(rerunResourceUnit(input.rerun_type, source.execution.resources.default_trial))) {
80
+ throw new HitchError("one rerun trial exceeds the daemon resource capacity", { code: "resource_request_unsatisfiable", exitCode: 10 });
81
+ }
82
+ const directory = path.join(this.rerunsRoot, evalId, "reruns", rerunId);
83
+ const entry = await this.queuedEntry(evalId, rerunId, input.rerun_type, input.selector, source.request, source.execution, source.modelCapturePlan, directory);
84
+ if (input.verifier_runtime_id)
85
+ entry.verifierRuntimeId = input.verifier_runtime_id;
86
+ await ensureDir(path.dirname(directory));
87
+ await mkdir(directory, { recursive: true, mode: 0o700 });
88
+ const submittedAt = new Date().toISOString();
89
+ try {
90
+ await atomicWriteJSON(path.join(directory, "submission.json"), {
91
+ schema_version: SCHEMA_VERSION,
92
+ rerun_id: rerunId,
93
+ eval_id: evalId,
94
+ rerun_type: input.rerun_type,
95
+ ...(input.verifier_runtime_id ? { verifier_runtime_id: input.verifier_runtime_id } : {}),
96
+ semantics: evalRerunSemantics(input.rerun_type),
97
+ selector: serializedSelector(input.selector),
98
+ submitted_at: submittedAt,
99
+ });
100
+ await atomicWriteJSON(path.join(directory, "state.json"), queuedState(evalId, rerunId, input.rerun_type, submittedAt));
101
+ await this.emit(entry, { type: "eval.rerun.queued", rerun_type: input.rerun_type, selector: serializedSelector(input.selector) });
102
+ }
103
+ catch (error) {
104
+ await rm(directory, { recursive: true, force: true });
105
+ throw error;
106
+ }
107
+ this.queue.push(entry);
108
+ this.scheduleDrain();
109
+ return { evalId, rerunId, rerunType: input.rerun_type };
110
+ }
111
+ /** Acknowledges only after execution, source publication and lease cleanup stop.
112
+ * Unknown IDs are durably fenced so a delayed submission cannot launch later. */
113
+ async cancel(evalIdValue, rerunId) {
114
+ const evalId = validateEvalId(evalIdValue);
115
+ validateRerunId(rerunId);
116
+ return this.serialize(evalId, rerunId, async () => {
117
+ const key = operationKey(evalId, rerunId);
118
+ const directory = path.join(this.rerunsRoot, evalId, "reruns", rerunId);
119
+ const status = await this.status(evalId, rerunId);
120
+ if (status?.state.status === "failed" && status.state.error?.code === "execution_state_ambiguous") {
121
+ throw new HitchError("cannot prove interrupted rerun execution has stopped", { code: "execution_state_ambiguous", exitCode: 12 });
122
+ }
123
+ const index = this.queue.findIndex(entry => entry.evalId === evalId && entry.rerunId === rerunId);
124
+ const queued = index < 0 ? undefined : this.queue.splice(index, 1)[0];
125
+ try {
126
+ await ensureDir(directory);
127
+ await atomicWriteJSON(path.join(directory, "cancellation.json"), { schema_version: SCHEMA_VERSION, eval_id: evalId, rerun_id: rerunId });
128
+ }
129
+ catch (error) {
130
+ if (queued) {
131
+ this.queue.push(queued);
132
+ this.scheduleDrain();
133
+ }
134
+ throw error;
135
+ }
136
+ this.active.get(key)?.controller.abort();
137
+ await this.completions.get(key);
138
+ const state = await readJSON(path.join(directory, "state.json"), null);
139
+ if (state && state.status !== "completed" && state.status !== "failed" && state.status !== "cancelled") {
140
+ await atomicWriteJSON(path.join(directory, "state.json"), { ...state, status: "cancelled", updated_at: new Date().toISOString(), completed_at: new Date().toISOString() });
141
+ }
142
+ return state?.status === "completed" || state?.status === "failed" ? state.status : "cancelled";
143
+ });
144
+ }
145
+ async serialize(evalId, rerunId, action) {
146
+ const key = operationKey(evalId, rerunId);
147
+ const previous = this.mutations.get(key) ?? Promise.resolve();
148
+ const current = previous.catch(() => { }).then(action);
149
+ this.mutations.set(key, current);
150
+ try {
151
+ return await current;
152
+ }
153
+ finally {
154
+ if (this.mutations.get(key) === current)
155
+ this.mutations.delete(key);
156
+ }
157
+ }
158
+ async status(evalIdValue, rerunId) {
159
+ const evalId = validateEvalId(evalIdValue);
160
+ validateRerunId(rerunId);
161
+ const directory = path.join(this.rerunsRoot, evalId, "reruns", rerunId);
162
+ const submission = await readJSON(path.join(directory, "submission.json"), null);
163
+ let state = await readJSON(path.join(directory, "state.json"), null);
164
+ if (!submission || !state || submission.eval_id !== evalId || submission.rerun_id !== rerunId)
165
+ return null;
166
+ assertRerunStateIdentity(state, evalId, rerunId);
167
+ // The terminal state is written before the terminal event is flushed. Do
168
+ // not expose that narrow intermediate state through the API while this
169
+ // scheduler still owns the completion tail.
170
+ if (state.status === "completed" || state.status === "failed" || state.status === "cancelled") {
171
+ const completion = this.completions.get(operationKey(evalId, rerunId));
172
+ if (completion) {
173
+ await completion;
174
+ state = await readJSON(path.join(directory, "state.json"));
175
+ assertRerunStateIdentity(state, evalId, rerunId);
176
+ }
177
+ }
178
+ return { submission, state, result: await readJSON(path.join(directory, "result.json"), null) };
179
+ }
180
+ snapshot() {
181
+ return {
182
+ queued: this.queue.length,
183
+ running: this.active.size,
184
+ active: [...this.active.keys()].sort(),
185
+ };
186
+ }
187
+ async shutdown() {
188
+ if (!this.accepting && this.completions.size === 0)
189
+ return;
190
+ this.accepting = false;
191
+ await Promise.allSettled([...this.mutations.values()]);
192
+ for (const entry of this.queue.splice(0)) {
193
+ await this.fail(entry, "daemon_shutdown", "rerun was cancelled before launch because the daemon shut down");
194
+ }
195
+ for (const active of this.active.values())
196
+ active.controller.abort();
197
+ await Promise.all([...this.completions.values()]);
198
+ this.unsubscribeResources();
199
+ this.unsubscribeCollisions();
200
+ }
201
+ scheduleDrain() {
202
+ if (this.draining)
203
+ return;
204
+ queueMicrotask(() => this.drain());
205
+ }
206
+ drain() {
207
+ if (this.draining || !this.accepting)
208
+ return;
209
+ this.draining = true;
210
+ try {
211
+ for (;;) {
212
+ const selected = this.selectRunnable();
213
+ if (!selected)
214
+ break;
215
+ const [entry] = this.queue.splice(selected.index, 1);
216
+ if (!entry) {
217
+ selected.resources.release();
218
+ selected.collisions.release();
219
+ continue;
220
+ }
221
+ this.start(entry, selected.parallelism, selected.resources, selected.collisions);
222
+ }
223
+ }
224
+ finally {
225
+ this.draining = false;
226
+ }
227
+ }
228
+ selectRunnable() {
229
+ for (let index = 0; index < this.queue.length; index += 1) {
230
+ const entry = this.queue[index];
231
+ const unit = rerunResourceUnit(entry.rerunType, entry.execution.resources.default_trial);
232
+ const parallelism = entry.rerunType === "collect-only" ? 1 : this.resources.maximumUnits(unit, entry.execution.max_parallelism);
233
+ if (parallelism < 1)
234
+ continue;
235
+ const collisions = this.collisions.tryAcquire(operationKey(entry.evalId, entry.rerunId), entry.collisionKeys);
236
+ if (!collisions)
237
+ continue;
238
+ const resources = this.resources.tryAcquire(operationKey(entry.evalId, entry.rerunId), "eval", scaleResources(unit, parallelism));
239
+ if (resources)
240
+ return { index, parallelism, resources, collisions };
241
+ collisions.release();
242
+ }
243
+ return null;
244
+ }
245
+ start(entry, parallelism, resources, collisions) {
246
+ const controller = new AbortController();
247
+ const key = operationKey(entry.evalId, entry.rerunId);
248
+ this.active.set(key, { controller, resources, collisions });
249
+ const completion = this.execute(entry, parallelism, resources, controller)
250
+ .catch((error) => this.fail(entry, errorCode(error), safeDiagnosticMessage(error, credentialValuesFromEnv(entry.request.pass_env, this.credentialEnv)), controller.signal.aborted ? "cancelled" : "failed"))
251
+ .finally(() => {
252
+ this.active.delete(key);
253
+ this.completions.delete(key);
254
+ resources.release();
255
+ collisions.release();
256
+ this.scheduleDrain();
257
+ });
258
+ this.completions.set(key, completion);
259
+ }
260
+ async execute(entry, parallelism, resources, controller) {
261
+ await this.mergeState(entry, {
262
+ status: "running",
263
+ admitted_parallelism: parallelism,
264
+ allocation_id: resources.allocation.allocation_id,
265
+ started_at: new Date().toISOString(),
266
+ });
267
+ await this.emit(entry, { type: "eval.rerun.started", rerun_type: entry.rerunType, admitted_parallelism: parallelism });
268
+ controller.signal.throwIfAborted();
269
+ const result = await this.executor({
270
+ evalId: entry.evalId,
271
+ rerunId: entry.rerunId,
272
+ rerunType: entry.rerunType,
273
+ ...(entry.verifierRuntimeId ? { verifierRuntimeId: entry.verifierRuntimeId } : {}),
274
+ selector: entry.selector,
275
+ root: this.root,
276
+ maxConcurrentOverride: parallelism,
277
+ executionResources: rerunResourceUnit(entry.rerunType, entry.execution.resources.default_trial),
278
+ executionResourceSource: "submission-default",
279
+ executionStrategy: "local-task-slots-v1",
280
+ environmentBuildMode: entry.execution.build.mode,
281
+ ...(entry.modelCapturePlan ? { modelCapturePlan: entry.modelCapturePlan } : {}),
282
+ env: this.credentialEnv,
283
+ signal: controller.signal,
284
+ });
285
+ controller.signal.throwIfAborted();
286
+ await atomicWriteJSON(path.join(entry.directory, "result.json"), result);
287
+ await this.synchronizeSourceControl(entry.evalId, result);
288
+ await this.mergeState(entry, { status: "completed", completed_at: result.completed_at });
289
+ await this.emit(entry, { type: "eval.rerun.completed", rerun_type: entry.rerunType, eval_status: result.eval_status });
290
+ }
291
+ async fail(entry, code, message, status = "failed") {
292
+ const completedAt = new Date().toISOString();
293
+ await this.mergeState(entry, { status, error: { code, message }, completed_at: completedAt });
294
+ await this.emit(entry, { type: `eval.rerun.${status}`, rerun_type: entry.rerunType, code });
295
+ }
296
+ async mergeState(entry, patch) {
297
+ const state = await readJSON(path.join(entry.directory, "state.json"));
298
+ assertRerunStateIdentity(state, entry.evalId, entry.rerunId);
299
+ const { allocation_id: _allocationId, admitted_parallelism: _admitted, ...base } = state;
300
+ await atomicWriteJSON(path.join(entry.directory, "state.json"), { ...base, ...patch, updated_at: new Date().toISOString() });
301
+ }
302
+ async emit(entry, event) {
303
+ const sink = new EvalEventSink(entry.directory, entry.evalId, this.onEvent);
304
+ await sink.open();
305
+ sink.emit({ ...event, rerun_id: entry.rerunId });
306
+ await sink.close();
307
+ }
308
+ async synchronizeSourceControl(evalId, result) {
309
+ const file = path.join(this.rerunsRoot, evalId, "control.json");
310
+ const current = parseEvalControl(await readJSON(file));
311
+ if (current.eval_id !== evalId)
312
+ throw new TypeError("eval control identity changed during rerun");
313
+ const sourceResult = await readJSON(path.join(this.rerunsRoot, evalId, "result.json"), null);
314
+ const { error: _error, allocation_id: _allocationId, ...base } = current;
315
+ const error = sourceResult?.error;
316
+ const next = parseEvalControl({
317
+ ...base,
318
+ state: result.eval_status,
319
+ admitted_parallelism: 0,
320
+ ...(result.eval_status === "failed" && error && typeof error === "object" && !Array.isArray(error) ? { error } : {}),
321
+ generation: current.generation + 1,
322
+ updated_at: new Date().toISOString(),
323
+ });
324
+ await atomicWriteJSON(file, next);
325
+ }
326
+ async loadSource(evalId, rerunType) {
327
+ const directory = path.join(this.rerunsRoot, evalId);
328
+ const submissionValue = await readJSON(path.join(directory, "submission.json"), null);
329
+ const controlValue = await readJSON(path.join(directory, "control.json"), null);
330
+ if (!submissionValue || !controlValue)
331
+ throw new HitchError(`eval not found: ${evalId}`, { code: "eval_not_found", exitCode: 3 });
332
+ const submission = await parseEvalSubmission(submissionValue, evalId);
333
+ const control = parseEvalControl(controlValue);
334
+ if (control.eval_id !== evalId)
335
+ throw new TypeError("eval control identity does not match its directory");
336
+ const result = await readJSON(path.join(directory, "result.json"), null);
337
+ if (!isTerminalControl(control.state) || !result) {
338
+ throw new HitchError("eval rerun requires a terminal source eval", { code: "eval_rerun_source_not_terminal", exitCode: 12 });
339
+ }
340
+ if (control.state === "cancelled" || result.status === "cancelled") {
341
+ throw new HitchError("cancelled eval cannot be rerun", { code: "eval_rerun_cancelled", exitCode: 12 });
342
+ }
343
+ let execution = submission.execution || defaultEvalExecutionPolicy(submission.request, {
344
+ provider: this.provider,
345
+ trialResources: this.trialResources,
346
+ buildMode: "backend",
347
+ });
348
+ if (rerunType === "verifier-only") {
349
+ const plan = parseEvalExecutionPlan(await readJSON(path.join(directory, "execution-plan.json")));
350
+ const upper = { ...execution.resources.default_trial };
351
+ for (const item of plan.work_items)
352
+ for (const key of Object.keys(item.reservation))
353
+ upper[key] = Math.max(upper[key] ?? 0, item.reservation[key] ?? 0);
354
+ // Artifact regrades run serially and preserve the source resource limits.
355
+ execution = { ...execution, max_parallelism: 1, resources: { ...execution.resources, default_trial: upper } };
356
+ }
357
+ const modelCapturePlan = execution.provider === this.provider
358
+ ? modelCapturePlanForEval(submission.request, execution, localProviderStatusSnapshot({
359
+ workerId: this.workerId,
360
+ provider: this.provider,
361
+ collisionDomainId: this.collisionDomainId,
362
+ accepting: this.accepting,
363
+ resources: this.resources,
364
+ }))
365
+ : undefined;
366
+ return { request: submission.request, execution, ...(modelCapturePlan ? { modelCapturePlan } : {}) };
367
+ }
368
+ async queuedEntry(evalId, rerunId, rerunType, selector, request, execution, modelCapturePlan, directory) {
369
+ return {
370
+ evalId,
371
+ rerunId,
372
+ rerunType,
373
+ selector,
374
+ request,
375
+ execution,
376
+ ...(modelCapturePlan ? { modelCapturePlan } : {}),
377
+ directory,
378
+ collisionKeys: rerunType === "collect-only" ? [] : await evalCollisionKeys(request, this.collisionDomainId),
379
+ };
380
+ }
381
+ async recoverInterrupted() {
382
+ for (const evalEntry of await readdir(this.rerunsRoot, { withFileTypes: true })) {
383
+ if (!evalEntry.isDirectory() || !/^eval_[a-f0-9]{32}$/.test(evalEntry.name))
384
+ continue;
385
+ const reruns = path.join(this.rerunsRoot, evalEntry.name, "reruns");
386
+ let entries;
387
+ try {
388
+ entries = await readdir(reruns, { withFileTypes: true });
389
+ }
390
+ catch (error) {
391
+ if (error.code === "ENOENT")
392
+ continue;
393
+ throw error;
394
+ }
395
+ for (const entry of entries) {
396
+ if (!entry.isDirectory() || !/^rerun_[a-f0-9]{32}$/.test(entry.name))
397
+ continue;
398
+ const directory = path.join(reruns, entry.name);
399
+ const state = await readJSON(path.join(directory, "state.json"), null);
400
+ const submission = await readJSON(path.join(directory, "submission.json"), null);
401
+ if (!state || !submission || !new Set(["queued", "running"]).has(String(state.status)))
402
+ continue;
403
+ const parsed = parsePersistedSubmission(submission, evalEntry.name, entry.name);
404
+ assertRerunStateIdentity(state, evalEntry.name, entry.name);
405
+ if (state.status === "queued" && await readJSON(path.join(directory, "cancellation.json"), null)) {
406
+ await atomicWriteJSON(path.join(directory, "state.json"), { ...state, status: "cancelled", updated_at: new Date().toISOString(), completed_at: new Date().toISOString() });
407
+ continue;
408
+ }
409
+ const source = await this.loadSource(evalEntry.name, parsed.rerun_type);
410
+ const queued = await this.queuedEntry(evalEntry.name, entry.name, parsed.rerun_type, parsed.selector, source.request, source.execution, source.modelCapturePlan, directory);
411
+ if (parsed.verifier_runtime_id)
412
+ queued.verifierRuntimeId = parsed.verifier_runtime_id;
413
+ if (state.status === "queued")
414
+ this.queue.push(queued);
415
+ else
416
+ await this.fail(queued, "execution_state_ambiguous", "daemon restarted while rerun execution state was ambiguous");
417
+ }
418
+ }
419
+ }
420
+ }
421
+ function operationKey(evalId, rerunId) { return `${evalId}/${rerunId}`; }
422
+ function queuedState(evalId, rerunId, rerunType, timestamp) {
423
+ return {
424
+ schema_version: SCHEMA_VERSION,
425
+ rerun_id: rerunId,
426
+ eval_id: evalId,
427
+ rerun_type: rerunType,
428
+ semantics: evalRerunSemantics(rerunType),
429
+ status: "queued",
430
+ tasks: [],
431
+ repaired_tasks: [],
432
+ submitted_at: timestamp,
433
+ updated_at: timestamp,
434
+ };
435
+ }
436
+ function assertRerunStateIdentity(state, evalId, rerunId) {
437
+ if (state.schema_version !== "1" || state.eval_id !== evalId || state.rerun_id !== rerunId
438
+ || typeof state.status !== "string" || !new Set(["queued", "running", "completed", "failed", "cancelled"]).has(state.status)) {
439
+ throw new TypeError("eval rerun state identity is invalid");
440
+ }
441
+ }
442
+ function errorCode(error) {
443
+ return error instanceof HitchError ? error.code : "eval_rerun_failed";
444
+ }
445
+ function rerunResourceUnit(type, trialResources) {
446
+ return type === "collect-only" ? zeroResources() : trialResources;
447
+ }
448
+ //# sourceMappingURL=rerun-scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rerun-scheduler.js","sourceRoot":"","sources":["../../../src/control-plane/rerun-scheduler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { evalRerunSemantics, parseEvalRerunType } from "../evals/index.js";
2
+ import { invalidInput } from "../foundation/index.js";
3
+ export function validateRerunId(value) {
4
+ if (!/^rerun_[a-f0-9]{32}$/.test(value))
5
+ throw invalidInput("eval rerun id is invalid");
6
+ }
7
+ export function parseEvalRerunSubmissionInput(value) {
8
+ if (!value || typeof value !== "object" || Array.isArray(value))
9
+ throw invalidInput("eval rerun request must be an object");
10
+ const input = value;
11
+ if (Object.keys(input).some((key) => key !== "rerun_type" && key !== "selector" && key !== "rerun_id" && key !== "verifier_runtime_id"))
12
+ throw invalidInput("eval rerun request has unknown fields");
13
+ if (input.rerun_id !== undefined) {
14
+ if (typeof input.rerun_id !== "string")
15
+ throw invalidInput("eval rerun id is invalid");
16
+ validateRerunId(input.rerun_id);
17
+ }
18
+ const rerunType = parseEvalRerunType(input.rerun_type ?? "candidate-restart");
19
+ if (input.verifier_runtime_id !== undefined && (rerunType !== "verifier-only" || typeof input.verifier_runtime_id !== "string"
20
+ || !/^sha256:[a-f0-9]{64}$/.test(input.verifier_runtime_id)))
21
+ throw invalidInput("verifier runtime requires verifier-only and an exact digest");
22
+ return { ...(input.rerun_id === undefined ? {} : { rerun_id: input.rerun_id }),
23
+ ...(input.verifier_runtime_id === undefined ? {} : { verifier_runtime_id: input.verifier_runtime_id }),
24
+ rerun_type: rerunType, selector: parseSelector(input.selector) };
25
+ }
26
+ export function parsePersistedSubmission(value, evalId, rerunId) {
27
+ const allowed = new Set(["schema_version", "rerun_id", "eval_id", "rerun_type", "semantics", "selector", "submitted_at", "verifier_runtime_id"]);
28
+ if (value.schema_version !== "1" || value.eval_id !== evalId || value.rerun_id !== rerunId
29
+ || Object.keys(value).some((key) => !allowed.has(key))
30
+ || typeof value.submitted_at !== "string" || !Number.isFinite(Date.parse(value.submitted_at))) {
31
+ throw new TypeError("eval rerun submission identity is invalid");
32
+ }
33
+ const parsed = parseEvalRerunSubmissionInput({ rerun_type: value.rerun_type, selector: value.selector,
34
+ ...(value.verifier_runtime_id === undefined ? {} : { verifier_runtime_id: value.verifier_runtime_id }) });
35
+ if (JSON.stringify(value.semantics) !== JSON.stringify(evalRerunSemantics(parsed.rerun_type))) {
36
+ throw new TypeError("eval rerun submission semantics do not match rerun_type");
37
+ }
38
+ return parsed;
39
+ }
40
+ function parseSelector(value) {
41
+ if (!value || typeof value !== "object" || Array.isArray(value))
42
+ throw invalidInput("eval rerun selector must be an object");
43
+ const selector = value;
44
+ if (selector.mode === "invalid") {
45
+ if (Object.keys(selector).some((key) => key !== "mode"))
46
+ throw invalidInput("invalid selector has unknown fields");
47
+ return { mode: "invalid" };
48
+ }
49
+ if (selector.mode !== "tasks" || Object.keys(selector).some((key) => key !== "mode" && key !== "task_names")
50
+ || !Array.isArray(selector.task_names) || selector.task_names.length < 1 || selector.task_names.length > 10_000
51
+ || selector.task_names.some((task) => typeof task !== "string" || task.length < 1 || task.length > 1_024)) {
52
+ throw invalidInput("task selector requires 1-10000 bounded task_names");
53
+ }
54
+ const taskNames = selector.task_names;
55
+ if (new Set(taskNames).size !== taskNames.length)
56
+ throw invalidInput("eval rerun task_names must be unique");
57
+ return { mode: "tasks", taskNames: [...taskNames] };
58
+ }
59
+ export function serializedSelector(selector) {
60
+ return selector.mode === "invalid" ? { mode: "invalid" } : { mode: "tasks", task_names: [...selector.taskNames] };
61
+ }
62
+ //# sourceMappingURL=rerun-submission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rerun-submission.js","sourceRoot":"","sources":["../../../src/control-plane/rerun-submission.ts"],"names":[],"mappings":"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"}