@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
@@ -26,12 +26,14 @@
26
26
  */
27
27
  import { type FallbackTransport, type Transport } from 'viem';
28
28
  /**
29
- * Hard cap on the number of providers in a single fallback chain. Four covers
30
- * the "operator paid primary + public publicnode + public sepolia.base.org +
31
- * Tenderly slot-3" shape from the issue; beyond that the boot probe takes too
32
- * long and slot 5+ is almost always copy-paste noise.
29
+ * Hard cap on the number of providers in a single fallback chain. Six covers
30
+ * the "5 vetted free defaults + 1 operator-prepended paid primary" shape: a
31
+ * chain that ships 5 distinct free providers per supported chain (#911) and
32
+ * still leaves one slot for an operator's paid primary to survive
33
+ * dedup-then-cap. Beyond that the boot probe takes too long and slot 7+ is
34
+ * almost always copy-paste noise.
33
35
  */
34
- export declare const MAX_RPC_CHAIN_LENGTH = 4;
36
+ export declare const MAX_RPC_CHAIN_LENGTH = 6;
35
37
  export interface ParseRpcUrlsOptions {
36
38
  /** Logger used to emit the "capped" warning. Defaults to `console.error`. */
37
39
  log?: (message: string) => void;
@@ -79,6 +81,31 @@ export declare class AllRpcsFailedError extends Error {
79
81
  * viem's `buildRequest` re-wrap pass).
80
82
  */
81
83
  export declare function isViemShouldThrowError(err: unknown): boolean;
84
+ /**
85
+ * Default cooldown applied to a slot that returns a quota / rate-limit error
86
+ * (#835). After this window the demoted slot becomes eligible again rather than
87
+ * being permanently disabled (AC2), so a transient 429 / monthly-quota blip
88
+ * never strands an operator on a degraded provider for the rest of the process.
89
+ */
90
+ export declare const DEFAULT_RPC_COOLDOWN_MS = 60000;
91
+ /**
92
+ * Detect quota / rate-limit errors from an RPC provider (#835). Unlike
93
+ * {@link isViemShouldThrowError} (which marks EVM/wallet-level signals that must
94
+ * NOT trigger fallback), a quota error means the *slot* is temporarily unusable
95
+ * and should be demoted behind healthy slots for a cooldown window. Walks the
96
+ * cause chain (cycle-safe, mirroring `isViemShouldThrowError`) and matches on:
97
+ * - HTTP `status === 429` (the `http()` transport's `HttpRequestError`);
98
+ * - JSON-RPC `code === LimitExceededRpcError.code` (-32005);
99
+ * - a narrow message regex backstop covering unambiguous provider phrasings
100
+ * ("rate limit", "too many requests", "429", "quota", "compute unit",
101
+ * "request rate", "throughput") — deliberately excluding the ambiguous
102
+ * "limit"/"exceeded" words that collide with gas-limit errors.
103
+ *
104
+ * Deliberately narrow: a 5xx / network error is NOT a quota error (it falls
105
+ * through via viem but does not cool the slot — AC3 keeps static order when no
106
+ * quota errors occur), and a contract revert (code 3) is never a quota error.
107
+ */
108
+ export declare function isRpcQuotaError(err: unknown): boolean;
82
109
  /**
83
110
  * Mask an RPC URL down to its hostname for display / error reporting. Drops
84
111
  * the path so api-key segments in the URL don't leak into logs.
@@ -91,6 +118,17 @@ export interface BuildFallbackTransportOptions {
91
118
  * "Tenderly stays in slot 3" constraint from the issue.
92
119
  */
93
120
  rank?: boolean;
121
+ /**
122
+ * Injectable clock for the quota-cooldown bookkeeping (#835). Defaults to
123
+ * {@link Date.now}. Tests pass a controllable stub so cooldown expiry (AC2)
124
+ * is deterministic without real timers.
125
+ */
126
+ now?: () => number;
127
+ /**
128
+ * How long a slot stays demoted after a quota / rate-limit error, in ms
129
+ * (#835). Defaults to {@link DEFAULT_RPC_COOLDOWN_MS}.
130
+ */
131
+ cooldownMs?: number;
94
132
  }
95
133
  /**
96
134
  * Build a viem fallback transport over the given URLs. Returns a callable
@@ -24,14 +24,16 @@
24
24
  * at the read-API level (Ponder → eth_getLogs floor). This helper sits beneath
25
25
  * both layers at the JSON-RPC transport level.
26
26
  */
27
- import { ExecutionRevertedError, fallback, http, TransactionRejectedRpcError, UserRejectedRequestError, } from 'viem';
27
+ import { ExecutionRevertedError, fallback, http, LimitExceededRpcError, TransactionRejectedRpcError, UserRejectedRequestError, } from 'viem';
28
28
  /**
29
- * Hard cap on the number of providers in a single fallback chain. Four covers
30
- * the "operator paid primary + public publicnode + public sepolia.base.org +
31
- * Tenderly slot-3" shape from the issue; beyond that the boot probe takes too
32
- * long and slot 5+ is almost always copy-paste noise.
29
+ * Hard cap on the number of providers in a single fallback chain. Six covers
30
+ * the "5 vetted free defaults + 1 operator-prepended paid primary" shape: a
31
+ * chain that ships 5 distinct free providers per supported chain (#911) and
32
+ * still leaves one slot for an operator's paid primary to survive
33
+ * dedup-then-cap. Beyond that the boot probe takes too long and slot 7+ is
34
+ * almost always copy-paste noise.
33
35
  */
34
- export const MAX_RPC_CHAIN_LENGTH = 4;
36
+ export const MAX_RPC_CHAIN_LENGTH = 6;
35
37
  /**
36
38
  * Normalise `string | readonly string[]` into a non-empty, deduplicated,
37
39
  * capped list of RPC URLs. Comma-separated strings are split (operator
@@ -51,7 +53,7 @@ export function parseRpcUrls(input, options = {}) {
51
53
  }
52
54
  // Dedup before applying the cap so repeated URLs (easy to introduce when an
53
55
  // operator prepends a paid primary that already exists in the fallback list)
54
- // don't burn slots of the 4-slot chain. `Set` preserves first-seen insertion
56
+ // don't burn slots of the chain. `Set` preserves first-seen insertion
55
57
  // order, which matches the "primary stays in slot 0" constraint.
56
58
  const deduped = [...new Set(cleaned)];
57
59
  if (deduped.length > MAX_RPC_CHAIN_LENGTH) {
@@ -142,6 +144,58 @@ export function isViemShouldThrowError(err) {
142
144
  }
143
145
  return false;
144
146
  }
147
+ /**
148
+ * Default cooldown applied to a slot that returns a quota / rate-limit error
149
+ * (#835). After this window the demoted slot becomes eligible again rather than
150
+ * being permanently disabled (AC2), so a transient 429 / monthly-quota blip
151
+ * never strands an operator on a degraded provider for the rest of the process.
152
+ */
153
+ export const DEFAULT_RPC_COOLDOWN_MS = 60_000;
154
+ /**
155
+ * Detect quota / rate-limit errors from an RPC provider (#835). Unlike
156
+ * {@link isViemShouldThrowError} (which marks EVM/wallet-level signals that must
157
+ * NOT trigger fallback), a quota error means the *slot* is temporarily unusable
158
+ * and should be demoted behind healthy slots for a cooldown window. Walks the
159
+ * cause chain (cycle-safe, mirroring `isViemShouldThrowError`) and matches on:
160
+ * - HTTP `status === 429` (the `http()` transport's `HttpRequestError`);
161
+ * - JSON-RPC `code === LimitExceededRpcError.code` (-32005);
162
+ * - a narrow message regex backstop covering unambiguous provider phrasings
163
+ * ("rate limit", "too many requests", "429", "quota", "compute unit",
164
+ * "request rate", "throughput") — deliberately excluding the ambiguous
165
+ * "limit"/"exceeded" words that collide with gas-limit errors.
166
+ *
167
+ * Deliberately narrow: a 5xx / network error is NOT a quota error (it falls
168
+ * through via viem but does not cool the slot — AC3 keeps static order when no
169
+ * quota errors occur), and a contract revert (code 3) is never a quota error.
170
+ */
171
+ export function isRpcQuotaError(err) {
172
+ // HTTP 429 (below) and JSON-RPC -32005 (LimitExceededRpcError) are the PRIMARY
173
+ // detectors. This message regex is only a backstop for providers that surface
174
+ // quota errors as plain text. It deliberately avoids the ambiguous "limit" /
175
+ // "exceeded" words: a bare `exceeded.*limit` alternative false-positives on
176
+ // gas errors like "exceeded block gas limit" / "gas limit exceeded", which can
177
+ // arrive with a non-shouldThrow code (e.g. -32000) and would wrongly cool a
178
+ // healthy slot. The phrases below are unambiguously quota/rate-limit and never
179
+ // appear in gas/execution errors; the only thing dropped is a text-only quota
180
+ // error carrying no 429 / -32005, which no major provider (Alchemy / Infura /
181
+ // publicnode / Tenderly) produces.
182
+ const quotaMessage = /rate.?limit|too many requests|429|quota|compute unit|request rate|throughput/i;
183
+ const seen = new Set();
184
+ let cursor = err;
185
+ while (cursor instanceof Error && !seen.has(cursor)) {
186
+ seen.add(cursor);
187
+ // Comparing against a numeric constant already excludes non-numbers, so no
188
+ // separate `typeof === 'number'` guard is needed here.
189
+ if (cursor.status === 429)
190
+ return true;
191
+ if (cursor.code === LimitExceededRpcError.code)
192
+ return true;
193
+ if (quotaMessage.test(cursor.message))
194
+ return true;
195
+ cursor = cursor.cause;
196
+ }
197
+ return false;
198
+ }
145
199
  /**
146
200
  * Mask an RPC URL down to its hostname for display / error reporting. Drops
147
201
  * the path so api-key segments in the URL don't leak into logs.
@@ -172,39 +226,86 @@ export function buildFallbackTransport(urls, options = {}) {
172
226
  */
173
227
  buildFallbackTransport.buildFromTransports = function buildFromTransports(transports, urls, options = {}) {
174
228
  const maskedProviders = urls.map(maskRpcHost);
175
- const inner = fallback(transports, {
176
- rank: options.rank ?? false,
177
- retryCount: 0,
229
+ const now = options.now ?? Date.now;
230
+ const cooldownMs = options.cooldownMs ?? DEFAULT_RPC_COOLDOWN_MS;
231
+ const rank = options.rank ?? false;
232
+ // Cooldown bookkeeping, indexed by ORIGINAL slot index (#835). A slot that
233
+ // returns a quota / rate-limit error is demoted behind the healthy slots
234
+ // until `cooldownUntil[i]`, then becomes eligible again (AC1 + AC2). When no
235
+ // quota errors occur every entry stays 0 and the configured order is
236
+ // preserved verbatim (AC3).
237
+ const cooldownUntil = new Array(transports.length).fill(0);
238
+ // Self-stamping slot wrappers, built ONCE over the original slot order. Each
239
+ // wraps its original transport FACTORY, closing over its ORIGINAL index `i`.
240
+ // When the instantiated slot's request rejects with a quota error it stamps
241
+ // its OWN `cooldownUntil[i]` and re-throws unchanged. This per-slot
242
+ // self-stamping is why we don't use viem's `onResponse` — its `transport`
243
+ // arg is a freshly-instantiated instance that can't be mapped back to a slot
244
+ // index. Only the wrapper ARRAY is reordered per request (below); the
245
+ // wrappers themselves keep their original index for the lifetime of the
246
+ // chain.
247
+ const stampingTransports = transports.map((make, i) => {
248
+ return ((config) => {
249
+ const instance = make(config);
250
+ const innerRequest = instance.request.bind(instance);
251
+ instance.request = (async (args) => {
252
+ try {
253
+ return await innerRequest(args);
254
+ }
255
+ catch (err) {
256
+ // A revert / user-rejected (shouldThrow-class) is an EVM/wallet
257
+ // signal, never a transport quota problem — must NOT cool the slot.
258
+ if (!isViemShouldThrowError(err) && isRpcQuotaError(err)) {
259
+ cooldownUntil[i] = now() + cooldownMs;
260
+ }
261
+ throw err;
262
+ }
263
+ });
264
+ return instance;
265
+ });
178
266
  });
179
- // Wrap the transport so that the final exhausted-chain rejection surfaces
180
- // as our structured `AllRpcsFailedError` (carrying the masked host list).
181
- // We do the wrap at the transport-factory level rather than swapping the
182
- // returned function's `request` so the FallbackTransport's typed shape
183
- // (`onResponse`, `transports`, etc.) is preserved.
267
+ // Per-request slot order: healthy slots (in original order) first, then
268
+ // cooling slots (in original order) as a last resort. Strict `<` means a
269
+ // slot is healthy again exactly at `now() === cooldownUntil[i]`.
270
+ const orderSlots = () => {
271
+ const healthy = [];
272
+ const cooling = [];
273
+ const t = now();
274
+ for (let i = 0; i < stampingTransports.length; i++) {
275
+ if (t < cooldownUntil[i])
276
+ cooling.push(stampingTransports[i]);
277
+ else
278
+ healthy.push(stampingTransports[i]);
279
+ }
280
+ return [...healthy, ...cooling];
281
+ };
184
282
  const wrapped = ((config) => {
185
- const t = inner(config);
186
- const originalRequest = t.request.bind(t);
187
- t.request = (async (args) => {
283
+ // Instantiate one inner fallback so the returned object carries the
284
+ // canonical `FallbackTransport` shape (`type: 'fallback'`, `onResponse`,
285
+ // `transports`). Its `request` is overridden to rebuild a fresh
286
+ // `fallback()` over the reordered slots on every call — the reorder is the
287
+ // whole point of #835, and a fresh chain with `retryCount: 0` reproduces
288
+ // the existing per-slot fall-through behaviour exactly.
289
+ const shape = fallback(stampingTransports, { rank, retryCount: 0 })(config);
290
+ shape.request = (async (args) => {
291
+ const perCall = fallback(orderSlots(), { rank, retryCount: 0 })(config);
188
292
  try {
189
- return await originalRequest(args);
293
+ return await perCall.request(args);
190
294
  }
191
295
  catch (err) {
192
- // viem's fallback() short-circuits on shouldThrow-class errors
193
- // (contract revert, user-rejected, CAIP 5000) those are
194
- // EVM/wallet-level, not transport-level failures. Propagate them
195
- // unchanged so callers (and the operator-app's `rpc_all_failed`
196
- // state message) don't misread a single-slot revert as an
197
- // exhausted-chain outage.
296
+ // shouldThrow-class errors (revert, user-rejected, CAIP 5000) are
297
+ // EVM/wallet-level propagate unchanged so a single-slot revert is
298
+ // never misread as an exhausted-chain outage.
198
299
  if (isViemShouldThrowError(err))
199
300
  throw err;
200
- // Otherwise: viem doesn't expose a distinct "all transports failed"
201
- // error class when fallback exhausts the chain it throws the last
202
- // underlying error. Wrap so the caller gets a stable structural
203
- // error carrying the masked provider list.
301
+ // The whole chain is exhausted. viem has no distinct "all transports
302
+ // failed" class, so wrap the last underlying error in our structured
303
+ // `AllRpcsFailedError` carrying the masked host list in ORIGINAL
304
+ // configured order (never reordered).
204
305
  throw new AllRpcsFailedError(maskedProviders, err);
205
306
  }
206
307
  });
207
- return t;
308
+ return shape;
208
309
  });
209
310
  return wrapped;
210
311
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/rpc/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/rpc/transport.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  {
2
- "comment": "Real Python instance IDs that exist in the current nebius/SWE-rebench-leaderboard pool (split 2025_01). validate-pool --seed-positive runs gold-eval against each. Not every entry is guaranteed to record scorable:true — some leaderboard rows have nondeterministic gold patches or upstream-substrate issues. The team prunes this list over time as empirical admit-rates surface. See DR 2026-05-14-swe-rebench-eval-admission.",
2
+ "comment": "Real Python instance IDs that exist in the current nebius/SWE-rebench-leaderboard pool (split 2025_01). validate-pool --seed-positive runs gold-eval against each. Not every entry is guaranteed to record scorable:true — some leaderboard rows have nondeterministic gold patches or upstream-substrate issues. The team prunes this list over time as empirical admit-rates surface. See DR 2026-05-14-swe-rebench-eval-admission. NOTE: sympy__sympy-27510 is the shared T2.2/T3.1 release-gate fixture (client/test/release/tier-2/fixtures/known-instance.ts) — it MUST stay in this list so `validate-pool --seed-positive` keeps it admitted across each EVAL_SEMANTICS_VERSION bump; without a v4 admission the env-suite real-harness loop times out on admission_missing_or_unscorable (2026-06-08 cut).",
3
3
  "source": "spike jinn-mono-fufn — initial set sampled from loadSweRebenchV2Pool() on 2026-05-14",
4
4
  "instance_ids": [
5
+ "sympy__sympy-27510",
5
6
  "tobymao__sqlglot-4661",
6
7
  "Blaizzy__mlx-vlm-179",
7
8
  "pydata__xarray-9974",
@@ -73,11 +73,30 @@ export declare class SolverNetRegistry {
73
73
  private readonly nets;
74
74
  register(net: LoadedSolverNet): void;
75
75
  get(name: string): LoadedSolverNet | undefined;
76
+ /**
77
+ * Remove every entry registered under `name` — both the bare key and any
78
+ * `name#N` collision-suffixed keys `register()` may have assigned. Used by
79
+ * the live join applier (#1037) to make a re-join idempotent: it clears the
80
+ * prior registration before re-registering, so a re-apply updates in place
81
+ * instead of inserting a phantom `name#2` duplicate. Boot never calls this,
82
+ * so first-registration behaviour is unchanged.
83
+ */
84
+ unregister(name: string): void;
76
85
  forSolverType(solverType: string, taskRole?: SolverNetTaskRole): LoadedSolverNet | undefined;
77
86
  list(): LoadedSolverNet[];
78
87
  harnessSelections(): Record<string, string>;
79
88
  claudeModelSelections(): Record<string, string>;
80
89
  }
90
+ /**
91
+ * Register a single joined SolverNet into `registry`, reproducing exactly the
92
+ * derivation + plugin-resolution the boot loop runs (default-plugin seeding,
93
+ * harness defaulting, role mapping). Shared by `loadSolverNets` (boot) and the
94
+ * live join applier (`daemon/join-applier.ts`, #1037) so the two paths cannot
95
+ * drift.
96
+ *
97
+ * No-ops when the joined entry has no resolvable contract or no roles.
98
+ */
99
+ export declare function registerJoinedNet(registry: SolverNetRegistry, cid: string, joined: JoinedSolverNetConfig): Promise<void>;
81
100
  export declare function loadSolverNets(config: {
82
101
  joinedSolverNets?: Record<string, JoinedSolverNetConfig>;
83
102
  }): Promise<SolverNetRegistry>;
@@ -69,6 +69,9 @@ function defaultRuntimePluginsForSolverType(solverType) {
69
69
  if (solverType === 'swe-rebench-v2.v1') {
70
70
  return ['bundled:swe-rebench-v2-runtime'];
71
71
  }
72
+ if (solverType === 'jinn-repo.v1') {
73
+ return ['bundled:jinn-repo-runtime'];
74
+ }
72
75
  return [];
73
76
  }
74
77
  function defaultPluginDisabled(plugin, disabled) {
@@ -126,6 +129,21 @@ export class SolverNetRegistry {
126
129
  get(name) {
127
130
  return this.nets.get(name);
128
131
  }
132
+ /**
133
+ * Remove every entry registered under `name` — both the bare key and any
134
+ * `name#N` collision-suffixed keys `register()` may have assigned. Used by
135
+ * the live join applier (#1037) to make a re-join idempotent: it clears the
136
+ * prior registration before re-registering, so a re-apply updates in place
137
+ * instead of inserting a phantom `name#2` duplicate. Boot never calls this,
138
+ * so first-registration behaviour is unchanged.
139
+ */
140
+ unregister(name) {
141
+ for (const key of [...this.nets.keys()]) {
142
+ const net = this.nets.get(key);
143
+ if (net && net.name === name)
144
+ this.nets.delete(key);
145
+ }
146
+ }
129
147
  forSolverType(solverType, taskRole) {
130
148
  return [...this.nets.values()].find((net) => net.enabled &&
131
149
  net.solverType === solverType &&
@@ -155,76 +173,87 @@ export class SolverNetRegistry {
155
173
  return out;
156
174
  }
157
175
  }
158
- export async function loadSolverNets(config) {
159
- const registry = new SolverNetRegistry();
160
- async function registerFromConfig(name, net, contract) {
161
- if (!net.enabled)
176
+ /**
177
+ * Register a single joined SolverNet into `registry`, reproducing exactly the
178
+ * derivation + plugin-resolution the boot loop runs (default-plugin seeding,
179
+ * harness defaulting, role mapping). Shared by `loadSolverNets` (boot) and the
180
+ * live join applier (`daemon/join-applier.ts`, #1037) so the two paths cannot
181
+ * drift.
182
+ *
183
+ * No-ops when the joined entry has no resolvable contract or no roles.
184
+ */
185
+ export async function registerJoinedNet(registry, cid, joined) {
186
+ if (!joined.contract)
187
+ return;
188
+ const solverType = `${joined.contract.id}.${joined.contract.version}`;
189
+ const contract = getSolverNetContract(joined.contract);
190
+ if (!contract)
191
+ return;
192
+ const roles = rolesFromJoinedConfig(joined);
193
+ if (roles.length === 0)
194
+ return;
195
+ const disabledDefaults = joined.disabledDefaultPlugins ?? [];
196
+ const defaultPlugins = defaultRuntimePluginsForSolverType(solverType)
197
+ .filter((plugin) => !defaultPluginDisabled(plugin, disabledDefaults));
198
+ const harness = joined.roles.includes('solver')
199
+ ? joined.harness ?? CLAUDE_CODE_HARNESS
200
+ : evaluatorHarnessNameForContract(contract) ?? joined.harness ?? CLAUDE_CODE_HARNESS;
201
+ const net = {
202
+ enabled: true,
203
+ solverType,
204
+ roles,
205
+ harness,
206
+ ...(joined.model ? { model: joined.model } : {}),
207
+ plugins: [...defaultPlugins, ...(joined.plugins ?? [])],
208
+ taskGenerator: { enabled: false },
209
+ };
210
+ const name = joined.name ?? cid;
211
+ if (!net.enabled)
212
+ return;
213
+ const runtimePlugins = [];
214
+ const seenSources = new Set();
215
+ const seenNames = new Set();
216
+ async function addRuntimePlugin(entry, provenance) {
217
+ const plugin = await resolveSolverPlugin(entry);
218
+ if (seenSources.has(plugin.source) || seenNames.has(plugin.name))
162
219
  return;
163
- const runtimePlugins = [];
164
- const seenSources = new Set();
165
- const seenNames = new Set();
166
- async function addRuntimePlugin(entry, provenance) {
167
- const plugin = await resolveSolverPlugin(entry);
168
- if (seenSources.has(plugin.source) || seenNames.has(plugin.name))
169
- return;
170
- if (!isRuntimePlugin(plugin) && !plugin.supports.includes(net.solverType)) {
171
- throw new Error(`SolverNet ${name} runtime plugin ${plugin.name} solverType mismatch: config=${net.solverType} plugin supports=${plugin.supports.join(',')}`);
172
- }
173
- runtimePlugins.push(runtimePluginFrom(plugin, provenance));
174
- seenSources.add(plugin.source);
175
- seenNames.add(plugin.name);
220
+ if (!isRuntimePlugin(plugin) && !plugin.supports.includes(net.solverType)) {
221
+ throw new Error(`SolverNet ${name} runtime plugin ${plugin.name} solverType mismatch: config=${net.solverType} plugin supports=${plugin.supports.join(',')}`);
176
222
  }
177
- // Per `spec/2026-05-05-solvernet-creation-and-launch.md` §8/§9, runtime
178
- // plugins are operator-configured — the SolverNet contract no longer
179
- // carries `defaultRuntimePlugins`. Network Tools is the one runtime-
180
- // scoped default (`supports: ['jinn.runtime']`) auto-loaded so every
181
- // operator's daemon can talk to the Jinn MCP surface. SolverType-bound
182
- // plugins (e.g. the bundled prediction plugin) flow through
183
- // `net.plugins`; the launcher seeds quick-start defaults into operator
184
- // config rather than binding them to the contract.
185
- for (const entry of [JINN_NETWORK_TOOLS_PLUGIN]) {
186
- await addRuntimePlugin(entry, 'default');
187
- }
188
- for (const entry of net.plugins ?? []) {
189
- await addRuntimePlugin(entry, 'configured');
190
- }
191
- registry.register({
192
- name,
193
- enabled: net.enabled,
194
- solverType: net.solverType,
195
- roles: rolesFromConfig(net),
196
- contract,
197
- harness: canonicalHarnessName(net.harness),
198
- ...(net.model ? { model: net.model } : {}),
199
- runtimePlugins,
200
- taskGenerator: net.taskGenerator,
201
- });
223
+ runtimePlugins.push(runtimePluginFrom(plugin, provenance));
224
+ seenSources.add(plugin.source);
225
+ seenNames.add(plugin.name);
226
+ }
227
+ // Per `spec/2026-05-05-solvernet-creation-and-launch.md` §8/§9, runtime
228
+ // plugins are operator-configured — the SolverNet contract no longer
229
+ // carries `defaultRuntimePlugins`. Network Tools is the one runtime-
230
+ // scoped default (`supports: ['jinn.runtime']`) auto-loaded so every
231
+ // operator's daemon can talk to the Jinn MCP surface. SolverType-bound
232
+ // plugins (e.g. the bundled prediction plugin) flow through
233
+ // `net.plugins`; the launcher seeds quick-start defaults into operator
234
+ // config rather than binding them to the contract.
235
+ for (const entry of [JINN_NETWORK_TOOLS_PLUGIN]) {
236
+ await addRuntimePlugin(entry, 'default');
237
+ }
238
+ for (const entry of net.plugins ?? []) {
239
+ await addRuntimePlugin(entry, 'configured');
202
240
  }
241
+ registry.register({
242
+ name,
243
+ enabled: net.enabled,
244
+ solverType: net.solverType,
245
+ roles: rolesFromConfig(net),
246
+ contract,
247
+ harness: canonicalHarnessName(net.harness),
248
+ ...(net.model ? { model: net.model } : {}),
249
+ runtimePlugins,
250
+ taskGenerator: net.taskGenerator,
251
+ });
252
+ }
253
+ export async function loadSolverNets(config) {
254
+ const registry = new SolverNetRegistry();
203
255
  for (const [cid, joined] of Object.entries(config.joinedSolverNets ?? {})) {
204
- if (!joined.contract)
205
- continue;
206
- const solverType = `${joined.contract.id}.${joined.contract.version}`;
207
- const contract = getSolverNetContract(joined.contract);
208
- if (!contract)
209
- continue;
210
- const roles = rolesFromJoinedConfig(joined);
211
- if (roles.length === 0)
212
- continue;
213
- const disabledDefaults = joined.disabledDefaultPlugins ?? [];
214
- const defaultPlugins = defaultRuntimePluginsForSolverType(solverType)
215
- .filter((plugin) => !defaultPluginDisabled(plugin, disabledDefaults));
216
- const harness = joined.roles.includes('solver')
217
- ? joined.harness ?? CLAUDE_CODE_HARNESS
218
- : evaluatorHarnessNameForContract(contract) ?? joined.harness ?? CLAUDE_CODE_HARNESS;
219
- await registerFromConfig(joined.name ?? cid, {
220
- enabled: true,
221
- solverType,
222
- roles,
223
- harness,
224
- ...(joined.model ? { model: joined.model } : {}),
225
- plugins: [...defaultPlugins, ...(joined.plugins ?? [])],
226
- taskGenerator: { enabled: false },
227
- }, contract);
256
+ await registerJoinedNet(registry, cid, joined);
228
257
  }
229
258
  return registry;
230
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/solver-nets/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/solver-nets/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ export declare const JinnRepoPoolItemSchema: z.ZodObject<{
3
+ schemaVersion: z.ZodLiteral<"jinn-repo.v1">;
4
+ instance_id: z.ZodString;
5
+ repo: z.ZodLiteral<"Jinn-Network/mono">;
6
+ base_commit: z.ZodString;
7
+ merged_pr: z.ZodNumber;
8
+ language: z.ZodLiteral<"typescript">;
9
+ problem_statement: z.ZodString;
10
+ test_files: z.ZodArray<z.ZodString>;
11
+ test_cmd: z.ZodString;
12
+ gold_tests: z.ZodRecord<z.ZodString, z.ZodString>;
13
+ solution_patch: z.ZodString;
14
+ }, z.core.$strip>;
15
+ export type JinnRepoPoolItem = z.infer<typeof JinnRepoPoolItemSchema>;
16
+ export interface JinnRepoSolverView {
17
+ schemaVersion: 'jinn-repo.v1';
18
+ instance_id: string;
19
+ repo: 'Jinn-Network/mono';
20
+ base_commit: string;
21
+ problem_statement: string;
22
+ }
23
+ export declare function solverView(item: JinnRepoPoolItem): JinnRepoSolverView;
24
+ export declare function loadJinnRepoPool(opts?: {
25
+ path?: string;
26
+ }): JinnRepoPoolItem[];
27
+ export declare function resolveJinnRepoSlate(pool: JinnRepoPoolItem[], ids: Set<string>): JinnRepoPoolItem[];
@@ -0,0 +1,27 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { z } from 'zod';
4
+ import { JinnRepoTaskSchema } from './jinn-repo.js';
5
+ // Pool item = the solver-visible task + evaluator-side secrets (gold tests, reference solution).
6
+ export const JinnRepoPoolItemSchema = JinnRepoTaskSchema.extend({
7
+ gold_tests: z.record(z.string(), z.string()), // relpath -> file contents (evaluator-side)
8
+ solution_patch: z.string(), // reference fix (admission only; never shown to solver)
9
+ });
10
+ export function solverView(item) {
11
+ return {
12
+ schemaVersion: item.schemaVersion,
13
+ instance_id: item.instance_id,
14
+ repo: item.repo,
15
+ base_commit: item.base_commit,
16
+ problem_statement: item.problem_statement,
17
+ };
18
+ }
19
+ export function loadJinnRepoPool(opts = {}) {
20
+ const path = opts.path ?? fileURLToPath(new URL('./jinn-repo-pool.json', import.meta.url));
21
+ const raw = JSON.parse(readFileSync(path, 'utf8'));
22
+ return raw.map((r) => JinnRepoPoolItemSchema.parse(r));
23
+ }
24
+ export function resolveJinnRepoSlate(pool, ids) {
25
+ return pool.filter((p) => ids.has(p.instance_id));
26
+ }
27
+ //# sourceMappingURL=_jinn-repo-pool.js.map