@jinn-network/client 0.1.8 → 0.1.9-canary.144d87d2

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 (397) hide show
  1. package/README.md +6 -0
  2. package/dist/adapters/mech/adapter.d.ts +21 -1
  3. package/dist/adapters/mech/adapter.js +77 -10
  4. package/dist/adapters/mech/adapter.js.map +1 -1
  5. package/dist/adapters/mech/contracts.js +62 -28
  6. package/dist/adapters/mech/contracts.js.map +1 -1
  7. package/dist/adapters/mech/safe-revert.d.ts +4 -0
  8. package/dist/adapters/mech/safe-revert.js +5 -1
  9. package/dist/adapters/mech/safe-revert.js.map +1 -1
  10. package/dist/adapters/mech/safe.js +5 -1
  11. package/dist/adapters/mech/safe.js.map +1 -1
  12. package/dist/adapters/mech/verdict-code.js +1 -1
  13. package/dist/adapters/mech/verdict-code.js.map +1 -1
  14. package/dist/api/bootstrap-endpoint.d.ts +1 -0
  15. package/dist/api/bootstrap-endpoint.js +1 -0
  16. package/dist/api/bootstrap-endpoint.js.map +1 -1
  17. package/dist/api/discovery-endpoint.d.ts +1 -0
  18. package/dist/api/discovery-endpoint.js +24 -0
  19. package/dist/api/discovery-endpoint.js.map +1 -1
  20. package/dist/api/fleet-build.d.ts +1 -7
  21. package/dist/api/fleet-build.js +0 -7
  22. package/dist/api/fleet-build.js.map +1 -1
  23. package/dist/api/gather-status.d.ts +8 -2
  24. package/dist/api/gather-status.js +29 -117
  25. package/dist/api/gather-status.js.map +1 -1
  26. package/dist/api/loop-completion-build.d.ts +79 -0
  27. package/dist/api/loop-completion-build.js +155 -0
  28. package/dist/api/loop-completion-build.js.map +1 -0
  29. package/dist/api/operator-artifacts-endpoint.js +1 -1
  30. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  31. package/dist/api/peers.js +2 -0
  32. package/dist/api/peers.js.map +1 -1
  33. package/dist/api/setup-endpoints.d.ts +32 -0
  34. package/dist/api/setup-endpoints.js +94 -24
  35. package/dist/api/setup-endpoints.js.map +1 -1
  36. package/dist/api/solvernets-endpoints.js +4 -1
  37. package/dist/api/solvernets-endpoints.js.map +1 -1
  38. package/dist/api/status-build.d.ts +43 -33
  39. package/dist/api/status-build.js +3 -26
  40. package/dist/api/status-build.js.map +1 -1
  41. package/dist/api/status-rollup-build.d.ts +0 -4
  42. package/dist/api/status-rollup-build.js +0 -4
  43. package/dist/api/status-rollup-build.js.map +1 -1
  44. package/dist/api/stop-hook.d.ts +1 -1
  45. package/dist/api/stop-hook.js +1 -1
  46. package/dist/api/stop-hook.js.map +1 -1
  47. package/dist/build-info.json +4 -4
  48. package/dist/build-meta.json +1 -1
  49. package/dist/cli/commands/codedigest-revert-check.js +6 -2
  50. package/dist/cli/commands/codedigest-revert-check.js.map +1 -1
  51. package/dist/cli/commands/doctor.d.ts +3 -0
  52. package/dist/cli/commands/doctor.js +37 -2
  53. package/dist/cli/commands/doctor.js.map +1 -1
  54. package/dist/cli/commands/eval.d.ts +87 -0
  55. package/dist/cli/commands/eval.js +481 -0
  56. package/dist/cli/commands/eval.js.map +1 -0
  57. package/dist/cli/commands/rewards.d.ts +2 -0
  58. package/dist/cli/commands/rewards.js +30 -3
  59. package/dist/cli/commands/rewards.js.map +1 -1
  60. package/dist/cli/commands/solver-nets.js +68 -0
  61. package/dist/cli/commands/solver-nets.js.map +1 -1
  62. package/dist/cli/commands/status.js +0 -1
  63. package/dist/cli/commands/status.js.map +1 -1
  64. package/dist/cli/index.js +2 -0
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/config.d.ts +102 -15
  67. package/dist/config.js +166 -19
  68. package/dist/config.js.map +1 -1
  69. package/dist/daemon/ai-units-gate.d.ts +6 -6
  70. package/dist/daemon/ai-units-gate.js +11 -10
  71. package/dist/daemon/ai-units-gate.js.map +1 -1
  72. package/dist/daemon/balance-topup-loop.js +3 -0
  73. package/dist/daemon/balance-topup-loop.js.map +1 -1
  74. package/dist/daemon/checkpoint-loop.js +2 -2
  75. package/dist/daemon/creator.d.ts +1 -0
  76. package/dist/daemon/creator.js +26 -14
  77. package/dist/daemon/creator.js.map +1 -1
  78. package/dist/daemon/daemon.d.ts +15 -0
  79. package/dist/daemon/daemon.js +78 -22
  80. package/dist/daemon/daemon.js.map +1 -1
  81. package/dist/daemon/eviction-loop.d.ts +7 -0
  82. package/dist/daemon/eviction-loop.js +19 -3
  83. package/dist/daemon/eviction-loop.js.map +1 -1
  84. package/dist/daemon/jinn-claim-loop.js +3 -0
  85. package/dist/daemon/jinn-claim-loop.js.map +1 -1
  86. package/dist/daemon/join-applier.d.ts +35 -0
  87. package/dist/daemon/join-applier.js +49 -0
  88. package/dist/daemon/join-applier.js.map +1 -0
  89. package/dist/daemon/loop-heartbeat.d.ts +34 -0
  90. package/dist/daemon/loop-heartbeat.js +39 -0
  91. package/dist/daemon/loop-heartbeat.js.map +1 -0
  92. package/dist/daemon/reward-claim-loop.js +4 -1
  93. package/dist/daemon/reward-claim-loop.js.map +1 -1
  94. package/dist/daemon/watchdog-loop.d.ts +84 -0
  95. package/dist/daemon/watchdog-loop.js +91 -0
  96. package/dist/daemon/watchdog-loop.js.map +1 -0
  97. package/dist/dashboard/assets/index-8tAiMbUV.css +1 -0
  98. package/dist/dashboard/assets/index-D6a-DfaM.js +171 -0
  99. package/dist/dashboard/index.html +2 -2
  100. package/dist/discovery/http.d.ts +17 -0
  101. package/dist/discovery/http.js +295 -25
  102. package/dist/discovery/http.js.map +1 -1
  103. package/dist/discovery/onchain.js +155 -1
  104. package/dist/discovery/onchain.js.map +1 -1
  105. package/dist/discovery/types.d.ts +106 -0
  106. package/dist/discovery/types.js +40 -0
  107. package/dist/discovery/types.js.map +1 -1
  108. package/dist/discovery/with-fallback.js +14 -0
  109. package/dist/discovery/with-fallback.js.map +1 -1
  110. package/dist/earning/bootstrap.d.ts +25 -0
  111. package/dist/earning/bootstrap.js +79 -28
  112. package/dist/earning/bootstrap.js.map +1 -1
  113. package/dist/earning/faucet.d.ts +1 -1
  114. package/dist/earning/faucet.js +2 -2
  115. package/dist/earning/faucet.js.map +1 -1
  116. package/dist/earning/safe-adapter.js +11 -0
  117. package/dist/earning/safe-adapter.js.map +1 -1
  118. package/dist/earning/stolas-claim.js +5 -5
  119. package/dist/earning/types.d.ts +1 -1
  120. package/dist/earning/types.js +1 -1
  121. package/dist/earning/types.js.map +1 -1
  122. package/dist/eval/eval-harness-run.d.ts +63 -0
  123. package/dist/eval/eval-harness-run.js +123 -0
  124. package/dist/eval/eval-harness-run.js.map +1 -0
  125. package/dist/eval/orchestrator.d.ts +224 -0
  126. package/dist/eval/orchestrator.js +250 -0
  127. package/dist/eval/orchestrator.js.map +1 -0
  128. package/dist/eval/paired.d.ts +68 -0
  129. package/dist/eval/paired.js +93 -0
  130. package/dist/eval/paired.js.map +1 -0
  131. package/dist/eval/resolve-slate-tasks.d.ts +35 -0
  132. package/dist/eval/resolve-slate-tasks.js +56 -0
  133. package/dist/eval/resolve-slate-tasks.js.map +1 -0
  134. package/dist/eval/screen-discovery.d.ts +22 -0
  135. package/dist/eval/screen-discovery.js +71 -0
  136. package/dist/eval/screen-discovery.js.map +1 -0
  137. package/dist/eval/screen-progress.d.ts +41 -0
  138. package/dist/eval/screen-progress.js +60 -0
  139. package/dist/eval/screen-progress.js.map +1 -0
  140. package/dist/eval/screen-runner.d.ts +30 -0
  141. package/dist/eval/screen-runner.js +289 -0
  142. package/dist/eval/screen-runner.js.map +1 -0
  143. package/dist/eval/screen.d.ts +107 -0
  144. package/dist/eval/screen.js +159 -0
  145. package/dist/eval/screen.js.map +1 -0
  146. package/dist/eval/slope.d.ts +29 -0
  147. package/dist/eval/slope.js +46 -0
  148. package/dist/eval/slope.js.map +1 -0
  149. package/dist/eval/train-sequence.d.ts +35 -0
  150. package/dist/eval/train-sequence.js +59 -0
  151. package/dist/eval/train-sequence.js.map +1 -0
  152. package/dist/eval/wilson.d.ts +45 -0
  153. package/dist/eval/wilson.js +48 -0
  154. package/dist/eval/wilson.js.map +1 -0
  155. package/dist/events/types.d.ts +1 -1
  156. package/dist/events/types.js +1 -1
  157. package/dist/events/types.js.map +1 -1
  158. package/dist/harnesses/engine/canonical-json.js +5 -3
  159. package/dist/harnesses/engine/canonical-json.js.map +1 -1
  160. package/dist/harnesses/engine/engine.d.ts +24 -0
  161. package/dist/harnesses/engine/engine.js +72 -9
  162. package/dist/harnesses/engine/engine.js.map +1 -1
  163. package/dist/harnesses/engine/packaging.js +1 -1
  164. package/dist/harnesses/engine/packaging.js.map +1 -1
  165. package/dist/harnesses/engine/persistence.d.ts +17 -0
  166. package/dist/harnesses/engine/persistence.js +28 -0
  167. package/dist/harnesses/engine/persistence.js.map +1 -1
  168. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +1 -1
  169. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js +1 -1
  170. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -1
  171. package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
  172. package/dist/harnesses/impls/hermes-agent/adapter.js +8 -5
  173. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  174. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
  175. package/dist/harnesses/impls/hermes-agent/bootstrap.js +6 -1
  176. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  177. package/dist/harnesses/impls/hermes-agent/harness.d.ts +17 -3
  178. package/dist/harnesses/impls/hermes-agent/harness.js +68 -5
  179. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  180. package/dist/harnesses/impls/index.d.ts +2 -0
  181. package/dist/harnesses/impls/index.js +9 -0
  182. package/dist/harnesses/impls/index.js.map +1 -1
  183. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.d.ts +34 -0
  184. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js +111 -0
  185. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js.map +1 -0
  186. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.d.ts +24 -0
  187. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js +19 -0
  188. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js.map +1 -0
  189. package/dist/harnesses/impls/jinn-repo-evaluator/harness.d.ts +64 -0
  190. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js +125 -0
  191. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js.map +1 -0
  192. package/dist/harnesses/impls/jinn-repo-evaluator/repro.d.ts +32 -0
  193. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js +73 -0
  194. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js.map +1 -0
  195. package/dist/harnesses/impls/learner/adapters/claude-code.js +5 -0
  196. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  197. package/dist/harnesses/impls/learner/harness.d.ts +17 -1
  198. package/dist/harnesses/impls/learner/harness.js +51 -1
  199. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  200. package/dist/harnesses/impls/learner/harvest.d.ts +2 -0
  201. package/dist/harnesses/impls/learner/harvest.js +51 -1
  202. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  203. package/dist/harnesses/impls/learner/plugin-path.js +1 -0
  204. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  205. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +3 -1
  206. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  207. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
  208. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
  209. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  210. package/dist/harnesses/readiness-registry.d.ts +10 -0
  211. package/dist/harnesses/readiness-registry.js +13 -0
  212. package/dist/harnesses/readiness-registry.js.map +1 -1
  213. package/dist/harnesses/types.d.ts +14 -0
  214. package/dist/learner/revert-decision.d.ts +16 -1
  215. package/dist/learner/revert-decision.js +38 -18
  216. package/dist/learner/revert-decision.js.map +1 -1
  217. package/dist/learner/revert-stats.d.ts +14 -0
  218. package/dist/learner/revert-stats.js +42 -0
  219. package/dist/learner/revert-stats.js.map +1 -1
  220. package/dist/local-provider-url.d.ts +3 -0
  221. package/dist/local-provider-url.js +28 -0
  222. package/dist/local-provider-url.js.map +1 -0
  223. package/dist/main.js +94 -25
  224. package/dist/main.js.map +1 -1
  225. package/dist/mcp/operator-server.js +1 -1
  226. package/dist/mcp/operator-server.js.map +1 -1
  227. package/dist/mcp/server.js +1 -1
  228. package/dist/mcp/server.js.map +1 -1
  229. package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
  230. package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
  231. package/dist/plugins/learner/hooks/session-start +30 -1
  232. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
  233. package/dist/preflight/deployment-readiness.d.ts +147 -0
  234. package/dist/preflight/deployment-readiness.js +366 -0
  235. package/dist/preflight/deployment-readiness.js.map +1 -0
  236. package/dist/preflight/pidfile-liveness.d.ts +7 -1
  237. package/dist/preflight/pidfile-liveness.js +14 -0
  238. package/dist/preflight/pidfile-liveness.js.map +1 -1
  239. package/dist/rpc/transport.d.ts +43 -5
  240. package/dist/rpc/transport.js +131 -30
  241. package/dist/rpc/transport.js.map +1 -1
  242. package/dist/scripts/swe-rebench-v2-seed-pool.json +2 -1
  243. package/dist/solver-nets/registry.d.ts +19 -0
  244. package/dist/solver-nets/registry.js +95 -66
  245. package/dist/solver-nets/registry.js.map +1 -1
  246. package/dist/solver-types/_jinn-repo-pool.d.ts +27 -0
  247. package/dist/solver-types/_jinn-repo-pool.js +27 -0
  248. package/dist/solver-types/_jinn-repo-pool.js.map +1 -0
  249. package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
  250. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
  251. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
  252. package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
  253. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
  254. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
  255. package/dist/solver-types/_swe-rebench-v2-state.d.ts +9 -0
  256. package/dist/solver-types/_swe-rebench-v2-state.js +14 -0
  257. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
  258. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +30 -0
  259. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +40 -0
  260. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  261. package/dist/solver-types/index.js +2 -0
  262. package/dist/solver-types/index.js.map +1 -1
  263. package/dist/solver-types/jinn-repo-admit.d.ts +17 -0
  264. package/dist/solver-types/jinn-repo-admit.js +16 -0
  265. package/dist/solver-types/jinn-repo-admit.js.map +1 -0
  266. package/dist/solver-types/jinn-repo-auto.d.ts +60 -0
  267. package/dist/solver-types/jinn-repo-auto.js +163 -0
  268. package/dist/solver-types/jinn-repo-auto.js.map +1 -0
  269. package/dist/solver-types/jinn-repo-definition.d.ts +15 -0
  270. package/dist/solver-types/jinn-repo-definition.js +34 -0
  271. package/dist/solver-types/jinn-repo-definition.js.map +1 -0
  272. package/dist/solver-types/jinn-repo-extract.d.ts +16 -0
  273. package/dist/solver-types/jinn-repo-extract.js +32 -0
  274. package/dist/solver-types/jinn-repo-extract.js.map +1 -0
  275. package/dist/solver-types/jinn-repo.d.ts +21 -0
  276. package/dist/solver-types/jinn-repo.js +23 -0
  277. package/dist/solver-types/jinn-repo.js.map +1 -0
  278. package/dist/solver-types/learner-loop-test.js +1 -1
  279. package/dist/solver-types/learner-loop-test.js.map +1 -1
  280. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
  281. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
  282. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
  283. package/dist/solver-types/solver-type.d.ts +8 -0
  284. package/dist/solver-types/swe-rebench-v2.d.ts +2 -0
  285. package/dist/solver-types/swe-rebench-v2.js +115 -10
  286. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  287. package/dist/solvernets/launched-record-dispatcher.d.ts +5 -0
  288. package/dist/solvernets/launched-record-dispatcher.js +8 -1
  289. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  290. package/dist/solvernets/registry-client-erc8004.js +29 -37
  291. package/dist/solvernets/registry-client-erc8004.js.map +1 -1
  292. package/dist/solvernets/registry-client.d.ts +6 -0
  293. package/dist/solvernets/store.d.ts +1 -1
  294. package/dist/solvernets/store.js +8 -3
  295. package/dist/solvernets/store.js.map +1 -1
  296. package/dist/spend/ai-units-config.d.ts +10 -0
  297. package/dist/spend/ai-units-config.js +7 -1
  298. package/dist/spend/ai-units-config.js.map +1 -1
  299. package/dist/spend/ai-units.d.ts +51 -0
  300. package/dist/spend/ai-units.js +73 -0
  301. package/dist/spend/ai-units.js.map +1 -1
  302. package/dist/spend/record.js +12 -5
  303. package/dist/spend/record.js.map +1 -1
  304. package/dist/store/store.d.ts +91 -5
  305. package/dist/store/store.js +170 -7
  306. package/dist/store/store.js.map +1 -1
  307. package/dist/trajectory/harness-bundle-schema.d.ts +1 -1
  308. package/dist/trajectory/harness-bundle-schema.js +1 -1
  309. package/dist/trajectory/harness-bundle-schema.js.map +1 -1
  310. package/dist/trajectory/schema.d.ts +1 -1
  311. package/dist/trajectory/schema.js +1 -1
  312. package/dist/trajectory/schema.js.map +1 -1
  313. package/dist/trajectory/transcript-parsers/types.d.ts +1 -1
  314. package/dist/trajectory/transcript-parsers/types.js +1 -1
  315. package/dist/trajectory/transcript-parsers/types.js.map +1 -1
  316. package/dist/types/envelope.d.ts +1 -1
  317. package/dist/types/envelope.js +1 -1
  318. package/dist/types/envelope.js.map +1 -1
  319. package/dist/types/payloads/index.d.ts +1 -1
  320. package/dist/types/payloads/index.js +7 -1
  321. package/dist/types/payloads/index.js.map +1 -1
  322. package/dist/types/payloads/portfolio-v0.d.ts +1 -1
  323. package/dist/types/payloads/portfolio-v0.js +1 -1
  324. package/dist/types/payloads/portfolio-v0.js.map +1 -1
  325. package/dist/types/payloads/prediction-apy-v0.d.ts +1 -1
  326. package/dist/types/payloads/prediction-apy-v0.js +1 -1
  327. package/dist/types/payloads/prediction-apy-v0.js.map +1 -1
  328. package/dist/types/payloads/prediction-v0.d.ts +1 -1
  329. package/dist/types/payloads/prediction-v0.js +1 -1
  330. package/dist/types/payloads/prediction-v0.js.map +1 -1
  331. package/dist/types/portfolio.d.ts +1 -1
  332. package/dist/types/portfolio.js +1 -1
  333. package/dist/types/portfolio.js.map +1 -1
  334. package/dist/types/prediction-apy.d.ts +1 -1
  335. package/dist/types/prediction-apy.js +1 -1
  336. package/dist/types/prediction-apy.js.map +1 -1
  337. package/dist/types/prediction.d.ts +1 -1
  338. package/dist/types/prediction.js +1 -1
  339. package/dist/types/prediction.js.map +1 -1
  340. package/dist/types/session-provenance.d.ts +1 -1
  341. package/dist/types/session-provenance.js +1 -1
  342. package/dist/types/session-provenance.js.map +1 -1
  343. package/dist/types/task-document.d.ts +1 -1
  344. package/dist/types/task-document.js +1 -1
  345. package/dist/types/task-document.js.map +1 -1
  346. package/dist/types/task.d.ts +1 -1
  347. package/dist/types/task.js +1 -1
  348. package/dist/types/task.js.map +1 -1
  349. package/dist/types/window.d.ts +1 -1
  350. package/dist/types/window.js +1 -1
  351. package/dist/types/window.js.map +1 -1
  352. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +1 -1
  353. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +1 -1
  354. package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +3 -2
  355. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +49 -0
  356. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.d.ts +44 -0
  357. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.js +25 -0
  358. package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +1 -1
  359. package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +1 -1
  360. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.d.ts +38 -0
  361. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.js +22 -0
  362. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +1 -1
  363. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +1 -1
  364. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +1 -1
  365. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +1 -1
  366. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +109 -2
  367. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +26 -2
  368. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +1 -1
  369. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +1 -1
  370. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.d.ts +4 -0
  371. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.js +2 -0
  372. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +1 -1
  373. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -1
  374. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
  375. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
  376. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
  377. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
  378. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +1 -1
  379. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +1 -1
  380. package/dist/vendor/@jinn-network/sdk/package.json +9 -1
  381. package/docker-compose.yml +3 -2
  382. package/package.json +23 -20
  383. package/plugins/jinn-repo-runtime/.claude-plugin/plugin.json +5 -0
  384. package/plugins/jinn-repo-runtime/.codex-plugin/plugin.json +39 -0
  385. package/plugins/jinn-repo-runtime/README.md +27 -0
  386. package/plugins/jinn-repo-runtime/hooks/hooks.json +16 -0
  387. package/plugins/jinn-repo-runtime/hooks/session-start +73 -0
  388. package/plugins/jinn-repo-runtime/jinn.plugin.json +11 -0
  389. package/plugins/jinn-repo-runtime/skills/task/SKILL.md +92 -0
  390. package/plugins/learner/.claude-plugin/plugin.json +1 -1
  391. package/plugins/learner/.codex-plugin/plugin.json +1 -1
  392. package/plugins/learner/hooks/session-start +30 -1
  393. package/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
  394. package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
  395. package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
  396. package/dist/dashboard/assets/index-CzKxvMcU.css +0 -32
  397. package/dist/dashboard/assets/index-yVemxHot.js +0 -351
