agent-hitch 0.2.9 → 0.2.10

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 (410) hide show
  1. package/README.md +206 -137
  2. package/README.zh-CN.md +193 -119
  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 +14 -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/worker.js +30 -2
  72. package/dist/src/cli/commands/worker.js.map +1 -1
  73. package/dist/src/cli/main.js +8 -0
  74. package/dist/src/cli/main.js.map +1 -1
  75. package/dist/src/cli/output.js +24 -2
  76. package/dist/src/cli/output.js.map +1 -1
  77. package/dist/src/control-plane/eval-records.js +2 -0
  78. package/dist/src/control-plane/eval-records.js.map +1 -1
  79. package/dist/src/control-plane/eval-recovery.js +7 -1
  80. package/dist/src/control-plane/eval-recovery.js.map +1 -1
  81. package/dist/src/control-plane/eval-scheduler.js +24 -50
  82. package/dist/src/control-plane/eval-scheduler.js.map +1 -1
  83. package/dist/src/control-plane/eval-submission-persist.js +30 -0
  84. package/dist/src/control-plane/eval-submission-persist.js.map +1 -0
  85. package/dist/src/control-plane/execution-observation-contract.js +60 -0
  86. package/dist/src/control-plane/execution-observation-contract.js.map +1 -0
  87. package/dist/src/control-plane/index.js +10 -0
  88. package/dist/src/control-plane/index.js.map +1 -1
  89. package/dist/src/control-plane/inference-manager.js +357 -0
  90. package/dist/src/control-plane/inference-manager.js.map +1 -0
  91. package/dist/src/control-plane/managed-gateway-receipt.js +26 -0
  92. package/dist/src/control-plane/managed-gateway-receipt.js.map +1 -0
  93. package/dist/src/control-plane/managed-service-recovery.js +158 -0
  94. package/dist/src/control-plane/managed-service-recovery.js.map +1 -0
  95. package/dist/src/control-plane/model-capture-planning.js +15 -1
  96. package/dist/src/control-plane/model-capture-planning.js.map +1 -1
  97. package/dist/src/control-plane/ordered-eval-control.js +221 -0
  98. package/dist/src/control-plane/ordered-eval-control.js.map +1 -0
  99. package/dist/src/control-plane/remote-backend-result.js +18 -0
  100. package/dist/src/control-plane/remote-backend-result.js.map +1 -0
  101. package/dist/src/control-plane/remote-execution-lease.js +15 -0
  102. package/dist/src/control-plane/remote-execution-lease.js.map +1 -0
  103. package/dist/src/control-plane/remote-execution-observation.js +108 -0
  104. package/dist/src/control-plane/remote-execution-observation.js.map +1 -0
  105. package/dist/src/control-plane/remote-model-routes.js +107 -0
  106. package/dist/src/control-plane/remote-model-routes.js.map +1 -0
  107. package/dist/src/control-plane/remote-observation-reporter.js +37 -0
  108. package/dist/src/control-plane/remote-observation-reporter.js.map +1 -0
  109. package/dist/src/control-plane/remote-offer-contract.js +48 -0
  110. package/dist/src/control-plane/remote-offer-contract.js.map +1 -0
  111. package/dist/src/control-plane/remote-rerun-journal.js +61 -0
  112. package/dist/src/control-plane/remote-rerun-journal.js.map +1 -0
  113. package/dist/src/control-plane/remote-result-transport.js +55 -9
  114. package/dist/src/control-plane/remote-result-transport.js.map +1 -1
  115. package/dist/src/control-plane/remote-verifier-import.js +52 -0
  116. package/dist/src/control-plane/remote-verifier-import.js.map +1 -0
  117. package/dist/src/control-plane/remote-verifier-result.js +61 -0
  118. package/dist/src/control-plane/remote-verifier-result.js.map +1 -0
  119. package/dist/src/control-plane/remote-verifier-source-transport.js +68 -0
  120. package/dist/src/control-plane/remote-verifier-source-transport.js.map +1 -0
  121. package/dist/src/control-plane/remote-work-coordinator.js +103 -47
  122. package/dist/src/control-plane/remote-work-coordinator.js.map +1 -1
  123. package/dist/src/control-plane/remote-work-inputs.js +26 -5
  124. package/dist/src/control-plane/remote-work-inputs.js.map +1 -1
  125. package/dist/src/control-plane/remote-work-recovery.js +123 -34
  126. package/dist/src/control-plane/remote-work-recovery.js.map +1 -1
  127. package/dist/src/control-plane/remote-worker-artifacts.js +10 -7
  128. package/dist/src/control-plane/remote-worker-artifacts.js.map +1 -1
  129. package/dist/src/control-plane/remote-worker-cleanup.js +104 -0
  130. package/dist/src/control-plane/remote-worker-cleanup.js.map +1 -0
  131. package/dist/src/control-plane/remote-worker-client.js +156 -14
  132. package/dist/src/control-plane/remote-worker-client.js.map +1 -1
  133. package/dist/src/control-plane/remote-worker-codecs.js +160 -0
  134. package/dist/src/control-plane/remote-worker-codecs.js.map +1 -0
  135. package/dist/src/control-plane/remote-worker-generation-recovery.js +67 -0
  136. package/dist/src/control-plane/remote-worker-generation-recovery.js.map +1 -0
  137. package/dist/src/control-plane/remote-worker-ownership.js +51 -0
  138. package/dist/src/control-plane/remote-worker-ownership.js.map +1 -0
  139. package/dist/src/control-plane/remote-worker-protocol.js +85 -119
  140. package/dist/src/control-plane/remote-worker-protocol.js.map +1 -1
  141. package/dist/src/control-plane/remote-worker-runner.js +95 -18
  142. package/dist/src/control-plane/remote-worker-runner.js.map +1 -1
  143. package/dist/src/control-plane/remote-workers.js +33 -5
  144. package/dist/src/control-plane/remote-workers.js.map +1 -1
  145. package/dist/src/control-plane/rerun-recovery.js +89 -0
  146. package/dist/src/control-plane/rerun-recovery.js.map +1 -0
  147. package/dist/src/control-plane/rerun-scheduler.js +70 -96
  148. package/dist/src/control-plane/rerun-scheduler.js.map +1 -1
  149. package/dist/src/control-plane/rerun-source.js +57 -0
  150. package/dist/src/control-plane/rerun-source.js.map +1 -0
  151. package/dist/src/control-plane/worker-model-relay.js +76 -0
  152. package/dist/src/control-plane/worker-model-relay.js.map +1 -0
  153. package/dist/src/controller-runtime/hash.js +3 -0
  154. package/dist/src/controller-runtime/hash.js.map +1 -1
  155. package/dist/src/controller-runtime/index.js +2 -0
  156. package/dist/src/controller-runtime/index.js.map +1 -1
  157. package/dist/src/controller-runtime/observation.js +29 -0
  158. package/dist/src/controller-runtime/observation.js.map +1 -0
  159. package/dist/src/controller-runtime/resident.js +22 -0
  160. package/dist/src/controller-runtime/resident.js.map +1 -0
  161. package/dist/src/daemon/client.js +34 -1
  162. package/dist/src/daemon/client.js.map +1 -1
  163. package/dist/src/daemon/execution-observation.js +38 -0
  164. package/dist/src/daemon/execution-observation.js.map +1 -0
  165. package/dist/src/daemon/http.js +57 -0
  166. package/dist/src/daemon/http.js.map +1 -0
  167. package/dist/src/daemon/inference-prepare.js +47 -0
  168. package/dist/src/daemon/inference-prepare.js.map +1 -0
  169. package/dist/src/daemon/scheduler.js +4 -1
  170. package/dist/src/daemon/scheduler.js.map +1 -1
  171. package/dist/src/daemon/server.js +80 -82
  172. package/dist/src/daemon/server.js.map +1 -1
  173. package/dist/src/daemon/worker-observation.js +34 -0
  174. package/dist/src/daemon/worker-observation.js.map +1 -0
  175. package/dist/src/daemon/worker-ownership.js +71 -0
  176. package/dist/src/daemon/worker-ownership.js.map +1 -0
  177. package/dist/src/daemon/worker-routes.js +83 -15
  178. package/dist/src/daemon/worker-routes.js.map +1 -1
  179. package/dist/src/domain/execution-observation.js +2 -0
  180. package/dist/src/domain/execution-observation.js.map +1 -0
  181. package/dist/src/domain/index.js +1 -0
  182. package/dist/src/domain/index.js.map +1 -1
  183. package/dist/src/domain/inference.js +2 -0
  184. package/dist/src/domain/inference.js.map +1 -0
  185. package/dist/src/domain/runs.js.map +1 -1
  186. package/dist/src/domain/training.js +2 -0
  187. package/dist/src/domain/training.js.map +1 -0
  188. package/dist/src/domain/validation.js +11 -0
  189. package/dist/src/domain/validation.js.map +1 -1
  190. package/dist/src/domain/verifier-source.js +2 -0
  191. package/dist/src/domain/verifier-source.js.map +1 -0
  192. package/dist/src/domain/worker-recovery.js +2 -0
  193. package/dist/src/domain/worker-recovery.js.map +1 -0
  194. package/dist/src/evals/eval-logical-plan.js +8 -1
  195. package/dist/src/evals/eval-logical-plan.js.map +1 -1
  196. package/dist/src/evals/execution-leases.js +15 -2
  197. package/dist/src/evals/execution-leases.js.map +1 -1
  198. package/dist/src/evals/execution-plan.js +11 -1
  199. package/dist/src/evals/execution-plan.js.map +1 -1
  200. package/dist/src/evals/harbor-bridge-error.js +8 -0
  201. package/dist/src/evals/harbor-bridge-error.js.map +1 -1
  202. package/dist/src/evals/index.js +19 -0
  203. package/dist/src/evals/index.js.map +1 -1
  204. package/dist/src/evals/model-capture-plan.js +12 -0
  205. package/dist/src/evals/model-capture-plan.js.map +1 -1
  206. package/dist/src/evals/model-capture-runtime.js +25 -0
  207. package/dist/src/evals/model-capture-runtime.js.map +1 -1
  208. package/dist/src/evals/physical-work-plan.js +57 -0
  209. package/dist/src/evals/physical-work-plan.js.map +1 -0
  210. package/dist/src/evals/preparation-rerun.js +6 -0
  211. package/dist/src/evals/preparation-rerun.js.map +1 -1
  212. package/dist/src/evals/recovery.js +8 -1
  213. package/dist/src/evals/recovery.js.map +1 -1
  214. package/dist/src/evals/regrade-evidence.js +4 -4
  215. package/dist/src/evals/regrade-evidence.js.map +1 -1
  216. package/dist/src/evals/remote-execution-ownership.js +50 -0
  217. package/dist/src/evals/remote-execution-ownership.js.map +1 -0
  218. package/dist/src/evals/remote-infrastructure-retry.js +2 -0
  219. package/dist/src/evals/remote-infrastructure-retry.js.map +1 -1
  220. package/dist/src/evals/remote-lease-release.js +58 -0
  221. package/dist/src/evals/remote-lease-release.js.map +1 -0
  222. package/dist/src/evals/remote-rerun-execution.js +85 -0
  223. package/dist/src/evals/remote-rerun-execution.js.map +1 -0
  224. package/dist/src/evals/remote-trial.js +6 -0
  225. package/dist/src/evals/remote-trial.js.map +1 -0
  226. package/dist/src/evals/remote-verifier-assessment.js +85 -0
  227. package/dist/src/evals/remote-verifier-assessment.js.map +1 -0
  228. package/dist/src/evals/remote-verifier-contract.js +43 -0
  229. package/dist/src/evals/remote-verifier-contract.js.map +1 -0
  230. package/dist/src/evals/remote-verifier-execution.js +105 -0
  231. package/dist/src/evals/remote-verifier-execution.js.map +1 -0
  232. package/dist/src/evals/remote-verifier-journal.js +21 -0
  233. package/dist/src/evals/remote-verifier-journal.js.map +1 -0
  234. package/dist/src/evals/remote-verifier-outcome.js +51 -0
  235. package/dist/src/evals/remote-verifier-outcome.js.map +1 -0
  236. package/dist/src/evals/remote-verifier-rerun.js +134 -0
  237. package/dist/src/evals/remote-verifier-rerun.js.map +1 -0
  238. package/dist/src/evals/remote-verifier-selection.js +61 -0
  239. package/dist/src/evals/remote-verifier-selection.js.map +1 -0
  240. package/dist/src/evals/remote-verifier-source.js +33 -0
  241. package/dist/src/evals/remote-verifier-source.js.map +1 -0
  242. package/dist/src/evals/remote-worker-cleanup.js +46 -0
  243. package/dist/src/evals/remote-worker-cleanup.js.map +1 -0
  244. package/dist/src/evals/request.js +58 -1
  245. package/dist/src/evals/request.js.map +1 -1
  246. package/dist/src/evals/rerun-completion.js +39 -0
  247. package/dist/src/evals/rerun-completion.js.map +1 -0
  248. package/dist/src/evals/rerun-resume.js +70 -0
  249. package/dist/src/evals/rerun-resume.js.map +1 -0
  250. package/dist/src/evals/rerun-state.js +25 -0
  251. package/dist/src/evals/rerun-state.js.map +1 -0
  252. package/dist/src/evals/rerun-types.js.map +1 -1
  253. package/dist/src/evals/rerun.js +90 -46
  254. package/dist/src/evals/rerun.js.map +1 -1
  255. package/dist/src/evals/service.js +59 -5
  256. package/dist/src/evals/service.js.map +1 -1
  257. package/dist/src/evals/verifier-only-rerun.js +2 -16
  258. package/dist/src/evals/verifier-only-rerun.js.map +1 -1
  259. package/dist/src/evals/verifier-rerun-result.js +24 -0
  260. package/dist/src/evals/verifier-rerun-result.js.map +1 -0
  261. package/dist/src/evals/verifier-source-import.js +48 -0
  262. package/dist/src/evals/verifier-source-import.js.map +1 -0
  263. package/dist/src/evals/verifier-source.js +139 -0
  264. package/dist/src/evals/verifier-source.js.map +1 -0
  265. package/dist/src/foundation/base64.js +19 -0
  266. package/dist/src/foundation/base64.js.map +1 -0
  267. package/dist/src/foundation/config.js +10 -0
  268. package/dist/src/foundation/config.js.map +1 -1
  269. package/dist/src/foundation/credential-redaction.js +22 -9
  270. package/dist/src/foundation/credential-redaction.js.map +1 -1
  271. package/dist/src/foundation/index.js +1 -0
  272. package/dist/src/foundation/index.js.map +1 -1
  273. package/dist/src/foundation/process-identity.js +13 -9
  274. package/dist/src/foundation/process-identity.js.map +1 -1
  275. package/dist/src/inference/daemon-capacity.js +41 -0
  276. package/dist/src/inference/daemon-capacity.js.map +1 -0
  277. package/dist/src/inference/device-reservation.js +58 -0
  278. package/dist/src/inference/device-reservation.js.map +1 -0
  279. package/dist/src/inference/doctor.js +95 -0
  280. package/dist/src/inference/doctor.js.map +1 -0
  281. package/dist/src/inference/generation-recovery.js +83 -0
  282. package/dist/src/inference/generation-recovery.js.map +1 -0
  283. package/dist/src/inference/index.js +24 -0
  284. package/dist/src/inference/index.js.map +1 -0
  285. package/dist/src/inference/lock.js +331 -0
  286. package/dist/src/inference/lock.js.map +1 -0
  287. package/dist/src/inference/managed-launcher.js +35 -0
  288. package/dist/src/inference/managed-launcher.js.map +1 -0
  289. package/dist/src/inference/manifest.js +262 -0
  290. package/dist/src/inference/manifest.js.map +1 -0
  291. package/dist/src/inference/materialize.js +66 -0
  292. package/dist/src/inference/materialize.js.map +1 -0
  293. package/dist/src/inference/model-location.js +34 -0
  294. package/dist/src/inference/model-location.js.map +1 -0
  295. package/dist/src/inference/model-store.js +439 -0
  296. package/dist/src/inference/model-store.js.map +1 -0
  297. package/dist/src/inference/node-client.js +167 -0
  298. package/dist/src/inference/node-client.js.map +1 -0
  299. package/dist/src/inference/node-registry.js +79 -0
  300. package/dist/src/inference/node-registry.js.map +1 -0
  301. package/dist/src/inference/observation.js +79 -0
  302. package/dist/src/inference/observation.js.map +1 -0
  303. package/dist/src/inference/preflight.js +132 -0
  304. package/dist/src/inference/preflight.js.map +1 -0
  305. package/dist/src/inference/process-sglang.js +169 -0
  306. package/dist/src/inference/process-sglang.js.map +1 -0
  307. package/dist/src/inference/protocol-probe.js +29 -0
  308. package/dist/src/inference/protocol-probe.js.map +1 -0
  309. package/dist/src/inference/remote-model-store.js +24 -0
  310. package/dist/src/inference/remote-model-store.js.map +1 -0
  311. package/dist/src/inference/runtime-catalog.js +41 -0
  312. package/dist/src/inference/runtime-catalog.js.map +1 -0
  313. package/dist/src/inference/runtime-store.js +93 -0
  314. package/dist/src/inference/runtime-store.js.map +1 -0
  315. package/dist/src/inference/service-attachment.js +46 -0
  316. package/dist/src/inference/service-attachment.js.map +1 -0
  317. package/dist/src/inference/service-inspection.js +38 -0
  318. package/dist/src/inference/service-inspection.js.map +1 -0
  319. package/dist/src/inference/sglang.js +279 -0
  320. package/dist/src/inference/sglang.js.map +1 -0
  321. package/dist/src/inference/supervisor.js +460 -0
  322. package/dist/src/inference/supervisor.js.map +1 -0
  323. package/dist/src/model-access/environment.js +28 -0
  324. package/dist/src/model-access/environment.js.map +1 -0
  325. package/dist/src/model-access/index.js +4 -0
  326. package/dist/src/model-access/index.js.map +1 -1
  327. package/dist/src/model-access/local-gateway-request.js +139 -0
  328. package/dist/src/model-access/local-gateway-request.js.map +1 -0
  329. package/dist/src/model-access/local-gateway.js +323 -0
  330. package/dist/src/model-access/local-gateway.js.map +1 -0
  331. package/dist/src/model-access/proxy.js +90 -5
  332. package/dist/src/model-access/proxy.js.map +1 -1
  333. package/dist/src/model-access/remote-model.js +58 -0
  334. package/dist/src/model-access/remote-model.js.map +1 -0
  335. package/dist/src/model-access/training.js +115 -0
  336. package/dist/src/model-access/training.js.map +1 -0
  337. package/dist/src/runs/adapter-process.js +2 -2
  338. package/dist/src/runs/adapter-process.js.map +1 -1
  339. package/dist/src/runs/executor-types.js +2 -0
  340. package/dist/src/runs/executor-types.js.map +1 -0
  341. package/dist/src/runs/executor.js +54 -34
  342. package/dist/src/runs/executor.js.map +1 -1
  343. package/dist/src/runs/index.js +1 -0
  344. package/dist/src/runs/index.js.map +1 -1
  345. package/dist/src/runs/local-inference-environment.js +59 -0
  346. package/dist/src/runs/local-inference-environment.js.map +1 -0
  347. package/dist/src/runs/local-inference-run.js +53 -0
  348. package/dist/src/runs/local-inference-run.js.map +1 -0
  349. package/dist/src/runs/outcome.js +22 -0
  350. package/dist/src/runs/outcome.js.map +1 -1
  351. package/dist/src/runs/records.js +9 -0
  352. package/dist/src/runs/records.js.map +1 -1
  353. package/dist/src/runs/request.js +58 -3
  354. package/dist/src/runs/request.js.map +1 -1
  355. package/dist/src/runs/training-evidence.js +22 -0
  356. package/dist/src/runs/training-evidence.js.map +1 -0
  357. package/dist/src/runs/training-runtime.js +20 -0
  358. package/dist/src/runs/training-runtime.js.map +1 -0
  359. package/dist/src/workers/execution-observation.js +32 -0
  360. package/dist/src/workers/execution-observation.js.map +1 -0
  361. package/dist/src/workers/index.js +2 -0
  362. package/dist/src/workers/index.js.map +1 -1
  363. package/dist/src/workers/remote-harbor-ownership.js +266 -0
  364. package/dist/src/workers/remote-harbor-ownership.js.map +1 -0
  365. package/dist/src/workers/remote-harbor-verifier.js +76 -0
  366. package/dist/src/workers/remote-harbor-verifier.js.map +1 -0
  367. package/dist/src/workers/remote-harbor-work-spec.js +66 -10
  368. package/dist/src/workers/remote-harbor-work-spec.js.map +1 -1
  369. package/dist/src/workers/remote-harbor-worker.js +56 -49
  370. package/dist/src/workers/remote-harbor-worker.js.map +1 -1
  371. package/dist/src/workers/remote-worker-host.js +33 -0
  372. package/dist/src/workers/remote-worker-host.js.map +1 -0
  373. package/docs/local-model-inference-spec.zh-CN.md +666 -0
  374. package/docs/schemas/controller-runtime-observation.schema.json +21 -0
  375. package/docs/schemas/eval-execution-plan.schema.json +1 -0
  376. package/docs/schemas/eval-request.schema.json +3 -1
  377. package/docs/schemas/execution-lease.schema.json +95 -1
  378. package/docs/schemas/execution-provider-status.schema.json +162 -28
  379. package/docs/schemas/inference-execution-evidence.schema.json +487 -0
  380. package/docs/schemas/inference-lock.schema.json +487 -0
  381. package/docs/schemas/inference-runtime-manifest.schema.json +156 -0
  382. package/docs/schemas/inference-service-record.schema.json +227 -0
  383. package/docs/schemas/local-inference-selection.schema.json +98 -0
  384. package/docs/schemas/local-model-manifest.schema.json +43 -0
  385. package/docs/schemas/model-node-binding.schema.json +34 -0
  386. package/docs/schemas/model-node-generation-release.schema.json +46 -0
  387. package/docs/schemas/ordered-eval-control.schema.json +39 -0
  388. package/docs/schemas/remote-execution-lease-grant.schema.json +45 -0
  389. package/docs/schemas/remote-harbor-work-spec.schema.json +325 -0
  390. package/docs/schemas/remote-model-binding.schema.json +21 -0
  391. package/docs/schemas/remote-physical-execution.schema.json +108 -0
  392. package/docs/schemas/remote-result-envelope.schema.json +9 -3
  393. package/docs/schemas/remote-tree-envelope.schema.json +17 -3
  394. package/docs/schemas/remote-verifier-result.schema.json +203 -0
  395. package/docs/schemas/remote-verifier-source.schema.json +52 -0
  396. package/docs/schemas/remote-verifier-work.schema.json +125 -0
  397. package/docs/schemas/remote-work-offer.schema.json +170 -34
  398. package/docs/schemas/remote-worker-execution-admission.schema.json +214 -0
  399. package/docs/schemas/remote-worker-generation-cleanup.schema.json +199 -0
  400. package/docs/schemas/remote-worker-registration.schema.json +226 -25
  401. package/docs/schemas/run-manifest.schema.json +211 -44
  402. package/docs/schemas/run-request.schema.json +2 -1
  403. package/docs/schemas/training-external-binding.schema.json +26 -0
  404. package/integrations/harbor/hitch_harbor_agent.py +241 -13
  405. package/integrations/harbor/hitch_harbor_environment.py +22 -1
  406. package/integrations/harbor/hitch_host_credentials.py +354 -0
  407. package/integrations/harbor/hitch_private_exec.py +150 -0
  408. package/integrations/model-call/cli.js +13 -5
  409. package/integrations/training-tool/cli.js +72 -0
  410. package/package.json +8 -2
