agent-hitch 0.2.7 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/README.md +16 -2
  2. package/README.zh-CN.md +14 -2
  3. package/dist/bin/hitch.js +25 -3
  4. package/dist/bin/hitch.js.map +1 -1
  5. package/dist/scripts/canary-benchmark.js +54 -0
  6. package/dist/scripts/canary-benchmark.js.map +1 -0
  7. package/dist/scripts/canary-eval-scheduler-throughput.js +47 -0
  8. package/dist/scripts/canary-eval-scheduler-throughput.js.map +1 -0
  9. package/dist/scripts/check-architecture.js +3 -2
  10. package/dist/scripts/check-architecture.js.map +1 -1
  11. package/dist/src/adapters/catalog.js +2 -1
  12. package/dist/src/adapters/catalog.js.map +1 -1
  13. package/dist/src/adapters/providers/codex-auth.js +29 -0
  14. package/dist/src/adapters/providers/codex-auth.js.map +1 -0
  15. package/dist/src/adapters/providers/codex.js +23 -6
  16. package/dist/src/adapters/providers/codex.js.map +1 -1
  17. package/dist/src/adapters/providers/model-call.js +26 -0
  18. package/dist/src/adapters/providers/model-call.js.map +1 -0
  19. package/dist/src/artifacts/index.js +1 -1
  20. package/dist/src/artifacts/index.js.map +1 -1
  21. package/dist/src/artifacts/preparer.js +7 -2
  22. package/dist/src/artifacts/preparer.js.map +1 -1
  23. package/dist/src/backends/harbor/agent-budget.js +31 -0
  24. package/dist/src/backends/harbor/agent-budget.js.map +1 -0
  25. package/dist/src/backends/harbor/backend.js +6 -4
  26. package/dist/src/backends/harbor/backend.js.map +1 -1
  27. package/dist/src/backends/harbor/index.js +1 -0
  28. package/dist/src/backends/harbor/index.js.map +1 -1
  29. package/dist/src/backends/harbor/regrade.js +77 -0
  30. package/dist/src/backends/harbor/regrade.js.map +1 -0
  31. package/dist/src/backends/index.js +1 -0
  32. package/dist/src/backends/index.js.map +1 -1
  33. package/dist/src/benchmarks/index.js +3 -0
  34. package/dist/src/benchmarks/index.js.map +1 -0
  35. package/dist/src/benchmarks/loader.js +271 -0
  36. package/dist/src/benchmarks/loader.js.map +1 -0
  37. package/dist/src/benchmarks/metrics.js +16 -0
  38. package/dist/src/benchmarks/metrics.js.map +1 -0
  39. package/dist/src/benchmarks/toml.js +13 -0
  40. package/dist/src/benchmarks/toml.js.map +1 -0
  41. package/dist/src/benchmarks/validation.js +242 -0
  42. package/dist/src/benchmarks/validation.js.map +1 -0
  43. package/dist/src/cli/arguments.js +6 -4
  44. package/dist/src/cli/arguments.js.map +1 -1
  45. package/dist/src/cli/commands/benchmark.js +22 -0
  46. package/dist/src/cli/commands/benchmark.js.map +1 -0
  47. package/dist/src/cli/commands/capabilities.js +18 -0
  48. package/dist/src/cli/commands/capabilities.js.map +1 -0
  49. package/dist/src/cli/commands/eval.js +15 -3
  50. package/dist/src/cli/commands/eval.js.map +1 -1
  51. package/dist/src/cli/commands/run.js +37 -15
  52. package/dist/src/cli/commands/run.js.map +1 -1
  53. package/dist/src/cli/commands/trajectory.js +96 -5
  54. package/dist/src/cli/commands/trajectory.js.map +1 -1
  55. package/dist/src/cli/commands/verifier.js +36 -0
  56. package/dist/src/cli/commands/verifier.js.map +1 -0
  57. package/dist/src/cli/main.js +6 -0
  58. package/dist/src/cli/main.js.map +1 -1
  59. package/dist/src/cli/output.js +14 -2
  60. package/dist/src/cli/output.js.map +1 -1
  61. package/dist/src/control-plane/eval-control-work.js +5 -0
  62. package/dist/src/control-plane/eval-control-work.js.map +1 -1
  63. package/dist/src/control-plane/eval-scheduler.js +4 -1
  64. package/dist/src/control-plane/eval-scheduler.js.map +1 -1
  65. package/dist/src/control-plane/index.js +1 -1
  66. package/dist/src/control-plane/index.js.map +1 -1
  67. package/dist/src/control-plane/remote-result-transport.js +3 -0
  68. package/dist/src/control-plane/remote-result-transport.js.map +1 -1
  69. package/dist/src/control-plane/remote-work-coordinator.js +1 -0
  70. package/dist/src/control-plane/remote-work-coordinator.js.map +1 -1
  71. package/dist/src/control-plane/remote-work-item.js +62 -0
  72. package/dist/src/control-plane/remote-work-item.js.map +1 -0
  73. package/dist/src/control-plane/remote-work-recovery.js +44 -5
  74. package/dist/src/control-plane/remote-work-recovery.js.map +1 -1
  75. package/dist/src/control-plane/remote-worker-protocol.js +2 -23
  76. package/dist/src/control-plane/remote-worker-protocol.js.map +1 -1
  77. package/dist/src/control-plane/rerun-scheduler.js +51 -14
  78. package/dist/src/control-plane/rerun-scheduler.js.map +1 -1
  79. package/dist/src/control-plane/rerun-submission.js +10 -4
  80. package/dist/src/control-plane/rerun-submission.js.map +1 -1
  81. package/dist/src/control-plane/work-admission.js +2 -0
  82. package/dist/src/control-plane/work-admission.js.map +1 -1
  83. package/dist/src/control-plane/work-dispatcher.js +9 -1
  84. package/dist/src/control-plane/work-dispatcher.js.map +1 -1
  85. package/dist/src/controller-runtime/hash.js +7 -2
  86. package/dist/src/controller-runtime/hash.js.map +1 -1
  87. package/dist/src/daemon/auth.js +5 -0
  88. package/dist/src/daemon/auth.js.map +1 -1
  89. package/dist/src/domain/benchmarks.js +2 -0
  90. package/dist/src/domain/benchmarks.js.map +1 -0
  91. package/dist/src/domain/index.js +4 -0
  92. package/dist/src/domain/index.js.map +1 -1
  93. package/dist/src/domain/runs.js.map +1 -1
  94. package/dist/src/domain/validation.js +11 -4
  95. package/dist/src/domain/validation.js.map +1 -1
  96. package/dist/src/domain/verifier-evidence-validation.js +214 -0
  97. package/dist/src/domain/verifier-evidence-validation.js.map +1 -0
  98. package/dist/src/domain/verifier-evidence.js +3 -0
  99. package/dist/src/domain/verifier-evidence.js.map +1 -0
  100. package/dist/src/domain/verifier-score-contract.js +232 -0
  101. package/dist/src/domain/verifier-score-contract.js.map +1 -0
  102. package/dist/src/evals/benchmark-adapter-manifest.js +219 -0
  103. package/dist/src/evals/benchmark-adapter-manifest.js.map +1 -0
  104. package/dist/src/evals/benchmark-candidate.js +36 -0
  105. package/dist/src/evals/benchmark-candidate.js.map +1 -0
  106. package/dist/src/evals/benchmark-run.js +166 -0
  107. package/dist/src/evals/benchmark-run.js.map +1 -0
  108. package/dist/src/evals/collect-only-rerun.js +2 -1
  109. package/dist/src/evals/collect-only-rerun.js.map +1 -1
  110. package/dist/src/evals/directory.js +1 -1
  111. package/dist/src/evals/directory.js.map +1 -1
  112. package/dist/src/evals/duration-estimator.js +126 -0
  113. package/dist/src/evals/duration-estimator.js.map +1 -0
  114. package/dist/src/evals/eval-lifecycle-events.js +13 -0
  115. package/dist/src/evals/eval-lifecycle-events.js.map +1 -1
  116. package/dist/src/evals/eval-logical-plan.js +51 -0
  117. package/dist/src/evals/eval-logical-plan.js.map +1 -0
  118. package/dist/src/evals/eval-result-builder.js +81 -0
  119. package/dist/src/evals/eval-result-builder.js.map +1 -0
  120. package/dist/src/evals/evolution-baseline.js +191 -0
  121. package/dist/src/evals/evolution-baseline.js.map +1 -0
  122. package/dist/src/evals/execution-plan.js +39 -3
  123. package/dist/src/evals/execution-plan.js.map +1 -1
  124. package/dist/src/evals/failure-classifier.js +61 -0
  125. package/dist/src/evals/failure-classifier.js.map +1 -0
  126. package/dist/src/evals/harbor-artifact-builder.js +6 -2
  127. package/dist/src/evals/harbor-artifact-builder.js.map +1 -1
  128. package/dist/src/evals/harbor-bridge-error.js +41 -1
  129. package/dist/src/evals/harbor-bridge-error.js.map +1 -1
  130. package/dist/src/evals/harbor-node-runtime.js +146 -0
  131. package/dist/src/evals/harbor-node-runtime.js.map +1 -0
  132. package/dist/src/evals/index.js +15 -0
  133. package/dist/src/evals/index.js.map +1 -1
  134. package/dist/src/evals/infrastructure-retry.js +109 -22
  135. package/dist/src/evals/infrastructure-retry.js.map +1 -1
  136. package/dist/src/evals/native-phase-evidence.js +440 -0
  137. package/dist/src/evals/native-phase-evidence.js.map +1 -0
  138. package/dist/src/evals/physical-retry-work.js +31 -0
  139. package/dist/src/evals/physical-retry-work.js.map +1 -0
  140. package/dist/src/evals/planned-execution-support.js +22 -10
  141. package/dist/src/evals/planned-execution-support.js.map +1 -1
  142. package/dist/src/evals/planned-execution.js +120 -112
  143. package/dist/src/evals/planned-execution.js.map +1 -1
  144. package/dist/src/evals/planned-progress-publisher.js +62 -0
  145. package/dist/src/evals/planned-progress-publisher.js.map +1 -0
  146. package/dist/src/evals/planned-retry-execution.js +174 -0
  147. package/dist/src/evals/planned-retry-execution.js.map +1 -0
  148. package/dist/src/evals/planned-retry-lifecycle.js +4 -2
  149. package/dist/src/evals/planned-retry-lifecycle.js.map +1 -1
  150. package/dist/src/evals/preparation-rerun.js +225 -0
  151. package/dist/src/evals/preparation-rerun.js.map +1 -0
  152. package/dist/src/evals/progress.js +48 -8
  153. package/dist/src/evals/progress.js.map +1 -1
  154. package/dist/src/evals/recovery.js +54 -4
  155. package/dist/src/evals/recovery.js.map +1 -1
  156. package/dist/src/evals/regrade-evidence.js +77 -0
  157. package/dist/src/evals/regrade-evidence.js.map +1 -0
  158. package/dist/src/evals/remote-infrastructure-retry.js +84 -18
  159. package/dist/src/evals/remote-infrastructure-retry.js.map +1 -1
  160. package/dist/src/evals/request.js +21 -3
  161. package/dist/src/evals/request.js.map +1 -1
  162. package/dist/src/evals/rerun-inputs.js +19 -0
  163. package/dist/src/evals/rerun-inputs.js.map +1 -1
  164. package/dist/src/evals/rerun-types.js +2 -6
  165. package/dist/src/evals/rerun-types.js.map +1 -1
  166. package/dist/src/evals/rerun.js +27 -20
  167. package/dist/src/evals/rerun.js.map +1 -1
  168. package/dist/src/evals/result-helpers.js +13 -0
  169. package/dist/src/evals/result-helpers.js.map +1 -1
  170. package/dist/src/evals/retry-backoff.js +20 -0
  171. package/dist/src/evals/retry-backoff.js.map +1 -0
  172. package/dist/src/evals/retry-state.js +195 -0
  173. package/dist/src/evals/retry-state.js.map +1 -0
  174. package/dist/src/evals/scheduler-metrics.js +95 -0
  175. package/dist/src/evals/scheduler-metrics.js.map +1 -0
  176. package/dist/src/evals/scheduler-trace-replay.js +107 -0
  177. package/dist/src/evals/scheduler-trace-replay.js.map +1 -0
  178. package/dist/src/evals/service.js +87 -138
  179. package/dist/src/evals/service.js.map +1 -1
  180. package/dist/src/evals/trial-import.js +47 -50
  181. package/dist/src/evals/trial-import.js.map +1 -1
  182. package/dist/src/evals/trial-publication-recovery.js +45 -5
  183. package/dist/src/evals/trial-publication-recovery.js.map +1 -1
  184. package/dist/src/evals/trial-reference-validation.js +49 -0
  185. package/dist/src/evals/trial-reference-validation.js.map +1 -0
  186. package/dist/src/evals/verifier-artifacts.js +317 -0
  187. package/dist/src/evals/verifier-artifacts.js.map +1 -0
  188. package/dist/src/evals/verifier-eligibility.js +25 -0
  189. package/dist/src/evals/verifier-eligibility.js.map +1 -0
  190. package/dist/src/evals/verifier-only-rerun.js +210 -0
  191. package/dist/src/evals/verifier-only-rerun.js.map +1 -0
  192. package/dist/src/evals/verifier-runtime.js +61 -0
  193. package/dist/src/evals/verifier-runtime.js.map +1 -0
  194. package/dist/src/evals/verifier-score-artifacts.js +119 -0
  195. package/dist/src/evals/verifier-score-artifacts.js.map +1 -0
  196. package/dist/src/foundation/contained-file.js +85 -0
  197. package/dist/src/foundation/contained-file.js.map +1 -0
  198. package/dist/src/foundation/credential-redaction.js +26 -1
  199. package/dist/src/foundation/credential-redaction.js.map +1 -1
  200. package/dist/src/foundation/fs.js +2 -1
  201. package/dist/src/foundation/fs.js.map +1 -1
  202. package/dist/src/foundation/index.js +2 -1
  203. package/dist/src/foundation/index.js.map +1 -1
  204. package/dist/src/runs/adapter-process.js +12 -0
  205. package/dist/src/runs/adapter-process.js.map +1 -0
  206. package/dist/src/runs/executor.js +24 -30
  207. package/dist/src/runs/executor.js.map +1 -1
  208. package/dist/src/runs/finalizer.js +17 -0
  209. package/dist/src/runs/finalizer.js.map +1 -1
  210. package/dist/src/runs/index.js +5 -0
  211. package/dist/src/runs/index.js.map +1 -1
  212. package/dist/src/runs/phase-bundle.js +86 -0
  213. package/dist/src/runs/phase-bundle.js.map +1 -0
  214. package/dist/src/runs/phase-cancellation.js +107 -0
  215. package/dist/src/runs/phase-cancellation.js.map +1 -0
  216. package/dist/src/runs/phase-group.js +113 -0
  217. package/dist/src/runs/phase-group.js.map +1 -0
  218. package/dist/src/runs/query.js +1 -1
  219. package/dist/src/runs/query.js.map +1 -1
  220. package/dist/src/runs/records.js +3 -0
  221. package/dist/src/runs/records.js.map +1 -1
  222. package/dist/src/runs/request.js +4 -2
  223. package/dist/src/runs/request.js.map +1 -1
  224. package/dist/src/runs/verifier-evidence-redaction.js +61 -0
  225. package/dist/src/runs/verifier-evidence-redaction.js.map +1 -0
  226. package/dist/src/runs/verifier-evidence.js +459 -0
  227. package/dist/src/runs/verifier-evidence.js.map +1 -0
  228. package/dist/src/runs/verifier-structured-evidence.js +83 -0
  229. package/dist/src/runs/verifier-structured-evidence.js.map +1 -0
  230. package/dist/src/trajectories/analysis.js +288 -0
  231. package/dist/src/trajectories/analysis.js.map +1 -0
  232. package/dist/src/trajectories/chunk-projection.js +148 -0
  233. package/dist/src/trajectories/chunk-projection.js.map +1 -0
  234. package/dist/src/trajectories/content-projection.js +389 -0
  235. package/dist/src/trajectories/content-projection.js.map +1 -0
  236. package/dist/src/trajectories/dsh-chunk-contract.js +176 -0
  237. package/dist/src/trajectories/dsh-chunk-contract.js.map +1 -0
  238. package/dist/src/trajectories/dsh-contract.js +284 -0
  239. package/dist/src/trajectories/dsh-contract.js.map +1 -0
  240. package/dist/src/trajectories/events-chunk-drill.js +95 -0
  241. package/dist/src/trajectories/events-chunk-drill.js.map +1 -0
  242. package/dist/src/trajectories/events-page.js +367 -0
  243. package/dist/src/trajectories/events-page.js.map +1 -0
  244. package/dist/src/trajectories/index.js +3 -0
  245. package/dist/src/trajectories/index.js.map +1 -1
  246. package/dist/src/trajectories/request-attempt.js +47 -0
  247. package/dist/src/trajectories/request-attempt.js.map +1 -0
  248. package/dist/src/trajectories/stream-reader.js +311 -0
  249. package/dist/src/trajectories/stream-reader.js.map +1 -0
  250. package/dist/src/trajectories/surface-fold.js +126 -0
  251. package/dist/src/trajectories/surface-fold.js.map +1 -0
  252. package/dist/src/workers/remote-harbor-worker.js +3 -0
  253. package/dist/src/workers/remote-harbor-worker.js.map +1 -1
  254. package/docs/schemas/benchmark-hook-request-v1.schema.json +65 -0
  255. package/docs/schemas/benchmark-hook-response-v1.schema.json +75 -0
  256. package/docs/schemas/benchmark-hook-v1.schema.json +33 -0
  257. package/docs/schemas/benchmark-lock-v1.schema.json +351 -0
  258. package/docs/schemas/benchmark-metric-v1.schema.json +37 -0
  259. package/docs/schemas/benchmark-package-v1.schema.json +167 -0
  260. package/docs/schemas/benchmark-phase-group.schema.json +41 -0
  261. package/docs/schemas/benchmark-profile-v1.schema.json +141 -0
  262. package/docs/schemas/benchmark-task-v1.schema.json +384 -0
  263. package/docs/schemas/benchmark-tool-result-v1.schema.json +30 -0
  264. package/docs/schemas/error.schema.json +22 -0
  265. package/docs/schemas/eval-progress.schema.json +1 -15
  266. package/docs/schemas/eval-rerun-result.schema.json +6 -1
  267. package/docs/schemas/eval-rerun-submission.schema.json +3 -1
  268. package/docs/schemas/eval-result.schema.json +1 -15
  269. package/docs/schemas/eval-trial-publication.schema.json +1 -25
  270. package/docs/schemas/eval-trial-reference.schema.json +129 -0
  271. package/docs/schemas/regrade-assessment-reference.schema.json +11 -0
  272. package/docs/schemas/run-context.schema.json +15 -0
  273. package/docs/schemas/run-manifest.schema.json +4 -0
  274. package/docs/schemas/run-request.schema.json +4 -0
  275. package/docs/schemas/trajectory-analysis.schema.json +258 -0
  276. package/docs/schemas/trajectory-events-page.schema.json +40 -0
  277. package/docs/schemas/verifier-assessment.schema.json +77 -0
  278. package/docs/schemas/verifier-evidence.schema.json +276 -0
  279. package/integrations/harbor/hitch_benchmark.py +252 -0
  280. package/integrations/harbor/hitch_candidate_recycle.py +262 -0
  281. package/integrations/harbor/hitch_harbor_agent.py +541 -43
  282. package/integrations/harbor/hitch_harbor_environment.py +138 -0
  283. package/integrations/harbor/hitch_harbor_verifier.py +60 -2
  284. package/integrations/harbor/hitch_phase_supervisor.py +452 -0
  285. package/integrations/harbor/hitch_tool_client.mjs +91 -0
  286. package/integrations/model-call/cli.js +57 -0
  287. package/package.json +17 -6
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hitch.dev/schemas/benchmark-hook-response-v1.schema.json",
4
+ "oneOf": [
5
+ {
6
+ "type": "object",
7
+ "properties": {
8
+ "schema_version": {
9
+ "const": "1"
10
+ },
11
+ "request_id": {
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "status": {
16
+ "const": "ok"
17
+ },
18
+ "output": {
19
+ "type": "object"
20
+ }
21
+ },
22
+ "required": [
23
+ "schema_version",
24
+ "request_id",
25
+ "status",
26
+ "output"
27
+ ],
28
+ "additionalProperties": false
29
+ },
30
+ {
31
+ "type": "object",
32
+ "properties": {
33
+ "schema_version": {
34
+ "const": "1"
35
+ },
36
+ "request_id": {
37
+ "type": "string",
38
+ "minLength": 1
39
+ },
40
+ "status": {
41
+ "const": "error"
42
+ },
43
+ "error": {
44
+ "type": "object",
45
+ "properties": {
46
+ "code": {
47
+ "type": "string",
48
+ "minLength": 1
49
+ },
50
+ "message": {
51
+ "type": "string",
52
+ "minLength": 1
53
+ },
54
+ "retryable": {
55
+ "type": "boolean"
56
+ }
57
+ },
58
+ "required": [
59
+ "code",
60
+ "message",
61
+ "retryable"
62
+ ],
63
+ "additionalProperties": false
64
+ }
65
+ },
66
+ "required": [
67
+ "schema_version",
68
+ "request_id",
69
+ "status",
70
+ "error"
71
+ ],
72
+ "additionalProperties": false
73
+ }
74
+ ]
75
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hitch.dev/schemas/benchmark-hook-v1.schema.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "protocol": {
7
+ "const": "hitch-hook@1"
8
+ },
9
+ "target": {
10
+ "type": "string",
11
+ "pattern": "^environment:[a-z][a-z0-9_-]*$"
12
+ },
13
+ "argv": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "string",
17
+ "minLength": 1
18
+ },
19
+ "minItems": 1
20
+ },
21
+ "timeout_ms": {
22
+ "type": "integer",
23
+ "minimum": 1
24
+ }
25
+ },
26
+ "required": [
27
+ "protocol",
28
+ "target",
29
+ "argv",
30
+ "timeout_ms"
31
+ ],
32
+ "additionalProperties": false
33
+ }
@@ -0,0 +1,351 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hitch.dev/schemas/benchmark-lock-v1.schema.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "schema_version": {
7
+ "const": "1"
8
+ },
9
+ "protocol": {
10
+ "const": "hitch-benchmark@1"
11
+ },
12
+ "benchmark_id": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "release": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "package_digest": {
21
+ "type": "string",
22
+ "pattern": "^sha256:[a-f0-9]{64}$"
23
+ },
24
+ "source": {
25
+ "type": "object",
26
+ "properties": {
27
+ "kind": {
28
+ "enum": [
29
+ "local",
30
+ "git"
31
+ ]
32
+ },
33
+ "uri": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ },
37
+ "resolved_revision": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "access": {
42
+ "enum": [
43
+ "public",
44
+ "private",
45
+ "gated"
46
+ ]
47
+ },
48
+ "manifest_digest": {
49
+ "type": "string",
50
+ "pattern": "^sha256:[a-f0-9]{64}$"
51
+ }
52
+ },
53
+ "required": [
54
+ "kind",
55
+ "uri",
56
+ "resolved_revision",
57
+ "access",
58
+ "manifest_digest"
59
+ ],
60
+ "additionalProperties": false
61
+ },
62
+ "components": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "object",
66
+ "properties": {
67
+ "role": {
68
+ "type": "string",
69
+ "minLength": 1
70
+ },
71
+ "uri": {
72
+ "type": "string",
73
+ "minLength": 1
74
+ },
75
+ "resolved_revision": {
76
+ "type": "string",
77
+ "minLength": 1
78
+ },
79
+ "digest": {
80
+ "type": "string",
81
+ "pattern": "^sha256:[a-f0-9]{64}$"
82
+ }
83
+ },
84
+ "required": [
85
+ "role",
86
+ "uri",
87
+ "resolved_revision",
88
+ "digest"
89
+ ],
90
+ "additionalProperties": false
91
+ }
92
+ },
93
+ "resolver": {
94
+ "type": "object",
95
+ "properties": {
96
+ "id": {
97
+ "type": "string",
98
+ "minLength": 1
99
+ },
100
+ "version": {
101
+ "type": "string",
102
+ "minLength": 1
103
+ },
104
+ "code_digest": {
105
+ "type": "string",
106
+ "pattern": "^sha256:[a-f0-9]{64}$"
107
+ }
108
+ },
109
+ "required": [
110
+ "id",
111
+ "version",
112
+ "code_digest"
113
+ ],
114
+ "additionalProperties": false
115
+ },
116
+ "task_dialect": {
117
+ "type": "object",
118
+ "properties": {
119
+ "name": {
120
+ "const": "harbor"
121
+ },
122
+ "schema_version": {
123
+ "const": "1.4"
124
+ }
125
+ },
126
+ "required": [
127
+ "name",
128
+ "schema_version"
129
+ ],
130
+ "additionalProperties": false
131
+ },
132
+ "runtime_components": {
133
+ "type": "array",
134
+ "items": {
135
+ "type": "object",
136
+ "properties": {
137
+ "id": {
138
+ "type": "string",
139
+ "minLength": 1
140
+ },
141
+ "protocol": {
142
+ "type": "string",
143
+ "minLength": 1
144
+ },
145
+ "content_digest": {
146
+ "type": "string",
147
+ "pattern": "^sha256:[a-f0-9]{64}$"
148
+ }
149
+ },
150
+ "required": [
151
+ "id",
152
+ "protocol",
153
+ "content_digest"
154
+ ],
155
+ "additionalProperties": false
156
+ }
157
+ },
158
+ "tasks": {
159
+ "type": "array",
160
+ "items": {
161
+ "type": "object",
162
+ "properties": {
163
+ "task_id": {
164
+ "type": "string",
165
+ "minLength": 1
166
+ },
167
+ "source_task_id": {
168
+ "type": "string",
169
+ "minLength": 1
170
+ },
171
+ "path": {
172
+ "type": "string",
173
+ "minLength": 1
174
+ },
175
+ "task_digest": {
176
+ "type": "string",
177
+ "pattern": "^sha256:[a-f0-9]{64}$"
178
+ },
179
+ "input_digest": {
180
+ "type": "string",
181
+ "pattern": "^sha256:[a-f0-9]{64}$"
182
+ },
183
+ "grader_digest": {
184
+ "type": "string",
185
+ "pattern": "^sha256:[a-f0-9]{64}$"
186
+ },
187
+ "environment_refs": {
188
+ "type": "array",
189
+ "items": {
190
+ "type": "object",
191
+ "properties": {
192
+ "role": {
193
+ "type": "string",
194
+ "minLength": 1
195
+ },
196
+ "kind": {
197
+ "const": "build"
198
+ },
199
+ "context_digest": {
200
+ "type": "string",
201
+ "pattern": "^sha256:[a-f0-9]{64}$"
202
+ },
203
+ "base_image_digests": {
204
+ "type": "array",
205
+ "items": {
206
+ "type": "string",
207
+ "pattern": "^sha256:[a-f0-9]{64}$"
208
+ }
209
+ },
210
+ "platform": {
211
+ "const": "linux/amd64"
212
+ }
213
+ },
214
+ "required": [
215
+ "role",
216
+ "kind",
217
+ "context_digest",
218
+ "base_image_digests",
219
+ "platform"
220
+ ],
221
+ "additionalProperties": false
222
+ }
223
+ }
224
+ },
225
+ "required": [
226
+ "task_id",
227
+ "source_task_id",
228
+ "path",
229
+ "task_digest",
230
+ "input_digest",
231
+ "grader_digest",
232
+ "environment_refs"
233
+ ],
234
+ "additionalProperties": false
235
+ }
236
+ },
237
+ "profile_digest": {
238
+ "type": "string",
239
+ "pattern": "^sha256:[a-f0-9]{64}$"
240
+ },
241
+ "required_capabilities": {
242
+ "type": "array",
243
+ "items": {
244
+ "type": "string",
245
+ "minLength": 1
246
+ }
247
+ },
248
+ "metric_spec_digest": {
249
+ "type": "string",
250
+ "pattern": "^sha256:[a-f0-9]{64}$"
251
+ },
252
+ "files": {
253
+ "type": "array",
254
+ "items": {
255
+ "type": "object",
256
+ "properties": {
257
+ "path": {
258
+ "type": "string",
259
+ "minLength": 1
260
+ },
261
+ "digest": {
262
+ "type": "string",
263
+ "pattern": "^sha256:[a-f0-9]{64}$"
264
+ },
265
+ "bytes": {
266
+ "type": "integer",
267
+ "minimum": 0
268
+ },
269
+ "mode": {
270
+ "type": "integer",
271
+ "minimum": 0,
272
+ "maximum": 511
273
+ }
274
+ },
275
+ "required": [
276
+ "path",
277
+ "digest",
278
+ "bytes",
279
+ "mode"
280
+ ],
281
+ "additionalProperties": false
282
+ }
283
+ },
284
+ "transformations": {
285
+ "type": "array",
286
+ "items": {
287
+ "type": "object",
288
+ "properties": {
289
+ "kind": {
290
+ "type": "string",
291
+ "minLength": 1
292
+ },
293
+ "before": {
294
+ "type": "string",
295
+ "pattern": "^sha256:[a-f0-9]{64}$"
296
+ },
297
+ "after": {
298
+ "type": "string",
299
+ "pattern": "^sha256:[a-f0-9]{64}$"
300
+ }
301
+ },
302
+ "required": [
303
+ "kind",
304
+ "before",
305
+ "after"
306
+ ],
307
+ "additionalProperties": false
308
+ }
309
+ },
310
+ "source_adapter": {
311
+ "type": "object",
312
+ "properties": {
313
+ "id": {
314
+ "type": "string"
315
+ },
316
+ "version": {
317
+ "type": "string"
318
+ },
319
+ "code_digest": {
320
+ "type": "string",
321
+ "pattern": "^sha256:[a-f0-9]{64}$"
322
+ }
323
+ },
324
+ "required": [
325
+ "id",
326
+ "version",
327
+ "code_digest"
328
+ ],
329
+ "additionalProperties": false
330
+ }
331
+ },
332
+ "required": [
333
+ "schema_version",
334
+ "protocol",
335
+ "benchmark_id",
336
+ "release",
337
+ "package_digest",
338
+ "source",
339
+ "components",
340
+ "resolver",
341
+ "task_dialect",
342
+ "runtime_components",
343
+ "tasks",
344
+ "profile_digest",
345
+ "required_capabilities",
346
+ "metric_spec_digest",
347
+ "files",
348
+ "transformations"
349
+ ],
350
+ "additionalProperties": false
351
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hitch.dev/schemas/benchmark-metric-v1.schema.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "type": {
7
+ "enum": [
8
+ "binary",
9
+ "scalar"
10
+ ]
11
+ },
12
+ "direction": {
13
+ "enum": [
14
+ "maximize",
15
+ "minimize"
16
+ ]
17
+ },
18
+ "range": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "number"
22
+ },
23
+ "minItems": 2,
24
+ "maxItems": 2
25
+ },
26
+ "reducer": {
27
+ "const": "task_macro_mean"
28
+ }
29
+ },
30
+ "required": [
31
+ "type",
32
+ "direction",
33
+ "range",
34
+ "reducer"
35
+ ],
36
+ "additionalProperties": false
37
+ }
@@ -0,0 +1,167 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://hitch.dev/schemas/benchmark-package-v1.schema.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "schema_version": {
7
+ "const": "1"
8
+ },
9
+ "protocol": {
10
+ "const": "hitch-benchmark@1"
11
+ },
12
+ "id": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "release": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "task_root": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "task_ids": {
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string",
28
+ "minLength": 1
29
+ },
30
+ "minItems": 1,
31
+ "uniqueItems": true
32
+ },
33
+ "default_profile": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ },
37
+ "primary_metric": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "task_format": {
42
+ "type": "object",
43
+ "properties": {
44
+ "name": {
45
+ "const": "harbor"
46
+ },
47
+ "schema_version": {
48
+ "const": "1.4"
49
+ }
50
+ },
51
+ "required": [
52
+ "name",
53
+ "schema_version"
54
+ ],
55
+ "additionalProperties": false
56
+ },
57
+ "source": {
58
+ "type": "object",
59
+ "properties": {
60
+ "kind": {
61
+ "enum": [
62
+ "local",
63
+ "git"
64
+ ]
65
+ },
66
+ "path": {
67
+ "type": "string",
68
+ "minLength": 1
69
+ },
70
+ "uri": {
71
+ "type": "string",
72
+ "minLength": 1
73
+ },
74
+ "resolved_revision": {
75
+ "type": "string",
76
+ "minLength": 1
77
+ },
78
+ "license": {
79
+ "type": "string",
80
+ "minLength": 1
81
+ },
82
+ "access": {
83
+ "enum": [
84
+ "public",
85
+ "private",
86
+ "gated"
87
+ ]
88
+ }
89
+ },
90
+ "required": [
91
+ "kind",
92
+ "license"
93
+ ],
94
+ "additionalProperties": false
95
+ },
96
+ "metrics": {
97
+ "type": "object",
98
+ "minProperties": 1,
99
+ "additionalProperties": {
100
+ "$ref": "benchmark-metric-v1.schema.json"
101
+ }
102
+ },
103
+ "publication": {
104
+ "type": "object",
105
+ "properties": {
106
+ "track": {
107
+ "enum": [
108
+ "custom",
109
+ "public-subset"
110
+ ]
111
+ },
112
+ "training_eligible": {
113
+ "const": false
114
+ }
115
+ },
116
+ "required": [
117
+ "track",
118
+ "training_eligible"
119
+ ],
120
+ "additionalProperties": false
121
+ },
122
+ "runtime_components": {
123
+ "type": "array",
124
+ "items": {
125
+ "type": "object",
126
+ "properties": {
127
+ "id": {
128
+ "type": "string",
129
+ "minLength": 1
130
+ },
131
+ "protocol": {
132
+ "type": "string",
133
+ "minLength": 1
134
+ },
135
+ "path": {
136
+ "type": "string",
137
+ "minLength": 1
138
+ }
139
+ },
140
+ "required": [
141
+ "id",
142
+ "protocol",
143
+ "path"
144
+ ],
145
+ "additionalProperties": false
146
+ }
147
+ },
148
+ "extensions": {
149
+ "type": "object"
150
+ }
151
+ },
152
+ "required": [
153
+ "schema_version",
154
+ "protocol",
155
+ "id",
156
+ "release",
157
+ "task_root",
158
+ "task_ids",
159
+ "default_profile",
160
+ "primary_metric",
161
+ "task_format",
162
+ "source",
163
+ "metrics",
164
+ "publication"
165
+ ],
166
+ "additionalProperties": false
167
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-hitch.local/schemas/benchmark-phase-group.schema.json",
4
+ "title": "Hitch benchmark phase candidate evidence group V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "kind", "scope", "run_group_id", "eval_id", "trial_id", "attempt", "benchmark_id", "benchmark_revision", "task_id", "task_digest", "verifier_identity", "harness", "model", "phases", "created_at"],
8
+ "properties": {
9
+ "schema_version": { "const": "1" },
10
+ "kind": { "const": "benchmark-phase-group" },
11
+ "scope": { "const": "candidate-evidence-only" },
12
+ "run_group_id": { "type": "string", "pattern": "^run_group_[a-f0-9]{32}$" },
13
+ "eval_id": { "type": "string", "pattern": "^eval_[a-f0-9]{32}$" },
14
+ "trial_id": { "type": "string", "minLength": 1 },
15
+ "attempt": { "type": "integer", "minimum": 1 },
16
+ "benchmark_id": { "type": "string", "minLength": 1 },
17
+ "benchmark_revision": { "type": "string", "minLength": 1 },
18
+ "task_id": { "type": "string", "minLength": 1 },
19
+ "task_digest": { "$ref": "#/$defs/digest" },
20
+ "verifier_identity": { "$ref": "#/$defs/digest" },
21
+ "harness": { "$ref": "run-manifest.schema.json#/properties/harness" },
22
+ "model": { "$ref": "run-manifest.schema.json#/properties/model" },
23
+ "phases": {
24
+ "type": "array", "minItems": 1, "maxItems": 10000,
25
+ "items": {
26
+ "type": "object", "additionalProperties": false,
27
+ "required": ["phase_index", "run_id", "process_status", "provider_session_id", "bundle_digest", "bundle_index_digest"],
28
+ "properties": {
29
+ "phase_index": { "type": "integer", "minimum": 1 },
30
+ "run_id": { "type": "string", "pattern": "^run_[a-f0-9]{32}$" },
31
+ "process_status": { "enum": ["succeeded", "failed", "timed_out", "cancelled"] },
32
+ "provider_session_id": { "type": "string", "minLength": 1 },
33
+ "bundle_digest": { "$ref": "#/$defs/digest" },
34
+ "bundle_index_digest": { "$ref": "#/$defs/digest" }
35
+ }
36
+ }
37
+ },
38
+ "created_at": { "type": "string", "format": "date-time" }
39
+ },
40
+ "$defs": { "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" } }
41
+ }