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,487 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/inference-lock.schema.json",
4
+ "title": "Hitch inference lock v1/v2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "engine",
10
+ "model_id",
11
+ "runtime_id",
12
+ "inference_id",
13
+ "profile",
14
+ "execution",
15
+ "generation",
16
+ "protocol",
17
+ "resources"
18
+ ],
19
+ "properties": {
20
+ "schema_version": {
21
+ "enum": [
22
+ "1",
23
+ "2"
24
+ ]
25
+ },
26
+ "engine": {
27
+ "const": "sglang"
28
+ },
29
+ "model_id": {
30
+ "$ref": "#/$defs/sha256"
31
+ },
32
+ "runtime_id": {
33
+ "$ref": "#/$defs/sha256"
34
+ },
35
+ "inference_id": {
36
+ "$ref": "#/$defs/sha256"
37
+ },
38
+ "profile": {
39
+ "enum": [
40
+ "baseline",
41
+ "throughput"
42
+ ]
43
+ },
44
+ "execution": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": [
48
+ "platform",
49
+ "load_format",
50
+ "dtype",
51
+ "quantization",
52
+ "tensor_parallel_size",
53
+ "data_parallel_size",
54
+ "pipeline_parallel_size",
55
+ "context_tokens_per_request",
56
+ "max_running_requests",
57
+ "max_queued_requests",
58
+ "max_total_tokens",
59
+ "chunked_prefill_size",
60
+ "max_prefill_tokens",
61
+ "kv_cache_dtype",
62
+ "attention_backend",
63
+ "sampling_backend",
64
+ "deterministic_inference",
65
+ "prefix_cache",
66
+ "hicache",
67
+ "speculative_decoding",
68
+ "cpu_offload_gb",
69
+ "startup_timeout_ms",
70
+ "queue_timeout_ms",
71
+ "request_timeout_ms",
72
+ "idle_ttl_ms"
73
+ ],
74
+ "properties": {
75
+ "platform": {
76
+ "$ref": "#/$defs/platform"
77
+ },
78
+ "load_format": {
79
+ "const": "safetensors"
80
+ },
81
+ "dtype": {
82
+ "type": "string",
83
+ "minLength": 1
84
+ },
85
+ "quantization": {
86
+ "type": [
87
+ "string",
88
+ "null"
89
+ ]
90
+ },
91
+ "tensor_parallel_size": {
92
+ "const": 1
93
+ },
94
+ "data_parallel_size": {
95
+ "const": 1
96
+ },
97
+ "pipeline_parallel_size": {
98
+ "const": 1
99
+ },
100
+ "context_tokens_per_request": {
101
+ "type": "integer",
102
+ "minimum": 1
103
+ },
104
+ "max_running_requests": {
105
+ "type": "integer",
106
+ "minimum": 1
107
+ },
108
+ "max_queued_requests": {
109
+ "type": "integer",
110
+ "minimum": 0
111
+ },
112
+ "max_total_tokens": {
113
+ "type": "integer",
114
+ "minimum": 1
115
+ },
116
+ "chunked_prefill_size": {
117
+ "type": "integer",
118
+ "minimum": -1
119
+ },
120
+ "max_prefill_tokens": {
121
+ "type": "integer",
122
+ "minimum": 1
123
+ },
124
+ "kv_cache_dtype": {
125
+ "type": "string",
126
+ "minLength": 1
127
+ },
128
+ "attention_backend": {
129
+ "type": "string",
130
+ "minLength": 1
131
+ },
132
+ "sampling_backend": {
133
+ "type": "string",
134
+ "minLength": 1
135
+ },
136
+ "deterministic_inference": {
137
+ "type": "boolean"
138
+ },
139
+ "prefix_cache": {
140
+ "type": "object",
141
+ "additionalProperties": false,
142
+ "required": [
143
+ "mode",
144
+ "scope",
145
+ "initial_state"
146
+ ],
147
+ "properties": {
148
+ "mode": {
149
+ "enum": [
150
+ "disabled",
151
+ "radix"
152
+ ]
153
+ },
154
+ "scope": {
155
+ "enum": [
156
+ "run",
157
+ "eval"
158
+ ]
159
+ },
160
+ "initial_state": {
161
+ "const": "empty"
162
+ }
163
+ }
164
+ },
165
+ "hicache": {
166
+ "const": false
167
+ },
168
+ "speculative_decoding": {
169
+ "const": false
170
+ },
171
+ "cpu_offload_gb": {
172
+ "const": 0
173
+ },
174
+ "startup_timeout_ms": {
175
+ "type": "integer",
176
+ "minimum": 1
177
+ },
178
+ "queue_timeout_ms": {
179
+ "type": "integer",
180
+ "minimum": 1
181
+ },
182
+ "request_timeout_ms": {
183
+ "type": "integer",
184
+ "minimum": 1
185
+ },
186
+ "idle_ttl_ms": {
187
+ "type": "integer",
188
+ "minimum": 0
189
+ }
190
+ }
191
+ },
192
+ "generation": {
193
+ "type": "object",
194
+ "additionalProperties": false,
195
+ "required": [
196
+ "temperature",
197
+ "top_p",
198
+ "top_k",
199
+ "min_p",
200
+ "repetition_penalty",
201
+ "seed",
202
+ "max_output_tokens",
203
+ "override_policy"
204
+ ],
205
+ "properties": {
206
+ "temperature": {
207
+ "type": "number",
208
+ "minimum": 0
209
+ },
210
+ "top_p": {
211
+ "type": "number",
212
+ "minimum": 0,
213
+ "maximum": 1
214
+ },
215
+ "top_k": {
216
+ "type": "integer",
217
+ "minimum": 0
218
+ },
219
+ "min_p": {
220
+ "type": "number",
221
+ "minimum": 0,
222
+ "maximum": 1
223
+ },
224
+ "repetition_penalty": {
225
+ "type": "number",
226
+ "exclusiveMinimum": 0
227
+ },
228
+ "seed": {
229
+ "type": "integer"
230
+ },
231
+ "max_output_tokens": {
232
+ "type": "integer",
233
+ "minimum": 1
234
+ },
235
+ "override_policy": {
236
+ "const": "reject-conflicts"
237
+ }
238
+ }
239
+ },
240
+ "protocol": {
241
+ "type": "object",
242
+ "additionalProperties": false,
243
+ "required": [
244
+ "api",
245
+ "streaming",
246
+ "tool_calls",
247
+ "parallel_tool_calls",
248
+ "input_modalities",
249
+ "tool_call_parser",
250
+ "reasoning_parser",
251
+ "compatibility_profile_id"
252
+ ],
253
+ "properties": {
254
+ "api": {
255
+ "enum": [
256
+ "responses",
257
+ "chat-completions"
258
+ ]
259
+ },
260
+ "streaming": {
261
+ "type": "boolean"
262
+ },
263
+ "tool_calls": {
264
+ "type": "boolean"
265
+ },
266
+ "parallel_tool_calls": {
267
+ "type": "boolean"
268
+ },
269
+ "input_modalities": {
270
+ "const": [
271
+ "text"
272
+ ]
273
+ },
274
+ "tool_call_parser": {
275
+ "type": [
276
+ "string",
277
+ "null"
278
+ ]
279
+ },
280
+ "reasoning_parser": {
281
+ "type": [
282
+ "string",
283
+ "null"
284
+ ]
285
+ },
286
+ "compatibility_profile_id": {
287
+ "$ref": "#/$defs/sha256"
288
+ }
289
+ }
290
+ },
291
+ "resources": {
292
+ "$ref": "#/$defs/resources"
293
+ },
294
+ "model_node": {
295
+ "$ref": "#/$defs/modelNodeBinding"
296
+ }
297
+ },
298
+ "$defs": {
299
+ "sha256": {
300
+ "type": "string",
301
+ "pattern": "^sha256:[a-f0-9]{64}$"
302
+ },
303
+ "platform": {
304
+ "oneOf": [
305
+ {
306
+ "type": "object",
307
+ "additionalProperties": false,
308
+ "required": [
309
+ "backend",
310
+ "cpu_threads",
311
+ "numa_policy",
312
+ "cpu_feature_requirement",
313
+ "overlap_schedule"
314
+ ],
315
+ "properties": {
316
+ "backend": {
317
+ "const": "cpu"
318
+ },
319
+ "cpu_threads": {
320
+ "type": "integer",
321
+ "minimum": 1
322
+ },
323
+ "numa_policy": {
324
+ "const": "single-node"
325
+ },
326
+ "cpu_feature_requirement": {
327
+ "const": "amx"
328
+ },
329
+ "overlap_schedule": {
330
+ "const": false
331
+ }
332
+ }
333
+ },
334
+ {
335
+ "type": "object",
336
+ "additionalProperties": false,
337
+ "required": [
338
+ "backend",
339
+ "mem_fraction_static",
340
+ "overlap_schedule",
341
+ "cuda_graph"
342
+ ],
343
+ "properties": {
344
+ "backend": {
345
+ "const": "cuda"
346
+ },
347
+ "device_constraint": {
348
+ "type": "string",
349
+ "minLength": 1
350
+ },
351
+ "mem_fraction_static": {
352
+ "type": "number",
353
+ "exclusiveMinimum": 0,
354
+ "maximum": 1
355
+ },
356
+ "overlap_schedule": {
357
+ "type": "boolean"
358
+ },
359
+ "cuda_graph": {
360
+ "enum": [
361
+ "enabled",
362
+ "disabled"
363
+ ]
364
+ }
365
+ }
366
+ },
367
+ {
368
+ "type": "object",
369
+ "additionalProperties": false,
370
+ "required": [
371
+ "backend",
372
+ "mlx_quantization",
373
+ "overlap_schedule"
374
+ ],
375
+ "properties": {
376
+ "backend": {
377
+ "const": "metal"
378
+ },
379
+ "mlx_quantization": {
380
+ "enum": [
381
+ "none",
382
+ "prequantized"
383
+ ]
384
+ },
385
+ "overlap_schedule": {
386
+ "type": "boolean"
387
+ }
388
+ }
389
+ }
390
+ ]
391
+ },
392
+ "resources": {
393
+ "type": "object",
394
+ "additionalProperties": false,
395
+ "required": [
396
+ "cpu_millis",
397
+ "memory_bytes",
398
+ "container_slots",
399
+ "build_slots"
400
+ ],
401
+ "properties": {
402
+ "cpu_millis": {
403
+ "type": "integer",
404
+ "minimum": 0
405
+ },
406
+ "memory_bytes": {
407
+ "type": "integer",
408
+ "minimum": 0
409
+ },
410
+ "container_slots": {
411
+ "type": "integer",
412
+ "minimum": 0
413
+ },
414
+ "build_slots": {
415
+ "type": "integer",
416
+ "minimum": 0
417
+ },
418
+ "gpu_count": {
419
+ "type": "integer",
420
+ "minimum": 0
421
+ },
422
+ "ephemeral_disk_bytes": {
423
+ "type": "integer",
424
+ "minimum": 0
425
+ }
426
+ }
427
+ },
428
+ "modelNodeBinding": {
429
+ "$ref": "model-node-binding.schema.json"
430
+ }
431
+ },
432
+ "allOf": [
433
+ {
434
+ "if": {
435
+ "properties": {
436
+ "schema_version": {
437
+ "const": "2"
438
+ }
439
+ }
440
+ },
441
+ "then": {
442
+ "required": [
443
+ "model_node"
444
+ ],
445
+ "properties": {
446
+ "resources": {
447
+ "properties": {
448
+ "container_slots": {
449
+ "const": 0
450
+ }
451
+ }
452
+ },
453
+ "execution": {
454
+ "properties": {
455
+ "platform": {
456
+ "required": [
457
+ "device_constraint"
458
+ ],
459
+ "properties": {
460
+ "backend": {
461
+ "const": "cuda"
462
+ }
463
+ }
464
+ }
465
+ }
466
+ }
467
+ }
468
+ },
469
+ "else": {
470
+ "not": {
471
+ "required": [
472
+ "model_node"
473
+ ]
474
+ },
475
+ "properties": {
476
+ "resources": {
477
+ "properties": {
478
+ "container_slots": {
479
+ "minimum": 1
480
+ }
481
+ }
482
+ }
483
+ }
484
+ }
485
+ }
486
+ ]
487
+ }
@@ -0,0 +1,156 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/inference-runtime-manifest.schema.json",
4
+ "title": "Hitch SGLang runtime manifest v1/v2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "runtime_id",
10
+ "engine",
11
+ "sglang_version",
12
+ "sglang_commit",
13
+ "backend",
14
+ "package",
15
+ "compatibility_profile"
16
+ ],
17
+ "properties": {
18
+ "schema_version": {
19
+ "enum": [
20
+ "1",
21
+ "2"
22
+ ]
23
+ },
24
+ "runtime_id": {
25
+ "$ref": "#/$defs/sha256"
26
+ },
27
+ "engine": {
28
+ "const": "sglang"
29
+ },
30
+ "sglang_version": {
31
+ "type": "string",
32
+ "pattern": "^v?[0-9]+\\.[0-9]+\\.[0-9]+"
33
+ },
34
+ "sglang_commit": {
35
+ "type": ["string", "null"],
36
+ "pattern": "^[a-f0-9]{40}$"
37
+ },
38
+ "backend": {
39
+ "enum": [
40
+ "cpu",
41
+ "cuda",
42
+ "metal"
43
+ ]
44
+ },
45
+ "package": {
46
+ "oneOf": [
47
+ {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": [
51
+ "kind",
52
+ "image",
53
+ "image_digest",
54
+ "platform"
55
+ ],
56
+ "properties": {
57
+ "kind": {
58
+ "const": "oci"
59
+ },
60
+ "image": {
61
+ "type": "string",
62
+ "minLength": 1
63
+ },
64
+ "image_digest": {
65
+ "$ref": "#/$defs/sha256"
66
+ },
67
+ "platform": {
68
+ "const": "linux/amd64"
69
+ }
70
+ }
71
+ },
72
+ {
73
+ "type": "object",
74
+ "additionalProperties": false,
75
+ "required": [
76
+ "kind",
77
+ "environment_digest",
78
+ "python_version",
79
+ "packages_digest"
80
+ ],
81
+ "properties": {
82
+ "kind": {
83
+ "const": "python-env"
84
+ },
85
+ "environment_digest": {
86
+ "$ref": "#/$defs/sha256"
87
+ },
88
+ "python_version": {
89
+ "type": "string",
90
+ "minLength": 1
91
+ },
92
+ "packages_digest": {
93
+ "$ref": "#/$defs/sha256"
94
+ }
95
+ }
96
+ }
97
+ ]
98
+ },
99
+ "compatibility_profile": {
100
+ "type": "string",
101
+ "minLength": 1
102
+ }
103
+ },
104
+ "$defs": {
105
+ "sha256": {
106
+ "type": "string",
107
+ "pattern": "^sha256:[a-f0-9]{64}$"
108
+ }
109
+ },
110
+ "allOf": [
111
+ {
112
+ "if": { "properties": { "sglang_commit": { "type": "null" } } },
113
+ "then": { "properties": { "schema_version": { "const": "2" }, "package": { "properties": { "kind": { "const": "python-env" } } } } }
114
+ },
115
+ {
116
+ "if": {
117
+ "properties": {
118
+ "schema_version": {
119
+ "const": "1"
120
+ }
121
+ }
122
+ },
123
+ "then": {
124
+ "if": {
125
+ "properties": {
126
+ "backend": {
127
+ "const": "metal"
128
+ }
129
+ }
130
+ },
131
+ "then": {
132
+ "properties": {
133
+ "package": {
134
+ "properties": {
135
+ "kind": {
136
+ "const": "python-env"
137
+ }
138
+ }
139
+ }
140
+ }
141
+ },
142
+ "else": {
143
+ "properties": {
144
+ "package": {
145
+ "properties": {
146
+ "kind": {
147
+ "const": "oci"
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ ]
156
+ }