@@ -0,0 +1,227 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/inference-service-record.schema.json",
4
+ "title": "Hitch inference service record v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "service_id",
10
+ "inference_id",
11
+ "isolation_key",
12
+ "state",
13
+ "epoch",
14
+ "owner_id",
15
+ "lease_owner_ids",
16
+ "backend",
17
+ "started_at",
18
+ "updated_at"
19
+ ],
20
+ "properties": {
21
+ "schema_version": {
22
+ "const": "1"
23
+ },
24
+ "service_id": {
25
+ "type": "string",
26
+ "pattern": "^inference_[a-f0-9]{32}$"
27
+ },
28
+ "inference_id": {
29
+ "$ref": "#/$defs/sha256"
30
+ },
31
+ "isolation_key": {
32
+ "$ref": "#/$defs/sha256"
33
+ },
34
+ "state": {
35
+ "enum": [
36
+ "starting",
37
+ "ready",
38
+ "draining",
39
+ "stopped",
40
+ "failed"
41
+ ]
42
+ },
43
+ "epoch": {
44
+ "type": "integer",
45
+ "minimum": 1
46
+ },
47
+ "owner_id": {
48
+ "type": "string",
49
+ "minLength": 1
50
+ },
51
+ "lease_owner_ids": {
52
+ "type": "array",
53
+ "uniqueItems": true,
54
+ "items": {
55
+ "type": "string",
56
+ "minLength": 1
57
+ }
58
+ },
59
+ "backend": {
60
+ "enum": [
61
+ "cpu",
62
+ "cuda",
63
+ "metal"
64
+ ]
65
+ },
66
+ "container_id": {
67
+ "type": "string",
68
+ "pattern": "^[a-f0-9]{12,64}$"
69
+ },
70
+ "pid": {
71
+ "type": "integer",
72
+ "minimum": 1
73
+ },
74
+ "base_url": {
75
+ "type": "string",
76
+ "pattern": "^http://127\\.0\\.0\\.1:[0-9]+/?$"
77
+ },
78
+ "started_at": {
79
+ "type": "string",
80
+ "format": "date-time"
81
+ },
82
+ "updated_at": {
83
+ "type": "string",
84
+ "format": "date-time"
85
+ },
86
+ "error": {
87
+ "type": "object",
88
+ "additionalProperties": false,
89
+ "required": [
90
+ "code",
91
+ "message"
92
+ ],
93
+ "properties": {
94
+ "code": {
95
+ "type": "string",
96
+ "minLength": 1
97
+ },
98
+ "message": {
99
+ "type": "string",
100
+ "minLength": 1
101
+ }
102
+ }
103
+ },
104
+ "service_handle": {
105
+ "oneOf": [
106
+ {
107
+ "type": "object",
108
+ "additionalProperties": false,
109
+ "required": [
110
+ "schema_version",
111
+ "kind",
112
+ "container_id"
113
+ ],
114
+ "properties": {
115
+ "schema_version": {
116
+ "const": "2"
117
+ },
118
+ "kind": {
119
+ "const": "docker"
120
+ },
121
+ "container_id": {
122
+ "type": "string",
123
+ "pattern": "^[a-f0-9]{12,64}$"
124
+ }
125
+ }
126
+ },
127
+ {
128
+ "type": "object",
129
+ "additionalProperties": false,
130
+ "required": [
131
+ "schema_version",
132
+ "kind",
133
+ "node_id",
134
+ "generation",
135
+ "service_id",
136
+ "process"
137
+ ],
138
+ "properties": {
139
+ "schema_version": {
140
+ "const": "2"
141
+ },
142
+ "kind": {
143
+ "const": "process"
144
+ },
145
+ "node_id": {
146
+ "type": "string",
147
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$"
148
+ },
149
+ "generation": {
150
+ "type": "string",
151
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$"
152
+ },
153
+ "service_id": {
154
+ "type": "string",
155
+ "pattern": "^inference_[a-f0-9]{32}$"
156
+ },
157
+ "process": {
158
+ "type": "object",
159
+ "additionalProperties": false,
160
+ "required": [
161
+ "pid",
162
+ "created_at"
163
+ ],
164
+ "properties": {
165
+ "pid": {
166
+ "type": "integer",
167
+ "minimum": 1,
168
+ "maximum": 9007199254740991
169
+ },
170
+ "created_at": {
171
+ "type": "number",
172
+ "exclusiveMinimum": 0
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
178
+ ]
179
+ },
180
+ "model_node": {
181
+ "$ref": "#/$defs/modelNodeBinding"
182
+ }
183
+ },
184
+ "$defs": {
185
+ "sha256": {
186
+ "type": "string",
187
+ "pattern": "^sha256:[a-f0-9]{64}$"
188
+ },
189
+ "modelNodeBinding": {
190
+ "$ref": "model-node-binding.schema.json"
191
+ }
192
+ },
193
+ "allOf": [
194
+ {
195
+ "if": {
196
+ "required": [
197
+ "service_handle"
198
+ ],
199
+ "properties": {
200
+ "service_handle": {
201
+ "properties": {
202
+ "kind": {
203
+ "const": "process"
204
+ }
205
+ }
206
+ }
207
+ }
208
+ },
209
+ "then": {
210
+ "not": {
211
+ "anyOf": [
212
+ {
213
+ "required": [
214
+ "container_id"
215
+ ]
216
+ },
217
+ {
218
+ "required": [
219
+ "pid"
220
+ ]
221
+ }
222
+ ]
223
+ }
224
+ }
225
+ }
226
+ ]
227
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/local-inference-selection.schema.json",
4
+ "title": "Hitch local inference selection",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "properties": {
8
+ "model": {
9
+ "type": "string",
10
+ "pattern": "^local/(?:[a-z0-9][a-z0-9._-]{0,63}|sha256:[a-f0-9]{64})$"
11
+ },
12
+ "device": {
13
+ "enum": [
14
+ "auto",
15
+ "cpu",
16
+ "cuda",
17
+ "metal"
18
+ ],
19
+ "default": "auto"
20
+ },
21
+ "profile": {
22
+ "enum": [
23
+ "baseline",
24
+ "throughput"
25
+ ],
26
+ "default": "baseline"
27
+ },
28
+ "offline": {
29
+ "type": "boolean",
30
+ "default": false
31
+ },
32
+ "inference_id": {
33
+ "$ref": "#/$defs/sha256"
34
+ },
35
+ "model_node": {
36
+ "$ref": "#/$defs/modelNodeBinding"
37
+ }
38
+ },
39
+ "allOf": [
40
+ {
41
+ "if": {
42
+ "required": [
43
+ "inference_id"
44
+ ],
45
+ "not": {
46
+ "required": [
47
+ "model_node"
48
+ ]
49
+ }
50
+ },
51
+ "then": {
52
+ "not": {
53
+ "anyOf": [
54
+ {
55
+ "required": [
56
+ "device"
57
+ ]
58
+ },
59
+ {
60
+ "required": [
61
+ "profile"
62
+ ]
63
+ }
64
+ ]
65
+ }
66
+ }
67
+ },
68
+ {
69
+ "if": {
70
+ "required": [
71
+ "model_node"
72
+ ]
73
+ },
74
+ "then": {
75
+ "required": [
76
+ "inference_id"
77
+ ],
78
+ "properties": {
79
+ "device": {
80
+ "const": "auto"
81
+ },
82
+ "profile": {
83
+ "const": "baseline"
84
+ }
85
+ }
86
+ }
87
+ }
88
+ ],
89
+ "$defs": {
90
+ "sha256": {
91
+ "type": "string",
92
+ "pattern": "^sha256:[a-f0-9]{64}$"
93
+ },
94
+ "modelNodeBinding": {
95
+ "$ref": "model-node-binding.schema.json"
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/local-model-manifest.schema.json",
4
+ "title": "Hitch local model manifest v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "model_id", "format", "files", "architecture", "model_type", "dtype", "quantization", "context_tokens", "tokenizer_digest", "template_digest", "source", "created_at"],
8
+ "properties": {
9
+ "schema_version": { "const": "1" },
10
+ "model_id": { "$ref": "#/$defs/sha256" },
11
+ "format": { "const": "hf-safetensors" },
12
+ "files": {
13
+ "type": "array", "minItems": 3,
14
+ "items": {
15
+ "type": "object", "additionalProperties": false,
16
+ "required": ["path", "size", "sha256"],
17
+ "properties": {
18
+ "path": { "type": "string", "minLength": 1, "pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$)).+$" },
19
+ "size": { "type": "integer", "minimum": 0 },
20
+ "sha256": { "$ref": "#/$defs/sha256" }
21
+ }
22
+ }
23
+ },
24
+ "architecture": { "type": "string", "minLength": 1 },
25
+ "model_type": { "type": "string", "minLength": 1 },
26
+ "dtype": { "type": "string", "minLength": 1 },
27
+ "quantization": { "type": ["string", "null"] },
28
+ "context_tokens": { "type": ["integer", "null"], "minimum": 1 },
29
+ "tokenizer_digest": { "$ref": "#/$defs/sha256" },
30
+ "template_digest": { "oneOf": [{ "$ref": "#/$defs/sha256" }, { "type": "null" }] },
31
+ "source": {
32
+ "type": "object", "additionalProperties": false,
33
+ "required": ["kind", "label", "license"],
34
+ "properties": {
35
+ "kind": { "const": "local-directory" },
36
+ "label": { "type": "string", "minLength": 1 },
37
+ "license": { "type": ["string", "null"] }
38
+ }
39
+ },
40
+ "created_at": { "type": "string", "format": "date-time" }
41
+ },
42
+ "$defs": { "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" } }
43
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/model-node-binding.schema.json",
4
+ "title": "Frozen Hitch model-node binding v2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "node_id",
10
+ "generation",
11
+ "runtime_digest",
12
+ "launcher"
13
+ ],
14
+ "properties": {
15
+ "schema_version": {
16
+ "const": "2"
17
+ },
18
+ "node_id": {
19
+ "type": "string",
20
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$"
21
+ },
22
+ "generation": {
23
+ "type": "string",
24
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$"
25
+ },
26
+ "runtime_digest": {
27
+ "type": "string",
28
+ "pattern": "^sha256:[a-f0-9]{64}$"
29
+ },
30
+ "launcher": {
31
+ "const": "process"
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/model-node-generation-release.schema.json",
4
+ "title": "Confirmed release of a previous model-node generation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "service_digest", "model_node", "receipt_digest", "receipt"],
8
+ "properties": {
9
+ "schema_version": { "const": "2" },
10
+ "service_digest": { "$ref": "#/$defs/sha" },
11
+ "model_node": { "$ref": "model-node-binding.schema.json" },
12
+ "receipt_digest": { "$ref": "#/$defs/sha" },
13
+ "receipt": {
14
+ "type": "object",
15
+ "additionalProperties": false,
16
+ "required": ["schemaVersion", "kind", "serviceId", "ownerId", "inferenceId", "previousNode", "node", "sourceIdentityDigest", "handle", "admissionOnly", "state", "resourcesReleased", "gpuSeconds", "devices", "previousBootDigest", "currentBootDigest"],
17
+ "properties": {
18
+ "schemaVersion": { "const": 2 },
19
+ "kind": { "const": "inference-generation-release" },
20
+ "serviceId": { "type": "string", "pattern": "^inference_[a-f0-9]{32}$" },
21
+ "ownerId": { "type": "string", "minLength": 1 },
22
+ "inferenceId": { "$ref": "#/$defs/sha" },
23
+ "previousNode": { "$ref": "#/$defs/node" },
24
+ "node": { "$ref": "#/$defs/node" },
25
+ "sourceIdentityDigest": { "$ref": "#/$defs/sha" },
26
+ "handle": { "oneOf": [{ "type": "null" }, { "$ref": "inference-service-record.schema.json#/properties/service_handle/oneOf/1" }] },
27
+ "admissionOnly": { "type": "boolean" },
28
+ "state": { "const": "stopped" },
29
+ "resourcesReleased": { "const": true },
30
+ "gpuSeconds": { "type": "number", "minimum": 0 },
31
+ "devices": { "type": "array", "uniqueItems": true, "items": { "type": "string", "pattern": "^GPU-[a-fA-F0-9-]+$" } },
32
+ "previousBootDigest": { "$ref": "#/$defs/sha" },
33
+ "currentBootDigest": { "$ref": "#/$defs/sha" }
34
+ }
35
+ }
36
+ },
37
+ "$defs": {
38
+ "sha": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
39
+ "node": { "type": "object", "additionalProperties": false, "required": ["nodeId", "generation"],
40
+ "properties": {
41
+ "nodeId": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$" },
42
+ "generation": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$" }
43
+ }
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/ordered-eval-control.schema.json",
4
+ "title": "Ordered eval command v2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "key", "subject_digest", "sequence", "action"],
8
+ "properties": {
9
+ "schema_version": { "const": "2" },
10
+ "key": { "type": "string", "pattern": "^[!-~]{1,256}$" },
11
+ "subject_digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
12
+ "sequence": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
13
+ "action": { "enum": ["start", "pause"] },
14
+ "submission": { "$ref": "eval-submission-input.schema.json" },
15
+ "rerun": {
16
+ "type": "object", "additionalProperties": false, "required": ["eval_id", "input"],
17
+ "properties": {
18
+ "eval_id": { "type": "string", "pattern": "^eval_[a-f0-9]{32}$" },
19
+ "input": {
20
+ "type": "object", "additionalProperties": false, "required": ["rerun_id", "rerun_type", "selector"],
21
+ "properties": {
22
+ "rerun_id": { "type": "string", "pattern": "^rerun_[a-f0-9]{32}$" },
23
+ "rerun_type": { "$ref": "eval-rerun-submission.schema.json#/$defs/rerunType" },
24
+ "selector": { "$ref": "eval-rerun-submission.schema.json#/$defs/selector" },
25
+ "verifier_runtime_id": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
26
+ },
27
+ "allOf": [{ "if": { "required": ["verifier_runtime_id"] }, "then": { "properties": { "rerun_type": { "const": "verifier-only" } } } }]
28
+ }
29
+ }
30
+ }
31
+ },
32
+ "allOf": [
33
+ { "not": { "required": ["submission", "rerun"] } },
34
+ {
35
+ "if": { "properties": { "action": { "const": "pause" } } },
36
+ "then": { "not": { "anyOf": [{ "required": ["submission"] }, { "required": ["rerun"] }] } }
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/remote-execution-lease-grant.schema.json",
4
+ "title": "Hitch current remote execution lease V2",
5
+ "description": "An authenticated no-store snapshot of the current controller execution lease for an accepted offer; reading never renews it. Worker, offer, generation, epoch and immutable resource identity must match.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "schema_version",
10
+ "offer_id",
11
+ "generation",
12
+ "lease"
13
+ ],
14
+ "properties": {
15
+ "schema_version": {
16
+ "const": "2"
17
+ },
18
+ "offer_id": {
19
+ "type": "string",
20
+ "pattern": "^offer_[a-f0-9]{32}$"
21
+ },
22
+ "generation": {
23
+ "type": "integer",
24
+ "minimum": 1
25
+ },
26
+ "lease": {
27
+ "allOf": [
28
+ {
29
+ "$ref": "execution-lease.schema.json"
30
+ },
31
+ {
32
+ "properties": {
33
+ "state": {
34
+ "enum": [
35
+ "offered",
36
+ "accepted",
37
+ "running"
38
+ ]
39
+ }
40
+ }
41
+ }
42
+ ]
43
+ }
44
+ }
45
+ }