@@ -0,0 +1,87 @@
1
+ /**
2
+ * `jinn eval <slate-version> --checkpoint <cid>` — run a held-out slate against
3
+ * a checkpoint in frozen mode and emit a resolved-rate comparison vs the parent
4
+ * checkpoint with a Wilson confidence interval (issue #818).
5
+ *
6
+ * The command is a thin shell over `runEval` (orchestrator.ts): a pure
7
+ * `createEvalCommand(deps)` factory tested directly, plus a default
8
+ * `CommandModule` that wires production deps. The orchestration itself
9
+ * (slate load -> resolve tasks -> runEval) is the injected `runPipeline` seam;
10
+ * the live Docker/IPFS wiring is completed in #819's thin slice.
11
+ *
12
+ * Spec: docs/superpowers/specs/2026-05-06-agent-harness-solvernet-design.md
13
+ */
14
+ import type { CommandModule } from '../command.js';
15
+ import { type HarnessCheckpointManifest } from '../../vendor/@jinn-network/sdk/dist/checkpoint.js';
16
+ import { type EvalRunResult, type RunHarnessOnceForEval } from '../../eval/orchestrator.js';
17
+ import { loadConfig } from '../../config.js';
18
+ import type { RuntimePlugin } from '../../harnesses/types.js';
19
+ import { type ClaudeCodeHarnessAdapterConfig } from '../../harnesses/impls/learner/adapters/claude-code.js';
20
+ /**
21
+ * Which evaluation backend a solverType dispatches to. `jinn-repo` grades
22
+ * candidate patches against real merged-PR fixtures in this repo (repo-native);
23
+ * everything else uses the swe-rebench-v2 Docker grading path (production).
24
+ */
25
+ export type EvalBackend = {
26
+ kind: 'swe-rebench-v2';
27
+ } | {
28
+ kind: 'jinn-repo';
29
+ };
30
+ export declare function selectEvalBackend(solverType: string): EvalBackend;
31
+ export interface RunPipelineArgs {
32
+ checkpointCid: string;
33
+ checkpointManifest: HarnessCheckpointManifest;
34
+ solverType: string;
35
+ slateVersion: string;
36
+ parentCheckpointCid: string;
37
+ /** Config file path (`--config`); production wiring loads dbPath/engine from it. */
38
+ configPath?: string;
39
+ /**
40
+ * Local impl-state directory to run the frozen slate against
41
+ * (`--impl-state-dir`). Defaults to the daemon's
42
+ * `engine.implStateDirRoot/<implName>`. See PRODUCTION_DEPS below.
43
+ */
44
+ implStateDir?: string;
45
+ }
46
+ export interface EvalCommandDeps {
47
+ /** Resolve a checkpoint manifest from its CID (production: IPFS fetch + schema parse). */
48
+ fetchManifest(cid: string): Promise<HarnessCheckpointManifest>;
49
+ /** Load the slate, resolve its tasks, and run the frozen-mode orchestrator. */
50
+ runPipeline(args: RunPipelineArgs): Promise<EvalRunResult>;
51
+ }
52
+ export declare function createEvalCommand(deps: EvalCommandDeps): CommandModule;
53
+ /**
54
+ * Keyless corpus endpoints for the learner adapter's bundled MCP server (record
55
+ * search / artifact inspection). Mirrors `main.ts`'s `corpusEnv` assembly so the
56
+ * eval agent runtime matches the daemon's. Sources every field from
57
+ * `loadConfig()` — there is no bootstrap state in the CLI path, so the identity
58
+ * registry falls back to the chain default for the resolved network.
59
+ */
60
+ export declare function corpusEnvFromConfig(config: ReturnType<typeof loadConfig>): NonNullable<ClaudeCodeHarnessAdapterConfig['corpusEnv']> | undefined;
61
+ /**
62
+ * Resolve the local frozen impl-state directory for the checkpoint. There is
63
+ * no production IPFS round-trip for a checkpoint's `implStateDir` (the
64
+ * checkpoint publish/install verbs are factory-only; the pin/fetch format is a
65
+ * future verification layer — spec §6.4, "Layer 4"). The realistic operator
66
+ * workflow (#824) evaluates the operator's OWN frozen state, which already
67
+ * lives on disk. Mirrors `codedigest-revert-check` (`--impl-state-dir`).
68
+ */
69
+ export declare function resolveLocalImplStateDir(explicit: string | undefined, implName: string, config: ReturnType<typeof loadConfig>): string;
70
+ /**
71
+ * Production `runHarnessOnce` for the eval orchestrator. Delegates to the
72
+ * shared {@link runHarnessForEval} helper, which builds the FULL
73
+ * daemon-equivalent HarnessContext — including `solverPluginRoots` from the
74
+ * SolverNet's `runtimePlugins` — so the agent gets the bundled MCP server
75
+ * (`submit_typed_payload`) and can produce a gradeable patch. The legacy
76
+ * hand-rolled body ran the agent WITHOUT plugins, leaving every task
77
+ * unscorable; this factory closes over the resolved `solverType` +
78
+ * `runtimePlugins` and surfaces the seam the orchestrator already drives.
79
+ */
80
+ export declare function makeEvalRunHarnessOnce(opts: {
81
+ solverType: string;
82
+ runtimePlugins: RuntimePlugin[];
83
+ solverNetName?: string;
84
+ model?: string;
85
+ }): RunHarnessOnceForEval;
86
+ declare const command: CommandModule;
87
+ export default command;
@@ -0,0 +1,481 @@
1
+ /**
2
+ * `jinn eval <slate-version> --checkpoint <cid>` — run a held-out slate against
3
+ * a checkpoint in frozen mode and emit a resolved-rate comparison vs the parent
4
+ * checkpoint with a Wilson confidence interval (issue #818).
5
+ *
6
+ * The command is a thin shell over `runEval` (orchestrator.ts): a pure
7
+ * `createEvalCommand(deps)` factory tested directly, plus a default
8
+ * `CommandModule` that wires production deps. The orchestration itself
9
+ * (slate load -> resolve tasks -> runEval) is the injected `runPipeline` seam;
10
+ * the live Docker/IPFS wiring is completed in #819's thin slice.
11
+ *
12
+ * Spec: docs/superpowers/specs/2026-05-06-agent-harness-solvernet-design.md
13
+ */
14
+ import { existsSync } from 'node:fs';
15
+ import { join } from 'node:path';
16
+ import { homedir } from 'node:os';
17
+ import { parseCommandArgs, COMMON_FLAGS } from '../command.js';
18
+ import { emitEnvelope } from '../../errors/envelope.js';
19
+ import { HarnessCheckpointManifestSchema, } from '../../vendor/@jinn-network/sdk/dist/checkpoint.js';
20
+ import { runEval, } from '../../eval/orchestrator.js';
21
+ import { resolveSlateTasks } from '../../eval/resolve-slate-tasks.js';
22
+ import { loadConfig } from '../../config.js';
23
+ import { Store } from '../../store/store.js';
24
+ import { fetchFromIpfs } from '../../adapters/mech/ipfs.js';
25
+ import { resolveRuntimePluginsForSolverType, runHarnessForEval, } from '../../eval/eval-harness-run.js';
26
+ import { DEFAULT_EXECUTION_DISCOVERY_FROM_BLOCK } from '../../corpus/onchain-query.js';
27
+ import { solverTypeFromJoinedContract } from '../../solver-nets/registry.js';
28
+ import { loadHeldOutSlate } from '../../solver-types/_swe-rebench-v2-held-out-slate.js';
29
+ import { loadSweRebenchV2Pool, defaultStateDir } from '../../solver-types/swe-rebench-v2.js';
30
+ import { PoolCacheStore, loadPoolWithCacheFallback } from '../../solver-types/_swe-rebench-v2-pool-cache.js';
31
+ import { LearnerHarness } from '../../harnesses/impls/learner/harness.js';
32
+ import { ClaudeCodeHarnessAdapter, } from '../../harnesses/impls/learner/adapters/claude-code.js';
33
+ import { CodexCodeHarnessAdapter } from '../../harnesses/impls/learner/adapters/codex-code.js';
34
+ import { CODEX_HARNESS, canonicalHarnessName, harnessStateDirName } from '../../harnesses/names.js';
35
+ import { SweRebenchV2Evaluator } from '../../harnesses/impls/swe-rebench-v2-evaluator/index.js';
36
+ import { HttpHfFetcher } from '../../harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js';
37
+ import { PythonEvalRunner } from '../../harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js';
38
+ import { readEnabledState } from '../../harnesses/impls/swe-rebench-v2-evaluator/harness.js';
39
+ import { JinnRepoEvaluator } from '../../harnesses/impls/jinn-repo-evaluator/evaluator.js';
40
+ import { loadJinnRepoPool, resolveJinnRepoSlate, solverView, } from '../../solver-types/_jinn-repo-pool.js';
41
+ export function selectEvalBackend(solverType) {
42
+ return solverType === 'jinn-repo' ? { kind: 'jinn-repo' } : { kind: 'swe-rebench-v2' };
43
+ }
44
+ const EXAMPLE = 'jinn eval v1 --checkpoint <cid> [--parent <cid>] [--solver-type swe-rebench-v2] [--json|--human]';
45
+ export function createEvalCommand(deps) {
46
+ return {
47
+ name: 'eval',
48
+ summary: 'Run a held-out slate against a checkpoint and compare its resolved rate vs the parent (#818)',
49
+ helpText: `Usage:
50
+ ${EXAMPLE}
51
+
52
+ Runs the held-out task slate for <slate-version> against the checkpoint in
53
+ FROZEN mode (the freeze-fence holds — no implStateDir mutation), writes per-task
54
+ pass/fail, and emits a resolved-rate comparison vs the parent checkpoint with a
55
+ Wilson confidence interval.
56
+
57
+ Arguments:
58
+ <slate-version> Held-out slate version, e.g. v1
59
+
60
+ Options:
61
+ --checkpoint <cid> Checkpoint to evaluate (required)
62
+ --parent <cid> Parent checkpoint to compare against
63
+ (default: manifest.parentCheckpointCid)
64
+ --solver-type <type> SolverType (default: swe-rebench-v2)
65
+ --impl-state-dir <dir> Local frozen impl-state to evaluate
66
+ (default: engine.implStateDirRoot/<implName> from config)
67
+ --config <path> Config file (default: ~/.jinn-client/config.json)
68
+ --json Emit JSON (perTask[] + comparison{child,parent,delta,verdict})
69
+ --human Emit a human-readable summary line
70
+
71
+ Scores are only comparable WITHIN a slate version. The parent must already have
72
+ been evaluated against the same slate version, else the command fails loud.`,
73
+ async run(ctx) {
74
+ let parsed;
75
+ try {
76
+ parsed = parseCommandArgs(ctx.argv, {
77
+ ...COMMON_FLAGS,
78
+ checkpoint: { type: 'string' },
79
+ parent: { type: 'string' },
80
+ 'solver-type': { type: 'string', default: 'swe-rebench-v2' },
81
+ 'impl-state-dir': { type: 'string' },
82
+ });
83
+ }
84
+ catch (err) {
85
+ emitEnvelope({
86
+ code: 'invalid_invocation',
87
+ message: err instanceof Error ? err.message : String(err),
88
+ exampleCli: EXAMPLE,
89
+ details: { field: 'flags' },
90
+ }, { writer: ctx.writer, exit: ctx.exit });
91
+ return;
92
+ }
93
+ const slateVersion = parsed.positionals[0];
94
+ const checkpointCid = parsed.values.checkpoint;
95
+ if (!slateVersion) {
96
+ emitEnvelope({ code: 'invalid_invocation', message: '<slate-version> positional is required', exampleCli: EXAMPLE, details: { field: 'slate-version' } }, { writer: ctx.writer, exit: ctx.exit });
97
+ return;
98
+ }
99
+ if (!checkpointCid) {
100
+ emitEnvelope({ code: 'invalid_invocation', message: '--checkpoint <cid> is required', exampleCli: EXAMPLE, details: { field: 'checkpoint' } }, { writer: ctx.writer, exit: ctx.exit });
101
+ return;
102
+ }
103
+ const manifest = await deps.fetchManifest(checkpointCid);
104
+ const parentCheckpointCid = parsed.values.parent ?? manifest.parentCheckpointCid;
105
+ if (!parentCheckpointCid) {
106
+ emitEnvelope({
107
+ code: 'invalid_invocation',
108
+ message: 'no parent checkpoint: manifest.parentCheckpointCid is null and --parent was not given',
109
+ exampleCli: EXAMPLE,
110
+ details: { field: 'parent' },
111
+ }, { writer: ctx.writer, exit: ctx.exit });
112
+ return;
113
+ }
114
+ const result = await deps.runPipeline({
115
+ checkpointCid,
116
+ checkpointManifest: manifest,
117
+ solverType: parsed.values['solver-type'] ?? 'swe-rebench-v2',
118
+ slateVersion,
119
+ parentCheckpointCid,
120
+ ...(parsed.values.config ? { configPath: parsed.values.config } : {}),
121
+ ...(parsed.values['impl-state-dir'] ? { implStateDir: parsed.values['impl-state-dir'] } : {}),
122
+ });
123
+ if (parsed.values.human) {
124
+ ctx.writer.write(renderHuman(result) + '\n');
125
+ }
126
+ else {
127
+ ctx.writer.write(JSON.stringify(result) + '\n');
128
+ }
129
+ },
130
+ };
131
+ }
132
+ function pct(p) {
133
+ return `${(p * 100).toFixed(1)}%`;
134
+ }
135
+ function ci(c) {
136
+ return `[${(c.lo * 100).toFixed(1)}, ${(c.hi * 100).toFixed(1)}]`;
137
+ }
138
+ function renderHuman(result) {
139
+ const { comparison: c } = result;
140
+ const passed = result.perTask.filter((t) => t.passed === true).length;
141
+ const scorable = result.perTask.filter((t) => !t.unscorable).length;
142
+ const unscorable = result.perTask.filter((t) => t.unscorable).length;
143
+ const deltaPp = (c.delta * 100).toFixed(1);
144
+ const sign = c.delta >= 0 ? '+' : '';
145
+ const verdict = c.verdict === 'trustworthy' ? 'trustworthy' : 'within noise';
146
+ const tail = unscorable > 0 ? ` (${unscorable} unscorable, excluded)` : '';
147
+ // Provenance (Legibility): the graded artifact is the operator's LOCAL frozen
148
+ // impl-state, verified == the named checkpoint — not a re-fetched checkpoint state.
149
+ const provenance = `evaluated local impl-state at ${result.evaluated.codeDigest}, verified == checkpoint`;
150
+ // Paired (matched-design) verdict — the correct, higher-power test for the
151
+ // same-slate before/after design; reported alongside the conservative marginal
152
+ // verdict above (DR-2026-06-02-b §2a).
153
+ const p = result.paired;
154
+ const pairedLine = p
155
+ ? `\npaired (McNemar): ${p.improved}↑ ${p.regressed}↓ of ${p.pairs} matched pairs · ` +
156
+ `p=${p.pValue.toFixed(3)} (${p.verdict === 'trustworthy' ? 'trustworthy' : 'within noise'})`
157
+ : '';
158
+ return (`resolved ${passed}/${scorable} = ${pct(c.child.p)} ${ci(c.child)} ` +
159
+ `vs parent ${pct(c.parent.p)} ${ci(c.parent)} · Δ ${sign}${deltaPp}pp (${verdict})${tail}` +
160
+ pairedLine +
161
+ '\n' +
162
+ provenance);
163
+ }
164
+ const DEFAULT_CONFIG_PATH = join(homedir(), '.jinn-client', 'config.json');
165
+ /** Default impl-state root when config does not set `engine.implStateDirRoot`. */
166
+ function implStateDirRoot(config) {
167
+ return config.engine?.implStateDirRoot ?? join(homedir(), '.jinn-client', 'engine', 'impl-state');
168
+ }
169
+ /**
170
+ * Keyless corpus endpoints for the learner adapter's bundled MCP server (record
171
+ * search / artifact inspection). Mirrors `main.ts`'s `corpusEnv` assembly so the
172
+ * eval agent runtime matches the daemon's. Sources every field from
173
+ * `loadConfig()` — there is no bootstrap state in the CLI path, so the identity
174
+ * registry falls back to the chain default for the resolved network.
175
+ */
176
+ export function corpusEnvFromConfig(config) {
177
+ const chainId = config.network === 'testnet' ? 84532 : 8453;
178
+ const fromBlock = Number(DEFAULT_EXECUTION_DISCOVERY_FROM_BLOCK[chainId] ?? 0n);
179
+ const discoveryUrl = config.discovery?.url?.trim() || '';
180
+ const identityRegistryAddress = config.identityRegistryAddress;
181
+ if (!discoveryUrl && !identityRegistryAddress)
182
+ return undefined;
183
+ return {
184
+ ...(discoveryUrl ? { discoveryUrl } : {}),
185
+ ipfsGatewayUrl: config.ipfsGatewayUrl,
186
+ rpcUrl: config.rpcUrl,
187
+ chainId,
188
+ ...(identityRegistryAddress ? { identityRegistryAddress } : {}),
189
+ ...(fromBlock > 0 ? { fromBlock } : {}),
190
+ };
191
+ }
192
+ /**
193
+ * Build the production `Harness` for a checkpoint. swe-rebench-v2 checkpoints
194
+ * are produced by the learner harness (claude-code or codex variant); the
195
+ * manifest's `harnessPackage.implName` selects which. Constructed standalone
196
+ * (no funded wallet) — a frozen-mode eval run never touches the chain; it only
197
+ * runs the agent against the local impl-state and harvests the diff.
198
+ *
199
+ * Mirrors `buildHarnesses` (harnesses/impls/index.ts): the adapter MUST receive
200
+ * `corpusEnv` and `daemonApiToken` (alongside storePath/daemonApiUrl) so the
201
+ * agent runtime matches the daemon's — otherwise the bundled MCP surface
202
+ * degrades and the agent cannot produce a gradeable patch.
203
+ */
204
+ function buildEvalHarness(implName, config) {
205
+ const canonical = canonicalHarnessName(implName);
206
+ const daemonApiToken = process.env['DAEMON_API_TOKEN']?.trim();
207
+ const corpusEnv = corpusEnvFromConfig(config);
208
+ const common = {
209
+ claudePath: config.claudePath ?? 'claude',
210
+ claudeModel: config.claudeModel,
211
+ storePath: config.dbPath,
212
+ daemonApiUrl: `http://127.0.0.1:${config.apiPort}`,
213
+ ...(daemonApiToken ? { daemonApiToken } : {}),
214
+ ...(corpusEnv ? { corpusEnv } : {}),
215
+ };
216
+ if (canonical === CODEX_HARNESS) {
217
+ return new LearnerHarness({
218
+ name: CODEX_HARNESS,
219
+ adapter: new CodexCodeHarnessAdapter({
220
+ ...common,
221
+ ...(config.codexPath !== undefined ? { codexPath: config.codexPath } : {}),
222
+ }),
223
+ claudePath: common.claudePath,
224
+ ...(config.codexPath !== undefined ? { codexPath: config.codexPath } : {}),
225
+ });
226
+ }
227
+ // Default: claude-code learner (LearnerHarness's own default name).
228
+ return new LearnerHarness({
229
+ adapter: new ClaudeCodeHarnessAdapter(common),
230
+ claudePath: common.claudePath,
231
+ });
232
+ }
233
+ /**
234
+ * Resolve the local frozen impl-state directory for the checkpoint. There is
235
+ * no production IPFS round-trip for a checkpoint's `implStateDir` (the
236
+ * checkpoint publish/install verbs are factory-only; the pin/fetch format is a
237
+ * future verification layer — spec §6.4, "Layer 4"). The realistic operator
238
+ * workflow (#824) evaluates the operator's OWN frozen state, which already
239
+ * lives on disk. Mirrors `codedigest-revert-check` (`--impl-state-dir`).
240
+ */
241
+ export function resolveLocalImplStateDir(explicit, implName, config) {
242
+ if (explicit)
243
+ return explicit;
244
+ // `implName` comes from the remote IPFS manifest (only `z.string().min(1)`),
245
+ // so constrain it before the path join — an unconstrained value like
246
+ // "../../.." would traverse out of engine.implStateDirRoot.
247
+ if (!/^[a-z0-9-]+$/.test(implName)) {
248
+ throw new Error(`invalid harness implName ${JSON.stringify(implName)} in checkpoint manifest: ` +
249
+ `expected /^[a-z0-9-]+$/ (refusing to derive an impl-state path that could ` +
250
+ `traverse outside engine.implStateDirRoot)`);
251
+ }
252
+ return join(implStateDirRoot(config), harnessStateDirName(implName));
253
+ }
254
+ /**
255
+ * Production `runHarnessOnce` for the eval orchestrator. Delegates to the
256
+ * shared {@link runHarnessForEval} helper, which builds the FULL
257
+ * daemon-equivalent HarnessContext — including `solverPluginRoots` from the
258
+ * SolverNet's `runtimePlugins` — so the agent gets the bundled MCP server
259
+ * (`submit_typed_payload`) and can produce a gradeable patch. The legacy
260
+ * hand-rolled body ran the agent WITHOUT plugins, leaving every task
261
+ * unscorable; this factory closes over the resolved `solverType` +
262
+ * `runtimePlugins` and surfaces the seam the orchestrator already drives.
263
+ */
264
+ export function makeEvalRunHarnessOnce(opts) {
265
+ return async ({ harness, implStateDir, mode, task }) => {
266
+ const resolvedTask = (task ?? {
267
+ id: 'eval-task',
268
+ description: '',
269
+ role: 'restoration',
270
+ window: { startTs: 0, endTs: Date.now() + 3_600_000 },
271
+ });
272
+ return runHarnessForEval({
273
+ harness,
274
+ task: resolvedTask,
275
+ solverType: opts.solverType,
276
+ runtimePlugins: opts.runtimePlugins,
277
+ implStateDir,
278
+ mode,
279
+ ...(opts.solverNetName ? { solverNetName: opts.solverNetName } : {}),
280
+ ...(opts.model ? { model: opts.model } : {}),
281
+ });
282
+ };
283
+ }
284
+ /**
285
+ * Resolve slate `instance_id`s to `{ task, row }` pairs. The slate stores only
286
+ * ids; the HF dataset+split per instance comes from the pool (cached, with a
287
+ * HF fallback — mirrors the evaluator harness's pool path). Instances are
288
+ * grouped by `(hf_dataset, hf_split)` so each group's row scan hits the right
289
+ * partition.
290
+ */
291
+ async function resolveSlateAgainstPool(args) {
292
+ const cacheResult = await loadPoolWithCacheFallback({
293
+ loadPool: loadSweRebenchV2Pool,
294
+ cache: new PoolCacheStore({ stateDir: args.stateDir }),
295
+ currentPool: [],
296
+ });
297
+ const pool = cacheResult.pool;
298
+ if (pool.length === 0) {
299
+ throw new Error(`cannot resolve held-out slate: SWE-rebench v2 pool is empty` +
300
+ (cacheResult.error ? ` (${cacheResult.error.message})` : ''));
301
+ }
302
+ const byId = new Map(pool.map((t) => [t.instance_id, t]));
303
+ // Group requested ids by (dataset, split), carrying the real pool task so the
304
+ // agent run gets the true problem_statement/base_commit (H1).
305
+ const groups = new Map();
306
+ for (const id of args.instanceIds) {
307
+ const poolTask = byId.get(id);
308
+ if (!poolTask) {
309
+ throw new Error(`held-out slate instance ${id} not present in the current pool`);
310
+ }
311
+ const key = `${poolTask.hf_dataset} ${poolTask.hf_split}`;
312
+ const group = groups.get(key) ?? { hf_dataset: poolTask.hf_dataset, hf_split: poolTask.hf_split, poolTasks: [] };
313
+ group.poolTasks.push(poolTask);
314
+ groups.set(key, group);
315
+ }
316
+ const out = [];
317
+ for (const group of groups.values()) {
318
+ const resolved = await resolveSlateTasks({
319
+ poolTasks: group.poolTasks,
320
+ hf_dataset: group.hf_dataset,
321
+ hf_split: group.hf_split,
322
+ fetcher: args.fetcher,
323
+ });
324
+ out.push(...resolved);
325
+ }
326
+ return out;
327
+ }
328
+ /**
329
+ * Adapt {@link JinnRepoEvaluator} onto the orchestrator's {@link SolutionEvaluator}.
330
+ * The orchestrator calls `grade({ task, solutionPayload, row })` and consumes a
331
+ * `{ passed_match, test_log }` verdict, signalling unscorable by THROWING (its
332
+ * catch records `unscorable`). The repo-native evaluator instead RETURNS
333
+ * `{ passed, unscorable, logExcerpt }`, so this adapter:
334
+ * - feeds the full pool item (`task`, which carries `gold_tests`) + the patch,
335
+ * - throws when the run is unscorable (preserving the orchestrator's contract:
336
+ * unscorable is never a graded FAIL — #476),
337
+ * - otherwise maps `passed` → `passed_match` and `logExcerpt` → `test_log`.
338
+ * `row` is unused (repo-native grading has no HF row).
339
+ */
340
+ function jinnRepoEvaluatorAdapter(evaluator) {
341
+ return {
342
+ async grade({ task, solutionPayload }) {
343
+ const verdict = await evaluator.grade({
344
+ task: task,
345
+ solution: { patch: solutionPayload.patch },
346
+ });
347
+ if (verdict.unscorable || verdict.passed === null) {
348
+ // Unscorable: the orchestrator records this instance as excluded, never
349
+ // as a graded fail. Throwing routes it through the orchestrator's
350
+ // unscorable catch (matches the swe-rebench evaluator's throw contract).
351
+ throw new Error(`jinn-repo eval unscorable: ${verdict.logExcerpt}`);
352
+ }
353
+ return { passed_match: verdict.passed, test_log: verdict.logExcerpt };
354
+ },
355
+ };
356
+ }
357
+ /**
358
+ * Build the jinn-repo `slateInstances` for the orchestrator. LEAK-CONTROL: the
359
+ * solver harness receives ONLY `solverView(item)` (no `gold_tests`, no
360
+ * `solution_patch`); the evaluator receives the full pool item via `gradeTask`.
361
+ */
362
+ function jinnRepoSlateInstances(items) {
363
+ return items.map((item) => {
364
+ const view = solverView(item);
365
+ return {
366
+ instance_id: item.instance_id,
367
+ // Solver-visible task: solverView ONLY — gold tests + reference solution
368
+ // never cross this boundary.
369
+ harnessTask: {
370
+ id: item.instance_id,
371
+ description: item.problem_statement,
372
+ role: 'restoration',
373
+ solverType: 'jinn-repo.v1',
374
+ spec: view,
375
+ window: { startTs: 0, endTs: Date.now() + 3_600_000 },
376
+ },
377
+ // Grade-side: the FULL pool item (the evaluator needs gold_tests).
378
+ gradeTask: item,
379
+ solutionSchemaVersion: 'jinn-repo-solution.v1',
380
+ };
381
+ });
382
+ }
383
+ const PRODUCTION_DEPS = {
384
+ async fetchManifest(cid) {
385
+ const config = loadConfig(DEFAULT_CONFIG_PATH);
386
+ const raw = await fetchFromIpfs(config.ipfsGatewayUrl, cid);
387
+ return HarnessCheckpointManifestSchema.parse(raw);
388
+ },
389
+ async runPipeline(args) {
390
+ const config = loadConfig(args.configPath ?? DEFAULT_CONFIG_PATH);
391
+ const manifest = args.checkpointManifest;
392
+ const implName = manifest.harnessPackage.implName;
393
+ // Frozen impl-state to evaluate (local; see resolveLocalImplStateDir).
394
+ const implStateDir = resolveLocalImplStateDir(args.implStateDir, implName, config);
395
+ if (!existsSync(implStateDir)) {
396
+ throw new Error(`impl-state directory not found: ${implStateDir} — ` +
397
+ `pass --impl-state-dir <dir> or set engine.implStateDirRoot in config`);
398
+ }
399
+ // Slate (instance ids) is backend-agnostic; how those ids resolve to
400
+ // run/grade payloads and which evaluator grades them is backend-specific.
401
+ const slate = loadHeldOutSlate(`${args.solverType}.v1`, args.slateVersion);
402
+ const backend = selectEvalBackend(args.solverType);
403
+ // Resolve the per-backend run/grade inputs:
404
+ // - tasksWithRows → swe-rebench-v2 default mapping (HF rows, Docker grade)
405
+ // - slateInstances → repo-native leak-controlled instances (solverView only)
406
+ let tasksWithRows;
407
+ let slateInstances;
408
+ let evaluator;
409
+ if (backend.kind === 'jinn-repo') {
410
+ // Repo-native: resolve the slate ids against the LOCAL jinn-repo pool. The
411
+ // evaluator (JinnRepoEvaluator) clones this repo @ base_commit, applies the
412
+ // candidate patch, overwrites gold tests, and runs the PR's own test.
413
+ const items = resolveJinnRepoSlate(loadJinnRepoPool(), slate.instanceIds);
414
+ slateInstances = jinnRepoSlateInstances(items);
415
+ evaluator = jinnRepoEvaluatorAdapter(new JinnRepoEvaluator());
416
+ }
417
+ else {
418
+ // swe-rebench-v2 (production): real HF fetcher; per-instance dataset/split
419
+ // from the pool.
420
+ const stateDir = process.env['JINN_SWE_REBENCH_V2_STATE_DIR'] ?? defaultStateDir();
421
+ const fetcher = new HttpHfFetcher();
422
+ tasksWithRows = await resolveSlateAgainstPool({
423
+ instanceIds: slate.instanceIds,
424
+ fetcher,
425
+ stateDir,
426
+ });
427
+ // Evaluator: the SWE-rebench v2 grading library — same construction the
428
+ // evaluator harness uses internally (HttpHfFetcher + PythonEvalRunner over
429
+ // the cloned upstream repo). Requires `jinn harnesses enable
430
+ // swe-rebench-v2-evaluator` to have cloned upstream + validated Docker.
431
+ const evaluatorImplStateDir = join(implStateDirRoot(config), 'swe-rebench-v2-evaluator');
432
+ const enabled = readEnabledState(evaluatorImplStateDir);
433
+ if (!enabled) {
434
+ throw new Error(`swe-rebench-v2 evaluator not enabled (no state at ${evaluatorImplStateDir}). ` +
435
+ `Run \`jinn harnesses enable swe-rebench-v2-evaluator\` first.`);
436
+ }
437
+ evaluator = new SweRebenchV2Evaluator({
438
+ fetcher,
439
+ runner: new PythonEvalRunner({ upstreamRepoDir: enabled.upstreamRepoDir }),
440
+ });
441
+ }
442
+ // The orchestrator runs each slate task under the full dispatch solverType
443
+ // (`<solver-type>.v1`). Resolve the SAME SolverNet runtime plugins the
444
+ // daemon would (fails LOUD if the operator hasn't joined the SolverNet /
445
+ // installed its plugins) — these carry the bundled MCP server the agent
446
+ // needs to emit a gradeable patch.
447
+ const dispatchSolverType = `${args.solverType}.v1`;
448
+ const runtimePlugins = await resolveRuntimePluginsForSolverType(dispatchSolverType, config.joinedSolverNets);
449
+ const joinedNet = Object.values(config.joinedSolverNets ?? {}).find((net) => solverTypeFromJoinedContract(net) === dispatchSolverType);
450
+ const harness = buildEvalHarness(implName, config);
451
+ const store = new Store(config.dbPath);
452
+ try {
453
+ return await runEval({
454
+ checkpointManifest: manifest,
455
+ checkpointCid: args.checkpointCid,
456
+ slate,
457
+ ...(slateInstances ? { slateInstances } : { tasksWithRows: tasksWithRows ?? [] }),
458
+ parentCheckpointCid: args.parentCheckpointCid,
459
+ implStateDir,
460
+ deps: {
461
+ harness,
462
+ fetchImplStateDirToLocal: async (_cid, targetDir) => targetDir,
463
+ evaluator,
464
+ runHarnessOnce: makeEvalRunHarnessOnce({
465
+ solverType: dispatchSolverType,
466
+ runtimePlugins,
467
+ ...(joinedNet?.name ? { solverNetName: joinedNet.name } : {}),
468
+ ...(config.claudeModel ? { model: config.claudeModel } : {}),
469
+ }),
470
+ store,
471
+ },
472
+ });
473
+ }
474
+ finally {
475
+ store.close?.();
476
+ }
477
+ },
478
+ };
479
+ const command = createEvalCommand(PRODUCTION_DEPS);
480
+ export default command;
481
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../../src/cli/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import type { CommandModule } from '../command.js';
2
2
  import { gatherIntrospectionRaw as defaultGatherIntrospectionRaw } from '../introspection-context.js';
3
3
  import { assembleRewardsV1 as defaultAssembleRewardsV1 } from '../../api/rewards-build.js';
4
+ import { sumPendingStakingRewards as defaultSumPendingStakingRewards } from '../../api/gather-status.js';
4
5
  export interface RewardsDeps {
5
6
  gatherIntrospectionRaw: typeof defaultGatherIntrospectionRaw;
6
7
  assembleRewardsV1: typeof defaultAssembleRewardsV1;
8
+ sumPendingStakingRewards: typeof defaultSumPendingStakingRewards;
7
9
  }
8
10
  export declare function createRewardsCommand(deps?: RewardsDeps): CommandModule;
9
11
  declare const command: CommandModule;