agent-hitch 0.2.9 → 0.2.11

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 (427) hide show
  1. package/README.md +208 -138
  2. package/README.zh-CN.md +195 -120
  3. package/dist/scripts/canary-native-training.js +221 -0
  4. package/dist/scripts/canary-native-training.js.map +1 -0
  5. package/dist/scripts/canary-remote-training.js +246 -0
  6. package/dist/scripts/canary-remote-training.js.map +1 -0
  7. package/dist/scripts/canary-remote-verifier.js +124 -0
  8. package/dist/scripts/canary-remote-verifier.js.map +1 -0
  9. package/dist/scripts/canary-worker-host.js +113 -0
  10. package/dist/scripts/canary-worker-host.js.map +1 -0
  11. package/dist/scripts/canary-worker-peer.js +188 -0
  12. package/dist/scripts/canary-worker-peer.js.map +1 -0
  13. package/dist/scripts/check-architecture.js +4 -3
  14. package/dist/scripts/check-architecture.js.map +1 -1
  15. package/dist/src/adapters/catalog.js +2 -1
  16. package/dist/src/adapters/catalog.js.map +1 -1
  17. package/dist/src/adapters/providers/codex.js +65 -2
  18. package/dist/src/adapters/providers/codex.js.map +1 -1
  19. package/dist/src/adapters/providers/model-call.js +17 -1
  20. package/dist/src/adapters/providers/model-call.js.map +1 -1
  21. package/dist/src/adapters/providers/training-tool.js +29 -0
  22. package/dist/src/adapters/providers/training-tool.js.map +1 -0
  23. package/dist/src/artifacts/index.js +1 -1
  24. package/dist/src/artifacts/index.js.map +1 -1
  25. package/dist/src/artifacts/store.js +15 -10
  26. package/dist/src/artifacts/store.js.map +1 -1
  27. package/dist/src/backends/harbor/backend.js +24 -15
  28. package/dist/src/backends/harbor/backend.js.map +1 -1
  29. package/dist/src/backends/harbor/bridge-environment.js +12 -0
  30. package/dist/src/backends/harbor/bridge-environment.js.map +1 -0
  31. package/dist/src/backends/harbor/environment-config.js +2 -2
  32. package/dist/src/backends/harbor/environment-config.js.map +1 -1
  33. package/dist/src/backends/harbor/host-credential-helper.js +81 -0
  34. package/dist/src/backends/harbor/host-credential-helper.js.map +1 -0
  35. package/dist/src/backends/harbor/index.js +3 -0
  36. package/dist/src/backends/harbor/index.js.map +1 -1
  37. package/dist/src/backends/harbor/model-proxy-config.js +18 -1
  38. package/dist/src/backends/harbor/model-proxy-config.js.map +1 -1
  39. package/dist/src/backends/harbor/observation.js +61 -0
  40. package/dist/src/backends/harbor/observation.js.map +1 -0
  41. package/dist/src/backends/harbor/portable-regrade.js +150 -0
  42. package/dist/src/backends/harbor/portable-regrade.js.map +1 -0
  43. package/dist/src/backends/harbor/process.js +26 -5
  44. package/dist/src/backends/harbor/process.js.map +1 -1
  45. package/dist/src/backends/harbor/regrade.js +4 -1
  46. package/dist/src/backends/harbor/regrade.js.map +1 -1
  47. package/dist/src/backends/harbor/supervisor.js +22 -0
  48. package/dist/src/backends/harbor/supervisor.js.map +1 -1
  49. package/dist/src/backends/harbor/tools.js +2 -0
  50. package/dist/src/backends/harbor/tools.js.map +1 -1
  51. package/dist/src/backends/index.js +3 -0
  52. package/dist/src/backends/index.js.map +1 -1
  53. package/dist/src/cli/arguments.js +33 -0
  54. package/dist/src/cli/arguments.js.map +1 -1
  55. package/dist/src/cli/commands/capabilities.js +15 -1
  56. package/dist/src/cli/commands/capabilities.js.map +1 -1
  57. package/dist/src/cli/commands/daemon.js +19 -0
  58. package/dist/src/cli/commands/daemon.js.map +1 -1
  59. package/dist/src/cli/commands/eval.js +38 -10
  60. package/dist/src/cli/commands/eval.js.map +1 -1
  61. package/dist/src/cli/commands/local.js +130 -0
  62. package/dist/src/cli/commands/local.js.map +1 -0
  63. package/dist/src/cli/commands/model-node.js +26 -0
  64. package/dist/src/cli/commands/model-node.js.map +1 -0
  65. package/dist/src/cli/commands/models.js +72 -0
  66. package/dist/src/cli/commands/models.js.map +1 -0
  67. package/dist/src/cli/commands/run.js +36 -1
  68. package/dist/src/cli/commands/run.js.map +1 -1
  69. package/dist/src/cli/commands/training.js +32 -0
  70. package/dist/src/cli/commands/training.js.map +1 -0
  71. package/dist/src/cli/commands/verifier.js +54 -3
  72. package/dist/src/cli/commands/verifier.js.map +1 -1
  73. package/dist/src/cli/commands/worker.js +30 -2
  74. package/dist/src/cli/commands/worker.js.map +1 -1
  75. package/dist/src/cli/main.js +8 -0
  76. package/dist/src/cli/main.js.map +1 -1
  77. package/dist/src/cli/output.js +26 -2
  78. package/dist/src/cli/output.js.map +1 -1
  79. package/dist/src/control-plane/eval-records.js +2 -0
  80. package/dist/src/control-plane/eval-records.js.map +1 -1
  81. package/dist/src/control-plane/eval-recovery.js +7 -1
  82. package/dist/src/control-plane/eval-recovery.js.map +1 -1
  83. package/dist/src/control-plane/eval-scheduler.js +24 -50
  84. package/dist/src/control-plane/eval-scheduler.js.map +1 -1
  85. package/dist/src/control-plane/eval-submission-persist.js +30 -0
  86. package/dist/src/control-plane/eval-submission-persist.js.map +1 -0
  87. package/dist/src/control-plane/execution-observation-contract.js +60 -0
  88. package/dist/src/control-plane/execution-observation-contract.js.map +1 -0
  89. package/dist/src/control-plane/index.js +10 -0
  90. package/dist/src/control-plane/index.js.map +1 -1
  91. package/dist/src/control-plane/inference-manager.js +357 -0
  92. package/dist/src/control-plane/inference-manager.js.map +1 -0
  93. package/dist/src/control-plane/managed-gateway-receipt.js +26 -0
  94. package/dist/src/control-plane/managed-gateway-receipt.js.map +1 -0
  95. package/dist/src/control-plane/managed-service-recovery.js +158 -0
  96. package/dist/src/control-plane/managed-service-recovery.js.map +1 -0
  97. package/dist/src/control-plane/model-capture-planning.js +15 -1
  98. package/dist/src/control-plane/model-capture-planning.js.map +1 -1
  99. package/dist/src/control-plane/ordered-eval-control.js +221 -0
  100. package/dist/src/control-plane/ordered-eval-control.js.map +1 -0
  101. package/dist/src/control-plane/remote-backend-result.js +18 -0
  102. package/dist/src/control-plane/remote-backend-result.js.map +1 -0
  103. package/dist/src/control-plane/remote-execution-lease.js +15 -0
  104. package/dist/src/control-plane/remote-execution-lease.js.map +1 -0
  105. package/dist/src/control-plane/remote-execution-observation.js +108 -0
  106. package/dist/src/control-plane/remote-execution-observation.js.map +1 -0
  107. package/dist/src/control-plane/remote-model-routes.js +107 -0
  108. package/dist/src/control-plane/remote-model-routes.js.map +1 -0
  109. package/dist/src/control-plane/remote-observation-reporter.js +37 -0
  110. package/dist/src/control-plane/remote-observation-reporter.js.map +1 -0
  111. package/dist/src/control-plane/remote-offer-contract.js +48 -0
  112. package/dist/src/control-plane/remote-offer-contract.js.map +1 -0
  113. package/dist/src/control-plane/remote-rerun-journal.js +61 -0
  114. package/dist/src/control-plane/remote-rerun-journal.js.map +1 -0
  115. package/dist/src/control-plane/remote-result-transport.js +55 -9
  116. package/dist/src/control-plane/remote-result-transport.js.map +1 -1
  117. package/dist/src/control-plane/remote-verifier-import.js +52 -0
  118. package/dist/src/control-plane/remote-verifier-import.js.map +1 -0
  119. package/dist/src/control-plane/remote-verifier-result.js +61 -0
  120. package/dist/src/control-plane/remote-verifier-result.js.map +1 -0
  121. package/dist/src/control-plane/remote-verifier-source-transport.js +68 -0
  122. package/dist/src/control-plane/remote-verifier-source-transport.js.map +1 -0
  123. package/dist/src/control-plane/remote-work-coordinator.js +103 -47
  124. package/dist/src/control-plane/remote-work-coordinator.js.map +1 -1
  125. package/dist/src/control-plane/remote-work-inputs.js +26 -5
  126. package/dist/src/control-plane/remote-work-inputs.js.map +1 -1
  127. package/dist/src/control-plane/remote-work-recovery.js +123 -34
  128. package/dist/src/control-plane/remote-work-recovery.js.map +1 -1
  129. package/dist/src/control-plane/remote-worker-artifacts.js +10 -7
  130. package/dist/src/control-plane/remote-worker-artifacts.js.map +1 -1
  131. package/dist/src/control-plane/remote-worker-cleanup.js +104 -0
  132. package/dist/src/control-plane/remote-worker-cleanup.js.map +1 -0
  133. package/dist/src/control-plane/remote-worker-client.js +156 -14
  134. package/dist/src/control-plane/remote-worker-client.js.map +1 -1
  135. package/dist/src/control-plane/remote-worker-codecs.js +160 -0
  136. package/dist/src/control-plane/remote-worker-codecs.js.map +1 -0
  137. package/dist/src/control-plane/remote-worker-generation-recovery.js +67 -0
  138. package/dist/src/control-plane/remote-worker-generation-recovery.js.map +1 -0
  139. package/dist/src/control-plane/remote-worker-ownership.js +51 -0
  140. package/dist/src/control-plane/remote-worker-ownership.js.map +1 -0
  141. package/dist/src/control-plane/remote-worker-protocol.js +85 -119
  142. package/dist/src/control-plane/remote-worker-protocol.js.map +1 -1
  143. package/dist/src/control-plane/remote-worker-runner.js +95 -18
  144. package/dist/src/control-plane/remote-worker-runner.js.map +1 -1
  145. package/dist/src/control-plane/remote-workers.js +33 -5
  146. package/dist/src/control-plane/remote-workers.js.map +1 -1
  147. package/dist/src/control-plane/rerun-recovery.js +89 -0
  148. package/dist/src/control-plane/rerun-recovery.js.map +1 -0
  149. package/dist/src/control-plane/rerun-scheduler.js +70 -96
  150. package/dist/src/control-plane/rerun-scheduler.js.map +1 -1
  151. package/dist/src/control-plane/rerun-source.js +57 -0
  152. package/dist/src/control-plane/rerun-source.js.map +1 -0
  153. package/dist/src/control-plane/worker-model-relay.js +76 -0
  154. package/dist/src/control-plane/worker-model-relay.js.map +1 -0
  155. package/dist/src/controller-runtime/hash.js +3 -0
  156. package/dist/src/controller-runtime/hash.js.map +1 -1
  157. package/dist/src/controller-runtime/index.js +2 -0
  158. package/dist/src/controller-runtime/index.js.map +1 -1
  159. package/dist/src/controller-runtime/observation.js +29 -0
  160. package/dist/src/controller-runtime/observation.js.map +1 -0
  161. package/dist/src/controller-runtime/resident.js +22 -0
  162. package/dist/src/controller-runtime/resident.js.map +1 -0
  163. package/dist/src/daemon/client.js +34 -1
  164. package/dist/src/daemon/client.js.map +1 -1
  165. package/dist/src/daemon/execution-observation.js +38 -0
  166. package/dist/src/daemon/execution-observation.js.map +1 -0
  167. package/dist/src/daemon/http.js +57 -0
  168. package/dist/src/daemon/http.js.map +1 -0
  169. package/dist/src/daemon/inference-prepare.js +47 -0
  170. package/dist/src/daemon/inference-prepare.js.map +1 -0
  171. package/dist/src/daemon/scheduler.js +4 -1
  172. package/dist/src/daemon/scheduler.js.map +1 -1
  173. package/dist/src/daemon/server.js +80 -82
  174. package/dist/src/daemon/server.js.map +1 -1
  175. package/dist/src/daemon/worker-observation.js +34 -0
  176. package/dist/src/daemon/worker-observation.js.map +1 -0
  177. package/dist/src/daemon/worker-ownership.js +71 -0
  178. package/dist/src/daemon/worker-ownership.js.map +1 -0
  179. package/dist/src/daemon/worker-routes.js +83 -15
  180. package/dist/src/daemon/worker-routes.js.map +1 -1
  181. package/dist/src/domain/execution-observation.js +2 -0
  182. package/dist/src/domain/execution-observation.js.map +1 -0
  183. package/dist/src/domain/index.js +1 -0
  184. package/dist/src/domain/index.js.map +1 -1
  185. package/dist/src/domain/inference.js +2 -0
  186. package/dist/src/domain/inference.js.map +1 -0
  187. package/dist/src/domain/runs.js.map +1 -1
  188. package/dist/src/domain/training.js +2 -0
  189. package/dist/src/domain/training.js.map +1 -0
  190. package/dist/src/domain/validation.js +11 -0
  191. package/dist/src/domain/validation.js.map +1 -1
  192. package/dist/src/domain/verifier-source.js +2 -0
  193. package/dist/src/domain/verifier-source.js.map +1 -0
  194. package/dist/src/domain/worker-recovery.js +2 -0
  195. package/dist/src/domain/worker-recovery.js.map +1 -0
  196. package/dist/src/evals/eval-logical-plan.js +8 -1
  197. package/dist/src/evals/eval-logical-plan.js.map +1 -1
  198. package/dist/src/evals/execution-leases.js +15 -2
  199. package/dist/src/evals/execution-leases.js.map +1 -1
  200. package/dist/src/evals/execution-plan.js +11 -1
  201. package/dist/src/evals/execution-plan.js.map +1 -1
  202. package/dist/src/evals/harbor-bridge-error.js +8 -0
  203. package/dist/src/evals/harbor-bridge-error.js.map +1 -1
  204. package/dist/src/evals/index.js +20 -0
  205. package/dist/src/evals/index.js.map +1 -1
  206. package/dist/src/evals/model-capture-plan.js +12 -0
  207. package/dist/src/evals/model-capture-plan.js.map +1 -1
  208. package/dist/src/evals/model-capture-runtime.js +25 -0
  209. package/dist/src/evals/model-capture-runtime.js.map +1 -1
  210. package/dist/src/evals/physical-work-plan.js +57 -0
  211. package/dist/src/evals/physical-work-plan.js.map +1 -0
  212. package/dist/src/evals/preparation-rerun.js +6 -0
  213. package/dist/src/evals/preparation-rerun.js.map +1 -1
  214. package/dist/src/evals/recovery.js +8 -1
  215. package/dist/src/evals/recovery.js.map +1 -1
  216. package/dist/src/evals/regrade-evidence.js +4 -4
  217. package/dist/src/evals/regrade-evidence.js.map +1 -1
  218. package/dist/src/evals/remote-execution-ownership.js +50 -0
  219. package/dist/src/evals/remote-execution-ownership.js.map +1 -0
  220. package/dist/src/evals/remote-infrastructure-retry.js +2 -0
  221. package/dist/src/evals/remote-infrastructure-retry.js.map +1 -1
  222. package/dist/src/evals/remote-lease-release.js +58 -0
  223. package/dist/src/evals/remote-lease-release.js.map +1 -0
  224. package/dist/src/evals/remote-rerun-execution.js +85 -0
  225. package/dist/src/evals/remote-rerun-execution.js.map +1 -0
  226. package/dist/src/evals/remote-trial.js +6 -0
  227. package/dist/src/evals/remote-trial.js.map +1 -0
  228. package/dist/src/evals/remote-verifier-assessment.js +85 -0
  229. package/dist/src/evals/remote-verifier-assessment.js.map +1 -0
  230. package/dist/src/evals/remote-verifier-contract.js +43 -0
  231. package/dist/src/evals/remote-verifier-contract.js.map +1 -0
  232. package/dist/src/evals/remote-verifier-execution.js +105 -0
  233. package/dist/src/evals/remote-verifier-execution.js.map +1 -0
  234. package/dist/src/evals/remote-verifier-journal.js +21 -0
  235. package/dist/src/evals/remote-verifier-journal.js.map +1 -0
  236. package/dist/src/evals/remote-verifier-outcome.js +51 -0
  237. package/dist/src/evals/remote-verifier-outcome.js.map +1 -0
  238. package/dist/src/evals/remote-verifier-rerun.js +134 -0
  239. package/dist/src/evals/remote-verifier-rerun.js.map +1 -0
  240. package/dist/src/evals/remote-verifier-selection.js +61 -0
  241. package/dist/src/evals/remote-verifier-selection.js.map +1 -0
  242. package/dist/src/evals/remote-verifier-source.js +33 -0
  243. package/dist/src/evals/remote-verifier-source.js.map +1 -0
  244. package/dist/src/evals/remote-worker-cleanup.js +46 -0
  245. package/dist/src/evals/remote-worker-cleanup.js.map +1 -0
  246. package/dist/src/evals/request.js +58 -1
  247. package/dist/src/evals/request.js.map +1 -1
  248. package/dist/src/evals/rerun-completion.js +39 -0
  249. package/dist/src/evals/rerun-completion.js.map +1 -0
  250. package/dist/src/evals/rerun-resume.js +70 -0
  251. package/dist/src/evals/rerun-resume.js.map +1 -0
  252. package/dist/src/evals/rerun-state.js +25 -0
  253. package/dist/src/evals/rerun-state.js.map +1 -0
  254. package/dist/src/evals/rerun-types.js.map +1 -1
  255. package/dist/src/evals/rerun.js +90 -46
  256. package/dist/src/evals/rerun.js.map +1 -1
  257. package/dist/src/evals/service.js +59 -5
  258. package/dist/src/evals/service.js.map +1 -1
  259. package/dist/src/evals/verifier-artifacts.js +98 -153
  260. package/dist/src/evals/verifier-artifacts.js.map +1 -1
  261. package/dist/src/evals/verifier-diagnostic-repair.js +276 -0
  262. package/dist/src/evals/verifier-diagnostic-repair.js.map +1 -0
  263. package/dist/src/evals/verifier-only-rerun.js +2 -16
  264. package/dist/src/evals/verifier-only-rerun.js.map +1 -1
  265. package/dist/src/evals/verifier-rerun-result.js +24 -0
  266. package/dist/src/evals/verifier-rerun-result.js.map +1 -0
  267. package/dist/src/evals/verifier-source-import.js +48 -0
  268. package/dist/src/evals/verifier-source-import.js.map +1 -0
  269. package/dist/src/evals/verifier-source.js +139 -0
  270. package/dist/src/evals/verifier-source.js.map +1 -0
  271. package/dist/src/foundation/base64.js +19 -0
  272. package/dist/src/foundation/base64.js.map +1 -0
  273. package/dist/src/foundation/config.js +10 -0
  274. package/dist/src/foundation/config.js.map +1 -1
  275. package/dist/src/foundation/credential-redaction.js +22 -9
  276. package/dist/src/foundation/credential-redaction.js.map +1 -1
  277. package/dist/src/foundation/index.js +1 -0
  278. package/dist/src/foundation/index.js.map +1 -1
  279. package/dist/src/foundation/process-identity.js +13 -9
  280. package/dist/src/foundation/process-identity.js.map +1 -1
  281. package/dist/src/inference/daemon-capacity.js +41 -0
  282. package/dist/src/inference/daemon-capacity.js.map +1 -0
  283. package/dist/src/inference/device-reservation.js +58 -0
  284. package/dist/src/inference/device-reservation.js.map +1 -0
  285. package/dist/src/inference/doctor.js +95 -0
  286. package/dist/src/inference/doctor.js.map +1 -0
  287. package/dist/src/inference/generation-recovery.js +83 -0
  288. package/dist/src/inference/generation-recovery.js.map +1 -0
  289. package/dist/src/inference/index.js +24 -0
  290. package/dist/src/inference/index.js.map +1 -0
  291. package/dist/src/inference/lock.js +331 -0
  292. package/dist/src/inference/lock.js.map +1 -0
  293. package/dist/src/inference/managed-launcher.js +35 -0
  294. package/dist/src/inference/managed-launcher.js.map +1 -0
  295. package/dist/src/inference/manifest.js +262 -0
  296. package/dist/src/inference/manifest.js.map +1 -0
  297. package/dist/src/inference/materialize.js +66 -0
  298. package/dist/src/inference/materialize.js.map +1 -0
  299. package/dist/src/inference/model-location.js +34 -0
  300. package/dist/src/inference/model-location.js.map +1 -0
  301. package/dist/src/inference/model-store.js +439 -0
  302. package/dist/src/inference/model-store.js.map +1 -0
  303. package/dist/src/inference/node-client.js +167 -0
  304. package/dist/src/inference/node-client.js.map +1 -0
  305. package/dist/src/inference/node-registry.js +79 -0
  306. package/dist/src/inference/node-registry.js.map +1 -0
  307. package/dist/src/inference/observation.js +79 -0
  308. package/dist/src/inference/observation.js.map +1 -0
  309. package/dist/src/inference/preflight.js +132 -0
  310. package/dist/src/inference/preflight.js.map +1 -0
  311. package/dist/src/inference/process-sglang.js +169 -0
  312. package/dist/src/inference/process-sglang.js.map +1 -0
  313. package/dist/src/inference/protocol-probe.js +29 -0
  314. package/dist/src/inference/protocol-probe.js.map +1 -0
  315. package/dist/src/inference/remote-model-store.js +24 -0
  316. package/dist/src/inference/remote-model-store.js.map +1 -0
  317. package/dist/src/inference/runtime-catalog.js +41 -0
  318. package/dist/src/inference/runtime-catalog.js.map +1 -0
  319. package/dist/src/inference/runtime-store.js +93 -0
  320. package/dist/src/inference/runtime-store.js.map +1 -0
  321. package/dist/src/inference/service-attachment.js +46 -0
  322. package/dist/src/inference/service-attachment.js.map +1 -0
  323. package/dist/src/inference/service-inspection.js +38 -0
  324. package/dist/src/inference/service-inspection.js.map +1 -0
  325. package/dist/src/inference/sglang.js +279 -0
  326. package/dist/src/inference/sglang.js.map +1 -0
  327. package/dist/src/inference/supervisor.js +460 -0
  328. package/dist/src/inference/supervisor.js.map +1 -0
  329. package/dist/src/model-access/environment.js +28 -0
  330. package/dist/src/model-access/environment.js.map +1 -0
  331. package/dist/src/model-access/index.js +4 -0
  332. package/dist/src/model-access/index.js.map +1 -1
  333. package/dist/src/model-access/local-gateway-request.js +139 -0
  334. package/dist/src/model-access/local-gateway-request.js.map +1 -0
  335. package/dist/src/model-access/local-gateway.js +323 -0
  336. package/dist/src/model-access/local-gateway.js.map +1 -0
  337. package/dist/src/model-access/proxy.js +90 -5
  338. package/dist/src/model-access/proxy.js.map +1 -1
  339. package/dist/src/model-access/remote-model.js +58 -0
  340. package/dist/src/model-access/remote-model.js.map +1 -0
  341. package/dist/src/model-access/training.js +115 -0
  342. package/dist/src/model-access/training.js.map +1 -0
  343. package/dist/src/runs/adapter-process.js +2 -2
  344. package/dist/src/runs/adapter-process.js.map +1 -1
  345. package/dist/src/runs/executor-types.js +2 -0
  346. package/dist/src/runs/executor-types.js.map +1 -0
  347. package/dist/src/runs/executor.js +54 -34
  348. package/dist/src/runs/executor.js.map +1 -1
  349. package/dist/src/runs/index.js +4 -2
  350. package/dist/src/runs/index.js.map +1 -1
  351. package/dist/src/runs/local-inference-environment.js +59 -0
  352. package/dist/src/runs/local-inference-environment.js.map +1 -0
  353. package/dist/src/runs/local-inference-run.js +53 -0
  354. package/dist/src/runs/local-inference-run.js.map +1 -0
  355. package/dist/src/runs/outcome.js +22 -0
  356. package/dist/src/runs/outcome.js.map +1 -1
  357. package/dist/src/runs/records.js +9 -0
  358. package/dist/src/runs/records.js.map +1 -1
  359. package/dist/src/runs/request.js +58 -3
  360. package/dist/src/runs/request.js.map +1 -1
  361. package/dist/src/runs/training-evidence.js +22 -0
  362. package/dist/src/runs/training-evidence.js.map +1 -0
  363. package/dist/src/runs/training-runtime.js +20 -0
  364. package/dist/src/runs/training-runtime.js.map +1 -0
  365. package/dist/src/runs/verifier-diagnostic-storage.js +237 -0
  366. package/dist/src/runs/verifier-diagnostic-storage.js.map +1 -0
  367. package/dist/src/runs/verifier-diagnostic-supplement.js +228 -0
  368. package/dist/src/runs/verifier-diagnostic-supplement.js.map +1 -0
  369. package/dist/src/runs/verifier-evidence.js +119 -118
  370. package/dist/src/runs/verifier-evidence.js.map +1 -1
  371. package/dist/src/trajectories/providers/deepseek.js +52 -38
  372. package/dist/src/trajectories/providers/deepseek.js.map +1 -1
  373. package/dist/src/trajectories/store.js +17 -0
  374. package/dist/src/trajectories/store.js.map +1 -1
  375. package/dist/src/workers/execution-observation.js +32 -0
  376. package/dist/src/workers/execution-observation.js.map +1 -0
  377. package/dist/src/workers/index.js +2 -0
  378. package/dist/src/workers/index.js.map +1 -1
  379. package/dist/src/workers/remote-harbor-ownership.js +266 -0
  380. package/dist/src/workers/remote-harbor-ownership.js.map +1 -0
  381. package/dist/src/workers/remote-harbor-verifier.js +76 -0
  382. package/dist/src/workers/remote-harbor-verifier.js.map +1 -0
  383. package/dist/src/workers/remote-harbor-work-spec.js +66 -10
  384. package/dist/src/workers/remote-harbor-work-spec.js.map +1 -1
  385. package/dist/src/workers/remote-harbor-worker.js +56 -49
  386. package/dist/src/workers/remote-harbor-worker.js.map +1 -1
  387. package/dist/src/workers/remote-worker-host.js +33 -0
  388. package/dist/src/workers/remote-worker-host.js.map +1 -0
  389. package/docs/local-model-inference-spec.zh-CN.md +666 -0
  390. package/docs/schemas/controller-runtime-observation.schema.json +21 -0
  391. package/docs/schemas/eval-execution-plan.schema.json +1 -0
  392. package/docs/schemas/eval-request.schema.json +3 -1
  393. package/docs/schemas/execution-lease.schema.json +95 -1
  394. package/docs/schemas/execution-provider-status.schema.json +162 -28
  395. package/docs/schemas/inference-execution-evidence.schema.json +487 -0
  396. package/docs/schemas/inference-lock.schema.json +487 -0
  397. package/docs/schemas/inference-runtime-manifest.schema.json +156 -0
  398. package/docs/schemas/inference-service-record.schema.json +227 -0
  399. package/docs/schemas/local-inference-selection.schema.json +98 -0
  400. package/docs/schemas/local-model-manifest.schema.json +43 -0
  401. package/docs/schemas/model-node-binding.schema.json +34 -0
  402. package/docs/schemas/model-node-generation-release.schema.json +46 -0
  403. package/docs/schemas/ordered-eval-control.schema.json +39 -0
  404. package/docs/schemas/remote-execution-lease-grant.schema.json +45 -0
  405. package/docs/schemas/remote-harbor-work-spec.schema.json +325 -0
  406. package/docs/schemas/remote-model-binding.schema.json +21 -0
  407. package/docs/schemas/remote-physical-execution.schema.json +108 -0
  408. package/docs/schemas/remote-result-envelope.schema.json +9 -3
  409. package/docs/schemas/remote-tree-envelope.schema.json +17 -3
  410. package/docs/schemas/remote-verifier-result.schema.json +203 -0
  411. package/docs/schemas/remote-verifier-source.schema.json +52 -0
  412. package/docs/schemas/remote-verifier-work.schema.json +125 -0
  413. package/docs/schemas/remote-work-offer.schema.json +170 -34
  414. package/docs/schemas/remote-worker-execution-admission.schema.json +214 -0
  415. package/docs/schemas/remote-worker-generation-cleanup.schema.json +199 -0
  416. package/docs/schemas/remote-worker-registration.schema.json +226 -25
  417. package/docs/schemas/run-manifest.schema.json +211 -44
  418. package/docs/schemas/run-request.schema.json +2 -1
  419. package/docs/schemas/training-external-binding.schema.json +26 -0
  420. package/docs/schemas/verifier-diagnostic-page.schema.json +97 -0
  421. package/integrations/harbor/hitch_harbor_agent.py +241 -13
  422. package/integrations/harbor/hitch_harbor_environment.py +22 -1
  423. package/integrations/harbor/hitch_host_credentials.py +354 -0
  424. package/integrations/harbor/hitch_private_exec.py +150 -0
  425. package/integrations/model-call/cli.js +13 -5
  426. package/integrations/training-tool/cli.js +72 -0
  427. package/package.json +8 -2
@@ -1,5 +1,7 @@
1
1
  import { HitchError, safeDiagnosticMessage } from "../foundation/index.js";
2
2
  import { ResourceLedger } from "./resources.js";
3
+ import { RemoteObservationReporter } from "./remote-observation-reporter.js";
4
+ import { RemoteWorkerGenerationRecovery } from "./remote-worker-generation-recovery.js";
3
5
  const REQUIRED_INPUTS = new Set(["work-spec", "harness-artifact", "controller-runtime", "task-input"]);
4
6
  export class RemoteWorkerRunner {
5
7
  client;
@@ -15,17 +17,21 @@ export class RemoteWorkerRunner {
15
17
  jobs = new Map();
16
18
  handled = 0;
17
19
  lastHeartbeat = 0;
20
+ observations;
21
+ generationRecovery;
18
22
  constructor(options) {
19
23
  this.client = options.client;
20
24
  this.execute = options.execute;
21
- this.signal = options.signal;
25
+ this.signal = options.signal ? AbortSignal.any([options.signal, this.client.fencedSignal]) : this.client.fencedSignal;
22
26
  this.once = options.once ?? false;
23
27
  this.pollIntervalMs = interval(options.pollIntervalMs ?? 1_000, "poll");
24
28
  this.heartbeatIntervalMs = interval(options.heartbeatIntervalMs ?? 10_000, "heartbeat");
25
29
  this.retryIntervalMs = interval(options.retryIntervalMs ?? 1_000, "retry");
26
30
  this.onError = options.onError ?? (() => undefined);
27
- this.releaseUnknown = options.releaseUnknown ?? (() => Promise.resolve());
31
+ this.releaseUnknown = options.releaseUnknown;
28
32
  this.ledger = new ResourceLedger(options.capacity);
33
+ this.observations = options.executionObserver ? new RemoteObservationReporter(this.client, options.executionObserver, this.onError) : undefined;
34
+ this.generationRecovery = options.releasePreviousGeneration ? new RemoteWorkerGenerationRecovery(this.client, options.releasePreviousGeneration, this.signal, this.retryIntervalMs, this.onError, () => { this.handled++; }) : undefined;
29
35
  }
30
36
  async run() {
31
37
  while (!this.signal?.aborted) {
@@ -35,22 +41,48 @@ export class RemoteWorkerRunner {
35
41
  catch (error) {
36
42
  this.onError(error);
37
43
  }
38
- if (this.once && this.handled > 0 && this.jobs.size === 0)
44
+ if (this.once && this.handled > 0 && this.jobs.size === 0 && this.generationRecovery?.idle !== false) {
45
+ await this.observations?.stop();
46
+ this.client.fencedSignal.throwIfAborted();
39
47
  return;
48
+ }
40
49
  await delay(this.pollIntervalMs, this.signal);
41
50
  }
42
51
  for (const job of this.jobs.values())
43
52
  job.controller.abort(this.signal?.reason);
53
+ await this.observations?.stop();
54
+ await this.generationRecovery?.stop();
44
55
  await Promise.allSettled([...this.jobs.values()].map((job) => job.promise));
56
+ for (const job of this.jobs.values()) {
57
+ // Stop and clean our own execution even when the controller no longer
58
+ // accepts this generation. A local cleanup is not a remote release receipt.
59
+ if (!job.executionSettled)
60
+ continue;
61
+ try {
62
+ if (!job.cleaned) {
63
+ await job.cleanup?.();
64
+ job.cleaned = true;
65
+ }
66
+ }
67
+ catch (error) {
68
+ this.onError(error);
69
+ }
70
+ }
71
+ this.client.fencedSignal.throwIfAborted();
45
72
  }
46
73
  async tick() {
74
+ this.observations?.tick();
47
75
  const offers = await this.client.listOffers();
76
+ this.generationRecovery?.tick(offers);
48
77
  const visible = new Map(offers.map((offer) => [offer.offer_id, offer]));
49
78
  const released = new Set();
50
79
  for (const job of this.jobs.values()) {
51
80
  const current = visible.get(job.offer.offer_id);
52
- if (!current)
81
+ if (!current) {
82
+ if (job.releaseSentAt)
83
+ await this.releaseJob(job);
53
84
  continue;
85
+ }
54
86
  job.offer = current;
55
87
  if (current.state === "cancel-requested")
56
88
  job.controller.abort(new Error("remote work cancellation requested"));
@@ -62,11 +94,25 @@ export class RemoteWorkerRunner {
62
94
  for (const offer of offers) {
63
95
  if (this.jobs.has(offer.offer_id) || released.has(offer.offer_id))
64
96
  continue;
97
+ // Older generations remain visible for accounting, but cannot be cleaned
98
+ // or acknowledged through this generation's v1 receipt authority.
99
+ if (offer.generation !== this.client.generation)
100
+ continue;
65
101
  if (offer.state === "release-requested" || offer.state === "cancel-requested") {
66
- await this.releaseUnknown(offer);
102
+ // Durable cancellation before acceptance fences any later accept. Such
103
+ // an offer never authorized an executor, even if no local record exists.
104
+ if (offer.state !== "cancel-requested" || offer.accepted_at)
105
+ await this.cleanUnknown(offer);
67
106
  await this.client.release(offer);
68
107
  this.handled += 1;
69
108
  }
109
+ else if (offer.state === "accepted" && this.releaseUnknown) {
110
+ await this.cleanUnknown(offer);
111
+ const artifact = await this.client.uploadArtifact(offer, "diagnostic", Buffer.from(`${JSON.stringify({
112
+ schema_version: "1", code: "remote_worker_interrupted", at: new Date().toISOString(),
113
+ })}\n`));
114
+ await this.client.complete(offer, "failed", [artifact]);
115
+ }
70
116
  else if (offer.state === "offered" && (!this.once || this.handled === 0)) {
71
117
  this.startOffer(offer);
72
118
  }
@@ -87,7 +133,8 @@ export class RemoteWorkerRunner {
87
133
  return;
88
134
  const controller = new AbortController();
89
135
  const job = {
90
- offer, controller, allocation, accepted: false, settled: false, cleanup: undefined,
136
+ offer, controller, signal: this.signal ? AbortSignal.any([controller.signal, this.signal]) : controller.signal,
137
+ allocation, accepted: false, settled: false, executionSettled: false, cleaned: false, cleanup: undefined,
91
138
  promise: Promise.resolve(),
92
139
  };
93
140
  this.jobs.set(offer.offer_id, job);
@@ -99,8 +146,10 @@ export class RemoteWorkerRunner {
99
146
  }
100
147
  async runOffer(job) {
101
148
  let inputs;
149
+ let ownership;
102
150
  try {
103
151
  inputs = await this.downloadInputs(job.offer);
152
+ ownership = await this.execute.prepare?.(job.offer) || undefined;
104
153
  }
105
154
  catch (error) {
106
155
  await this.client.reject(job.offer, rejectionCode(error));
@@ -108,7 +157,8 @@ export class RemoteWorkerRunner {
108
157
  this.finishJob(job);
109
158
  return;
110
159
  }
111
- const accepted = await retry(() => this.client.accept(job.offer), this.retryIntervalMs, this.signal);
160
+ const acceptanceTime = new Date().toISOString();
161
+ const accepted = await retry(() => this.client.accept(job.offer, ownership, acceptanceTime), this.retryIntervalMs, job.signal);
112
162
  if (accepted.state !== "accepted") {
113
163
  this.handled += 1;
114
164
  this.finishJob(job);
@@ -116,13 +166,21 @@ export class RemoteWorkerRunner {
116
166
  }
117
167
  job.offer = accepted;
118
168
  job.accepted = true;
119
- await this.heartbeat();
120
- const credentials = new Map(Object.entries((await retry(() => this.client.credentials(job.offer), this.retryIntervalMs, job.controller.signal)).credentials));
169
+ const credentials = new Map();
121
170
  let sequence = 0;
122
- const emit = (type, payload) => retry(() => this.client.emit(job.offer, ++sequence, type, payload), this.retryIntervalMs, job.controller.signal);
171
+ const emit = (type, payload) => {
172
+ const eventSequence = ++sequence, sentAt = new Date().toISOString();
173
+ return retry(() => this.client.emit(job.offer, eventSequence, type, payload, sentAt), this.retryIntervalMs, job.signal);
174
+ };
123
175
  let result;
124
176
  try {
125
- result = await this.execute({ offer: job.offer, inputs, credentials, signal: job.controller.signal, emit });
177
+ await this.heartbeat();
178
+ for (const [name, value] of Object.entries((await retry(() => this.client.credentials(job.offer), this.retryIntervalMs, job.signal)).credentials))
179
+ credentials.set(name, value);
180
+ result = await this.execute({ offer: job.offer, inputs, credentials, signal: job.signal, emit,
181
+ ...(ownership ? { ownership, authorizeProcess: identity => retry(() => this.client.authorizeProcess(job.offer, ownership, identity), this.retryIntervalMs, job.signal) } : {}),
182
+ readExecutionLease: signal => this.client.executionLease(job.offer, AbortSignal.any([signal, job.signal])),
183
+ relayModel: (runId, operation, body, signal) => this.client.relayModel(job.offer, runId, operation, body, AbortSignal.any([signal, job.signal])) });
126
184
  validateResult(result);
127
185
  job.cleanup = result.release;
128
186
  }
@@ -130,40 +188,59 @@ export class RemoteWorkerRunner {
130
188
  // Executor setup can fail before it has a chance to return its normal
131
189
  // release callback. Keep the offer releasable through the same
132
190
  // ownership-fenced recovery path used after a worker restart.
133
- job.cleanup = () => this.releaseUnknown(job.offer);
191
+ job.cleanup = () => this.cleanUnknown(job.offer);
134
192
  result = {
135
- status: job.controller.signal.aborted ? "cancelled" : "failed",
193
+ status: job.signal.aborted ? "cancelled" : "failed",
136
194
  artifacts: [{ kind: "diagnostic", body: diagnostic(error, [...credentials.values()]) }],
137
195
  };
138
196
  }
139
197
  finally {
140
198
  credentials.clear();
199
+ job.executionSettled = true;
141
200
  }
142
201
  const artifacts = [];
143
202
  for (const artifact of result.artifacts ?? []) {
144
203
  artifacts.push(await retry(() => this.client.uploadArtifact(job.offer, artifact.kind, artifact.body), this.retryIntervalMs, this.signal));
145
204
  }
146
- job.offer = await retry(() => this.client.complete(job.offer, result.status, artifacts), this.retryIntervalMs, this.signal);
205
+ const completionTime = new Date().toISOString();
206
+ job.offer = await retry(() => this.client.complete(job.offer, result.status, artifacts, completionTime), this.retryIntervalMs, this.signal);
147
207
  job.settled = true;
148
208
  await this.heartbeat();
149
209
  }
150
210
  async downloadInputs(offer) {
151
211
  const refs = offer.inputs ?? [];
152
- if (refs.length !== REQUIRED_INPUTS.size || refs.some((ref) => !REQUIRED_INPUTS.has(ref.kind))
153
- || new Set(refs.map((ref) => ref.kind)).size !== REQUIRED_INPUTS.size)
212
+ const verifier = refs.some(ref => ref.kind === "verifier-source" || ref.kind === "verifier-runtime");
213
+ const expected = verifier ? new Set([...REQUIRED_INPUTS, "verifier-source", "verifier-runtime"]) : REQUIRED_INPUTS;
214
+ if (refs.length !== expected.size || refs.some((ref) => !expected.has(ref.kind))
215
+ || new Set(refs.map((ref) => ref.kind)).size !== expected.size)
154
216
  throw runnerError("remote work offer is missing required inputs");
155
217
  const inputs = new Map();
156
218
  for (const ref of refs)
157
219
  inputs.set(ref.kind, await this.client.downloadInput(offer, ref));
220
+ const spec = JSON.parse(inputs.get("work-spec").toString());
221
+ if (verifier ? spec?.schema_version !== "2" || !spec.verifier_only || spec.physical_execution?.kind !== "verifier-only"
222
+ : spec?.verifier_only !== undefined || spec?.physical_execution?.kind === "verifier-only")
223
+ throw runnerError("remote verifier input set differs from its scoring contract");
158
224
  return inputs;
159
225
  }
160
226
  async releaseJob(job) {
161
- await job.cleanup?.();
162
- job.offer = await this.client.release(job.offer);
227
+ if (!job.settled)
228
+ throw runnerError("remote work cannot release before executor settlement");
229
+ if (!job.cleaned) {
230
+ await job.cleanup?.();
231
+ job.cleaned = true;
232
+ }
233
+ job.releaseSentAt ??= new Date().toISOString();
234
+ job.offer = await this.client.release(job.offer, job.releaseSentAt);
163
235
  this.handled += 1;
164
236
  this.finishJob(job);
165
237
  await this.heartbeat();
166
238
  }
239
+ async cleanUnknown(offer) {
240
+ if (!this.releaseUnknown)
241
+ throw runnerError("worker has no recovery cleanup implementation; release cannot be acknowledged");
242
+ await this.releaseUnknown(offer);
243
+ }
167
244
  finishJob(job) {
168
245
  job.allocation.release();
169
246
  this.jobs.delete(job.offer.offer_id);
@@ -1 +1 @@
1
- {"version":3,"file":"remote-worker-runner.js","sourceRoot":"","sources":["../../../src/control-plane/remote-worker-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-worker-runner.js","sourceRoot":"","sources":["../../../src/control-plane/remote-worker-runner.ts"],"names":[],"mappings":"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"}
@@ -44,14 +44,18 @@ export class RemoteWorkerRegistry {
44
44
  return { worker: publicRecord(persisted), token };
45
45
  }
46
46
  async authenticate(workerId, token) {
47
+ return await this.authenticatedGeneration(workerId, token) !== null;
48
+ }
49
+ /** Return the generation attested by this exact bearer, not a later request-body claim. */
50
+ async authenticatedGeneration(workerId, token) {
47
51
  if (!WORKER_ID.test(workerId) || !/^[a-f0-9]{64}$/.test(token))
48
- return false;
52
+ return null;
49
53
  const record = await this.readPersisted(workerId);
50
54
  if (!record || record.revoked_at)
51
- return false;
55
+ return null;
52
56
  const supplied = Buffer.from(sha256Bytes(token));
53
57
  const expected = Buffer.from(record.token_hash);
54
- return supplied.length === expected.length && timingSafeEqual(supplied, expected);
58
+ return supplied.length === expected.length && timingSafeEqual(supplied, expected) ? record.generation : null;
55
59
  }
56
60
  async heartbeat(workerId, value) {
57
61
  if (!WORKER_ID.test(workerId))
@@ -94,6 +98,22 @@ export class RemoteWorkerRegistry {
94
98
  if (generation !== current.generation)
95
99
  throw new HitchError("remote worker generation is stale", { code: "worker_generation_mismatch", exitCode: 12 });
96
100
  }
101
+ /** Serialize a short publication with credential rotation/revocation. Never hold this lock while receiving a body or running work. */
102
+ async withGeneration(workerId, generation, publish) {
103
+ if (!WORKER_ID.test(workerId) || !Number.isSafeInteger(generation) || generation < 1)
104
+ throw invalidWorker("remote worker publication identity is invalid");
105
+ return withFileLock(this.locks, workerId, async () => {
106
+ const current = await this.requirePersisted(workerId);
107
+ if (current.revoked_at)
108
+ throw new HitchError("remote worker identity is revoked", { code: "worker_revoked", exitCode: 11 });
109
+ if (current.generation !== generation)
110
+ throw new HitchError("remote worker generation is stale", { code: "worker_generation_mismatch", exitCode: 12 });
111
+ if (withLiveness(current, Date.now(), this.heartbeatTtlMs).worker.status !== "ready") {
112
+ throw new HitchError("remote worker is unavailable", { code: "worker_unavailable", exitCode: 10 });
113
+ }
114
+ return publish();
115
+ }, { timeoutCode: "worker_record_locked", timeoutExitCode: 12 });
116
+ }
97
117
  async revoke(workerId) {
98
118
  if (!WORKER_ID.test(workerId))
99
119
  throw invalidWorker("remote worker id is invalid");
@@ -310,9 +330,17 @@ function parseBackends(value) {
310
330
  return result;
311
331
  }
312
332
  function parseFeatures(value) {
313
- const features = exact(value, ["docker", "buildkit", "model_proxy", "isolated_same_task_attempts"], "remote worker features");
314
- if (Object.values(features).some((entry) => typeof entry !== "boolean"))
333
+ const booleans = ["docker", "buildkit", "model_proxy", "isolated_same_task_attempts"];
334
+ const bindings = ["training_external_binding", "managed_model_node"];
335
+ const features = exact(value, [...booleans, ...bindings, "physical_work", "execution_observation", "verifier_source", "verifier_only"], "remote worker features");
336
+ if (booleans.some(key => typeof features[key] !== "boolean")
337
+ || features.physical_work !== undefined && (features.physical_work !== "2" || !features.docker)
338
+ || features.execution_observation !== undefined && features.execution_observation !== "2"
339
+ || features.verifier_source !== undefined && (features.verifier_source !== "2" || !features.docker)
340
+ || features.verifier_only !== undefined && (features.verifier_only !== "2" || !features.docker || features.physical_work !== "2")
341
+ || bindings.some(key => features[key] !== undefined && (features[key] !== "2" || !features.docker || !features.model_proxy))) {
315
342
  throw invalidWorker("remote worker features are invalid");
343
+ }
316
344
  return features;
317
345
  }
318
346
  function withLiveness(record, now, ttl) {
@@ -1 +1 @@
1
- {"version":3,"file":"remote-workers.js","sourceRoot":"","sources":["../../../src/control-plane/remote-workers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-workers.js","sourceRoot":"","sources":["../../../src/control-plane/remote-workers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { readdir } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { EvalEventSink, assertRemoteRerunQuiescent, loadEvalResumeState, readExecutionLeases, readRemoteRerunCompletion, restoreRemoteRerunSelection } from "../evals/index.js";
4
+ import { HitchError, atomicWriteJSON, readJSON } from "../foundation/index.js";
5
+ import { parsePersistedSubmission } from "./rerun-submission.js";
6
+ import { orderedEvalCancelled } from "./ordered-eval-control.js";
7
+ export async function recoverPersistedReruns(input) {
8
+ for (const evalEntry of await readdir(input.rerunsRoot, { withFileTypes: true })) {
9
+ if (!evalEntry.isDirectory() || !/^eval_[a-f0-9]{32}$/.test(evalEntry.name))
10
+ continue;
11
+ const evalDirectory = path.join(input.rerunsRoot, evalEntry.name), reruns = path.join(evalDirectory, "reruns");
12
+ let entries;
13
+ try {
14
+ entries = await readdir(reruns, { withFileTypes: true });
15
+ }
16
+ catch (error) {
17
+ if (error.code === "ENOENT")
18
+ continue;
19
+ throw error;
20
+ }
21
+ for (const entry of entries) {
22
+ if (!entry.isDirectory() || !/^rerun_[a-f0-9]{32}$/.test(entry.name))
23
+ continue;
24
+ const directory = path.join(reruns, entry.name), evalId = evalEntry.name;
25
+ const state = await readJSON(path.join(directory, "state.json"), null);
26
+ const submission = await readJSON(path.join(directory, "submission.json"), null);
27
+ if (!state || !submission || !["queued", "running", "completed"].includes(String(state.status)))
28
+ continue;
29
+ const parsed = parsePersistedSubmission(submission, evalId, entry.name);
30
+ assertRerunStateIdentity(state, evalId, entry.name);
31
+ const identity = { evalId, rerunId: entry.name, rerunType: parsed.rerun_type, directory };
32
+ try {
33
+ const cancelled = !!await readJSON(path.join(directory, "cancellation.json"), null)
34
+ || await orderedEvalCancelled(input.root, evalId, entry.name);
35
+ if (cancelled)
36
+ await atomicWriteJSON(path.join(directory, "cancellation.json"), { schema_version: "1", eval_id: evalId, rerun_id: entry.name });
37
+ const pending = await readRemoteRerunCompletion(directory, evalId, entry.name);
38
+ if (pending && ["running", "completed"].includes(String(state.status))) {
39
+ if (!["candidate-restart", "verifier-only"].includes(parsed.rerun_type))
40
+ throw ambiguous();
41
+ const source = await input.loadSource(evalId, "collect-only");
42
+ if (source.execution.provider === input.localProvider)
43
+ throw ambiguous();
44
+ await assertRemoteRerunQuiescent(evalDirectory, source.execution.provider);
45
+ await input.complete(identity, pending.result, pending.source_result_digest);
46
+ continue;
47
+ }
48
+ if (state.status === "completed")
49
+ continue;
50
+ let source;
51
+ if (state.status === "running") {
52
+ if (!["candidate-restart", "verifier-only"].includes(parsed.rerun_type) || !input.remoteWork)
53
+ throw ambiguous();
54
+ source = await input.loadSource(evalId, "collect-only");
55
+ if (source.execution.provider === input.localProvider)
56
+ throw ambiguous();
57
+ const frozen = await loadEvalResumeState(evalDirectory);
58
+ await restoreRemoteRerunSelection({ directory, evalId, rerunId: entry.name, selector: parsed.selector,
59
+ tasks: [...new Set(frozen.executionPlan.slots.map(slot => slot.task_id))], attempts: source.request.attempts, progress: frozen.progress, rerunType: parsed.rerun_type,
60
+ ...(parsed.verifier_runtime_id ? { verifierRuntimeId: parsed.verifier_runtime_id } : {}) });
61
+ const sink = new EvalEventSink(directory, evalId, input.onEvent);
62
+ await sink.open();
63
+ const recovered = await input.remoteWork.recoverEvalLeases({ evalId, evalDirectory, leases: await readExecutionLeases(evalDirectory),
64
+ cancelRequested: cancelled, emit: event => sink.emit({ ...event, rerun_id: entry.name }) }).finally(() => sink.close());
65
+ if (recovered.status !== "resumable")
66
+ throw new HitchError(recovered.message ?? "remote lease recovery is ambiguous", { code: recovered.code ?? "execution_state_ambiguous", exitCode: 12 });
67
+ await assertRemoteRerunQuiescent(evalDirectory, source.execution.provider);
68
+ }
69
+ else if (!cancelled)
70
+ source = await input.loadSource(evalId, parsed.rerun_type);
71
+ if (cancelled) {
72
+ await atomicWriteJSON(path.join(directory, "state.json"), { ...state, status: "cancelled", updated_at: new Date().toISOString(), completed_at: new Date().toISOString() });
73
+ continue;
74
+ }
75
+ await input.enqueue(identity, parsed, source, state.status === "running");
76
+ }
77
+ catch (error) {
78
+ await input.fail(identity, error instanceof HitchError ? error.code : "execution_state_ambiguous", state.status === "running" ? "interrupted rerun could not reconcile its frozen selection or execution leases" : "queued rerun could not restore its source or provider");
79
+ }
80
+ }
81
+ }
82
+ }
83
+ export function assertRerunStateIdentity(state, evalId, rerunId) {
84
+ if (state.schema_version !== "1" || state.eval_id !== evalId || state.rerun_id !== rerunId
85
+ || typeof state.status !== "string" || !["queued", "running", "completed", "failed", "cancelled"].includes(state.status))
86
+ throw new TypeError("eval rerun state identity is invalid");
87
+ }
88
+ function ambiguous() { return new HitchError("daemon restarted while rerun execution state was ambiguous", { code: "execution_state_ambiguous", exitCode: 12 }); }
89
+ //# sourceMappingURL=rerun-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rerun-recovery.js","sourceRoot":"","sources":["../../../src/control-plane/rerun-recovery.ts"],"names":[],"mappings":"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"}