@jinn-network/client 0.1.7 → 0.1.8-canary.09a3b2f6

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 (438) hide show
  1. package/README.md +67 -1
  2. package/dist/adapters/mech/adapter.d.ts +39 -2
  3. package/dist/adapters/mech/adapter.js +178 -20
  4. package/dist/adapters/mech/adapter.js.map +1 -1
  5. package/dist/adapters/mech/contracts.d.ts +22 -1
  6. package/dist/adapters/mech/contracts.js +96 -52
  7. package/dist/adapters/mech/contracts.js.map +1 -1
  8. package/dist/adapters/mech/safe-revert.d.ts +4 -0
  9. package/dist/adapters/mech/safe-revert.js +5 -1
  10. package/dist/adapters/mech/safe-revert.js.map +1 -1
  11. package/dist/adapters/mech/safe.d.ts +1 -1
  12. package/dist/adapters/mech/safe.js +10 -4
  13. package/dist/adapters/mech/safe.js.map +1 -1
  14. package/dist/adapters/mech/types.d.ts +6 -1
  15. package/dist/adapters/mech/types.js.map +1 -1
  16. package/dist/agent/operator-claude.js +8 -0
  17. package/dist/agent/operator-claude.js.map +1 -1
  18. package/dist/api/activity-events-endpoint.d.ts +14 -0
  19. package/dist/api/activity-events-endpoint.js +59 -0
  20. package/dist/api/activity-events-endpoint.js.map +1 -0
  21. package/dist/api/bootstrap-endpoint.d.ts +1 -2
  22. package/dist/api/bootstrap-endpoint.js +42 -24
  23. package/dist/api/bootstrap-endpoint.js.map +1 -1
  24. package/dist/api/codex-doctor-endpoint.d.ts +22 -5
  25. package/dist/api/codex-doctor-endpoint.js +136 -17
  26. package/dist/api/codex-doctor-endpoint.js.map +1 -1
  27. package/dist/api/debug-report-endpoint.d.ts +27 -0
  28. package/dist/api/debug-report-endpoint.js +157 -0
  29. package/dist/api/debug-report-endpoint.js.map +1 -0
  30. package/dist/api/discovery-endpoint.d.ts +1 -0
  31. package/dist/api/discovery-endpoint.js +24 -0
  32. package/dist/api/discovery-endpoint.js.map +1 -1
  33. package/dist/api/fleet-build.d.ts +1 -7
  34. package/dist/api/fleet-build.js +0 -7
  35. package/dist/api/fleet-build.js.map +1 -1
  36. package/dist/api/gather-status.d.ts +39 -0
  37. package/dist/api/gather-status.js +181 -84
  38. package/dist/api/gather-status.js.map +1 -1
  39. package/dist/api/hermes-doctor-endpoint.d.ts +15 -7
  40. package/dist/api/hermes-doctor-endpoint.js +56 -19
  41. package/dist/api/hermes-doctor-endpoint.js.map +1 -1
  42. package/dist/api/launcher-status.d.ts +4 -2
  43. package/dist/api/launcher-status.js +11 -10
  44. package/dist/api/launcher-status.js.map +1 -1
  45. package/dist/api/launcher-tasks.d.ts +1 -1
  46. package/dist/api/launcher-tasks.js +12 -8
  47. package/dist/api/launcher-tasks.js.map +1 -1
  48. package/dist/api/loop-completion-build.d.ts +79 -0
  49. package/dist/api/loop-completion-build.js +155 -0
  50. package/dist/api/loop-completion-build.js.map +1 -0
  51. package/dist/api/operator-artifacts-endpoint.js +73 -6
  52. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  53. package/dist/api/portfolio-v0-build.d.ts +7 -1
  54. package/dist/api/portfolio-v0-build.js +6 -2
  55. package/dist/api/portfolio-v0-build.js.map +1 -1
  56. package/dist/api/prediction-v1-build.d.ts +6 -0
  57. package/dist/api/prediction-v1-build.js +3 -1
  58. package/dist/api/prediction-v1-build.js.map +1 -1
  59. package/dist/api/server.d.ts +17 -0
  60. package/dist/api/server.js +40 -1
  61. package/dist/api/server.js.map +1 -1
  62. package/dist/api/setup-endpoints.d.ts +13 -9
  63. package/dist/api/setup-endpoints.js +50 -173
  64. package/dist/api/setup-endpoints.js.map +1 -1
  65. package/dist/api/solvernets-endpoints.js +33 -63
  66. package/dist/api/solvernets-endpoints.js.map +1 -1
  67. package/dist/api/status-build.d.ts +140 -17
  68. package/dist/api/status-build.js +47 -34
  69. package/dist/api/status-build.js.map +1 -1
  70. package/dist/api/status-harness-rollup.d.ts +35 -0
  71. package/dist/api/status-harness-rollup.js +45 -0
  72. package/dist/api/status-harness-rollup.js.map +1 -0
  73. package/dist/api/status-rollup-build.d.ts +0 -4
  74. package/dist/api/status-rollup-build.js +0 -4
  75. package/dist/api/status-rollup-build.js.map +1 -1
  76. package/dist/api/task-runs-build.d.ts +8 -0
  77. package/dist/api/task-runs-build.js +5 -1
  78. package/dist/api/task-runs-build.js.map +1 -1
  79. package/dist/build-info.json +4 -4
  80. package/dist/build-meta.json +1 -1
  81. package/dist/captures/live-publisher.js +24 -4
  82. package/dist/captures/live-publisher.js.map +1 -1
  83. package/dist/captures/publish.d.ts +1 -1
  84. package/dist/chain-read-errors.d.ts +12 -0
  85. package/dist/chain-read-errors.js +26 -1
  86. package/dist/chain-read-errors.js.map +1 -1
  87. package/dist/cli/commands/codedigest-revert-check.d.ts +33 -0
  88. package/dist/cli/commands/codedigest-revert-check.js +253 -0
  89. package/dist/cli/commands/codedigest-revert-check.js.map +1 -0
  90. package/dist/cli/commands/doctor.d.ts +3 -0
  91. package/dist/cli/commands/doctor.js +35 -0
  92. package/dist/cli/commands/doctor.js.map +1 -1
  93. package/dist/cli/commands/eval.d.ts +76 -0
  94. package/dist/cli/commands/eval.js +401 -0
  95. package/dist/cli/commands/eval.js.map +1 -0
  96. package/dist/cli/commands/rewards.d.ts +2 -0
  97. package/dist/cli/commands/rewards.js +27 -0
  98. package/dist/cli/commands/rewards.js.map +1 -1
  99. package/dist/cli/commands/solver-nets.d.ts +1 -0
  100. package/dist/cli/commands/solver-nets.js +245 -22
  101. package/dist/cli/commands/solver-nets.js.map +1 -1
  102. package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
  103. package/dist/cli/commands/solver-plugins-block.js +118 -0
  104. package/dist/cli/commands/solver-plugins-block.js.map +1 -0
  105. package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
  106. package/dist/cli/commands/solver-plugins-feedback.js +262 -0
  107. package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
  108. package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
  109. package/dist/cli/commands/solver-plugins-read.js +259 -0
  110. package/dist/cli/commands/solver-plugins-read.js.map +1 -0
  111. package/dist/cli/commands/solver-plugins.d.ts +35 -0
  112. package/dist/cli/commands/solver-plugins.js +399 -2
  113. package/dist/cli/commands/solver-plugins.js.map +1 -1
  114. package/dist/cli/commands/status.js +0 -1
  115. package/dist/cli/commands/status.js.map +1 -1
  116. package/dist/cli/commands/tasks.js +15 -2
  117. package/dist/cli/commands/tasks.js.map +1 -1
  118. package/dist/cli/index.js +4 -0
  119. package/dist/cli/index.js.map +1 -1
  120. package/dist/cli/task-native-readiness.d.ts +7 -0
  121. package/dist/cli/task-native-readiness.js +7 -5
  122. package/dist/cli/task-native-readiness.js.map +1 -1
  123. package/dist/config.d.ts +206 -232
  124. package/dist/config.js +289 -107
  125. package/dist/config.js.map +1 -1
  126. package/dist/daemon/ai-units-gate.d.ts +54 -0
  127. package/dist/daemon/ai-units-gate.js +83 -0
  128. package/dist/daemon/ai-units-gate.js.map +1 -0
  129. package/dist/daemon/creator.js +13 -0
  130. package/dist/daemon/creator.js.map +1 -1
  131. package/dist/daemon/daemon.d.ts +10 -0
  132. package/dist/daemon/daemon.js +205 -30
  133. package/dist/daemon/daemon.js.map +1 -1
  134. package/dist/daemon/eviction-loop.d.ts +7 -0
  135. package/dist/daemon/eviction-loop.js +16 -0
  136. package/dist/daemon/eviction-loop.js.map +1 -1
  137. package/dist/daemon/gate-logger.d.ts +9 -0
  138. package/dist/daemon/gate-logger.js +2 -0
  139. package/dist/daemon/gate-logger.js.map +1 -0
  140. package/dist/daemon/jinn-claim-loop.js +22 -4
  141. package/dist/daemon/jinn-claim-loop.js.map +1 -1
  142. package/dist/daemon/readiness-gate.d.ts +1 -4
  143. package/dist/daemon/readiness-gate.js.map +1 -1
  144. package/dist/daemon/spend-cap-gate.d.ts +40 -0
  145. package/dist/daemon/spend-cap-gate.js +46 -0
  146. package/dist/daemon/spend-cap-gate.js.map +1 -0
  147. package/dist/dashboard/assets/index-3quVQqik.js +167 -0
  148. package/dist/dashboard/assets/index-BVAWkLwY.css +1 -0
  149. package/dist/dashboard/index.html +2 -2
  150. package/dist/discovery/http.d.ts +7 -0
  151. package/dist/discovery/http.js +567 -24
  152. package/dist/discovery/http.js.map +1 -1
  153. package/dist/discovery/onchain.js +197 -5
  154. package/dist/discovery/onchain.js.map +1 -1
  155. package/dist/discovery/types.d.ts +235 -0
  156. package/dist/discovery/types.js +40 -0
  157. package/dist/discovery/types.js.map +1 -1
  158. package/dist/discovery/with-fallback.js +41 -0
  159. package/dist/discovery/with-fallback.js.map +1 -1
  160. package/dist/earning/bootstrap.d.ts +31 -3
  161. package/dist/earning/bootstrap.js +94 -22
  162. package/dist/earning/bootstrap.js.map +1 -1
  163. package/dist/earning/faucet.d.ts +1 -1
  164. package/dist/earning/faucet.js +2 -2
  165. package/dist/earning/faucet.js.map +1 -1
  166. package/dist/earning/safe-adapter.js +34 -11
  167. package/dist/earning/safe-adapter.js.map +1 -1
  168. package/dist/earning/types.d.ts +6 -6
  169. package/dist/earning/viem-clients.d.ts +11 -4
  170. package/dist/earning/viem-clients.js +14 -5
  171. package/dist/earning/viem-clients.js.map +1 -1
  172. package/dist/erc8004/identity.d.ts +19 -3
  173. package/dist/erc8004/identity.js +38 -11
  174. package/dist/erc8004/identity.js.map +1 -1
  175. package/dist/erc8004/index.d.ts +1 -1
  176. package/dist/erc8004/index.js.map +1 -1
  177. package/dist/eval/eval-harness-run.d.ts +63 -0
  178. package/dist/eval/eval-harness-run.js +123 -0
  179. package/dist/eval/eval-harness-run.js.map +1 -0
  180. package/dist/eval/orchestrator.d.ts +163 -0
  181. package/dist/eval/orchestrator.js +232 -0
  182. package/dist/eval/orchestrator.js.map +1 -0
  183. package/dist/eval/paired.d.ts +68 -0
  184. package/dist/eval/paired.js +93 -0
  185. package/dist/eval/paired.js.map +1 -0
  186. package/dist/eval/resolve-slate-tasks.d.ts +35 -0
  187. package/dist/eval/resolve-slate-tasks.js +56 -0
  188. package/dist/eval/resolve-slate-tasks.js.map +1 -0
  189. package/dist/eval/screen-discovery.d.ts +22 -0
  190. package/dist/eval/screen-discovery.js +71 -0
  191. package/dist/eval/screen-discovery.js.map +1 -0
  192. package/dist/eval/screen-progress.d.ts +41 -0
  193. package/dist/eval/screen-progress.js +60 -0
  194. package/dist/eval/screen-progress.js.map +1 -0
  195. package/dist/eval/screen-runner.d.ts +30 -0
  196. package/dist/eval/screen-runner.js +289 -0
  197. package/dist/eval/screen-runner.js.map +1 -0
  198. package/dist/eval/screen.d.ts +107 -0
  199. package/dist/eval/screen.js +159 -0
  200. package/dist/eval/screen.js.map +1 -0
  201. package/dist/eval/slope.d.ts +29 -0
  202. package/dist/eval/slope.js +46 -0
  203. package/dist/eval/slope.js.map +1 -0
  204. package/dist/eval/train-sequence.d.ts +35 -0
  205. package/dist/eval/train-sequence.js +59 -0
  206. package/dist/eval/train-sequence.js.map +1 -0
  207. package/dist/eval/wilson.d.ts +45 -0
  208. package/dist/eval/wilson.js +48 -0
  209. package/dist/eval/wilson.js.map +1 -0
  210. package/dist/events/types.d.ts +2 -2
  211. package/dist/harnesses/cost-estimates.d.ts +10 -31
  212. package/dist/harnesses/cost-estimates.js +11 -43
  213. package/dist/harnesses/cost-estimates.js.map +1 -1
  214. package/dist/harnesses/engine/canonical-json.js +5 -3
  215. package/dist/harnesses/engine/canonical-json.js.map +1 -1
  216. package/dist/harnesses/engine/engine.d.ts +37 -4
  217. package/dist/harnesses/engine/engine.js +151 -20
  218. package/dist/harnesses/engine/engine.js.map +1 -1
  219. package/dist/harnesses/engine/persistence.d.ts +38 -4
  220. package/dist/harnesses/engine/persistence.js +71 -6
  221. package/dist/harnesses/engine/persistence.js.map +1 -1
  222. package/dist/harnesses/engine/state.d.ts +9 -0
  223. package/dist/harnesses/engine/state.js +23 -10
  224. package/dist/harnesses/engine/state.js.map +1 -1
  225. package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
  226. package/dist/harnesses/impls/hermes-agent/adapter.js +8 -5
  227. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  228. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
  229. package/dist/harnesses/impls/hermes-agent/bootstrap.js +10 -3
  230. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  231. package/dist/harnesses/impls/hermes-agent/config-builder.d.ts +1 -1
  232. package/dist/harnesses/impls/hermes-agent/config-builder.js +4 -2
  233. package/dist/harnesses/impls/hermes-agent/config-builder.js.map +1 -1
  234. package/dist/harnesses/impls/hermes-agent/harness.d.ts +31 -3
  235. package/dist/harnesses/impls/hermes-agent/harness.js +84 -7
  236. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  237. package/dist/harnesses/impls/hermes-agent/prompt.d.ts +6 -6
  238. package/dist/harnesses/impls/hermes-agent/prompt.js +6 -6
  239. package/dist/harnesses/impls/index.d.ts +2 -0
  240. package/dist/harnesses/impls/index.js +2 -0
  241. package/dist/harnesses/impls/index.js.map +1 -1
  242. package/dist/harnesses/impls/learner/adapters/claude-code.d.ts +17 -0
  243. package/dist/harnesses/impls/learner/adapters/claude-code.js +118 -14
  244. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  245. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +9 -0
  246. package/dist/harnesses/impls/learner/adapters/codex-code.js +30 -8
  247. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  248. package/dist/harnesses/impls/learner/harness.d.ts +41 -1
  249. package/dist/harnesses/impls/learner/harness.js +78 -4
  250. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  251. package/dist/harnesses/impls/learner/harvest.d.ts +3 -1
  252. package/dist/harnesses/impls/learner/harvest.js +30 -6
  253. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  254. package/dist/harnesses/impls/learner/plugin-path.js +1 -0
  255. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  256. package/dist/harnesses/impls/learner/restoration-patch.d.ts +2 -2
  257. package/dist/harnesses/impls/learner/restoration-patch.js +25 -6
  258. package/dist/harnesses/impls/learner/restoration-patch.js.map +1 -1
  259. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +21 -1
  260. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  261. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +3 -1
  262. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  263. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +74 -5
  264. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +103 -32
  265. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
  266. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
  267. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
  268. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  269. package/dist/harnesses/readiness-registry.d.ts +7 -0
  270. package/dist/harnesses/readiness-registry.js +9 -0
  271. package/dist/harnesses/readiness-registry.js.map +1 -1
  272. package/dist/harnesses/types.d.ts +14 -0
  273. package/dist/learner/revert-decision.d.ts +74 -0
  274. package/dist/learner/revert-decision.js +73 -0
  275. package/dist/learner/revert-decision.js.map +1 -0
  276. package/dist/learner/revert-stats.d.ts +38 -0
  277. package/dist/learner/revert-stats.js +86 -0
  278. package/dist/learner/revert-stats.js.map +1 -0
  279. package/dist/local-provider-url.d.ts +3 -0
  280. package/dist/local-provider-url.js +28 -0
  281. package/dist/local-provider-url.js.map +1 -0
  282. package/dist/main.js +199 -104
  283. package/dist/main.js.map +1 -1
  284. package/dist/mcp/get-codedigest-reward.d.ts +13 -0
  285. package/dist/mcp/get-codedigest-reward.js +23 -0
  286. package/dist/mcp/get-codedigest-reward.js.map +1 -0
  287. package/dist/mcp/server.js +23 -0
  288. package/dist/mcp/server.js.map +1 -1
  289. package/dist/observability/debug-report-assemble.d.ts +43 -0
  290. package/dist/observability/debug-report-assemble.js +80 -0
  291. package/dist/observability/debug-report-assemble.js.map +1 -0
  292. package/dist/observability/emit-event.d.ts +9 -2
  293. package/dist/observability/emit-event.js +36 -2
  294. package/dist/observability/emit-event.js.map +1 -1
  295. package/dist/observability/file-logger.d.ts +69 -0
  296. package/dist/observability/file-logger.js +177 -0
  297. package/dist/observability/file-logger.js.map +1 -0
  298. package/dist/observability/redact-secrets.d.ts +65 -0
  299. package/dist/observability/redact-secrets.js +300 -0
  300. package/dist/observability/redact-secrets.js.map +1 -0
  301. package/dist/observability/tar.d.ts +30 -0
  302. package/dist/observability/tar.js +102 -0
  303. package/dist/observability/tar.js.map +1 -0
  304. package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
  305. package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
  306. package/dist/plugins/learner/hooks/session-start +30 -1
  307. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +22 -1
  308. package/dist/plugins/learner/skills/learn/promoter-prompt.md +72 -1
  309. package/dist/preflight/deployment-readiness.d.ts +147 -0
  310. package/dist/preflight/deployment-readiness.js +366 -0
  311. package/dist/preflight/deployment-readiness.js.map +1 -0
  312. package/dist/preflight/pidfile-liveness.d.ts +50 -0
  313. package/dist/preflight/pidfile-liveness.js +117 -0
  314. package/dist/preflight/pidfile-liveness.js.map +1 -0
  315. package/dist/preflight/rpc-network.d.ts +40 -0
  316. package/dist/preflight/rpc-network.js +67 -1
  317. package/dist/preflight/rpc-network.js.map +1 -1
  318. package/dist/rpc/transport.d.ts +145 -0
  319. package/dist/rpc/transport.js +319 -0
  320. package/dist/rpc/transport.js.map +1 -0
  321. package/dist/scripts/donation-consumption-acceptance.js +7 -28
  322. package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
  323. package/dist/scripts/swe-rebench-v2-pytest-missing.json +16 -0
  324. package/dist/solver-nets/prediction-operator-ux.d.ts +1 -2
  325. package/dist/solver-nets/prediction-operator-ux.js +56 -53
  326. package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
  327. package/dist/solver-nets/registry.d.ts +19 -1
  328. package/dist/solver-nets/registry.js +37 -24
  329. package/dist/solver-nets/registry.js.map +1 -1
  330. package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
  331. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
  332. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
  333. package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
  334. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
  335. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
  336. package/dist/solver-types/_swe-rebench-v2-pool.d.ts +9 -2
  337. package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
  338. package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
  339. package/dist/solver-types/_swe-rebench-v2-state.d.ts +24 -0
  340. package/dist/solver-types/_swe-rebench-v2-state.js +33 -0
  341. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
  342. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +116 -2
  343. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +296 -21
  344. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  345. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
  346. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
  347. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
  348. package/dist/solver-types/solver-type.d.ts +8 -0
  349. package/dist/solver-types/swe-rebench-v2-auto.d.ts +20 -11
  350. package/dist/solver-types/swe-rebench-v2-auto.js +64 -19
  351. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  352. package/dist/solver-types/swe-rebench-v2.d.ts +10 -2
  353. package/dist/solver-types/swe-rebench-v2.js +233 -13
  354. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  355. package/dist/solvernets/daemon-init.d.ts +1 -1
  356. package/dist/solvernets/daemon-init.js +19 -4
  357. package/dist/solvernets/daemon-init.js.map +1 -1
  358. package/dist/solvernets/launched-record-dispatcher.d.ts +7 -0
  359. package/dist/solvernets/launched-record-dispatcher.js +10 -4
  360. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  361. package/dist/solvernets/registry-client-erc8004.js +40 -37
  362. package/dist/solvernets/registry-client-erc8004.js.map +1 -1
  363. package/dist/solvernets/registry-client.d.ts +6 -0
  364. package/dist/solvernets/store.d.ts +2 -2
  365. package/dist/solvernets/store.js +7 -2
  366. package/dist/solvernets/store.js.map +1 -1
  367. package/dist/spend/ai-units-config.d.ts +49 -0
  368. package/dist/spend/ai-units-config.js +34 -0
  369. package/dist/spend/ai-units-config.js.map +1 -0
  370. package/dist/spend/ai-units.d.ts +140 -0
  371. package/dist/spend/ai-units.js +229 -0
  372. package/dist/spend/ai-units.js.map +1 -0
  373. package/dist/spend/cost-surface-status.d.ts +12 -0
  374. package/dist/spend/cost-surface-status.js +24 -0
  375. package/dist/spend/cost-surface-status.js.map +1 -0
  376. package/dist/spend/credential.d.ts +39 -0
  377. package/dist/spend/credential.js +71 -0
  378. package/dist/spend/credential.js.map +1 -0
  379. package/dist/spend/daemon-config.d.ts +13 -0
  380. package/dist/spend/daemon-config.js +24 -0
  381. package/dist/spend/daemon-config.js.map +1 -0
  382. package/dist/spend/pricing.d.ts +16 -0
  383. package/dist/spend/pricing.js +26 -0
  384. package/dist/spend/pricing.js.map +1 -0
  385. package/dist/spend/record.d.ts +13 -0
  386. package/dist/spend/record.js +43 -0
  387. package/dist/spend/record.js.map +1 -0
  388. package/dist/spend/usage.d.ts +27 -0
  389. package/dist/spend/usage.js +113 -0
  390. package/dist/spend/usage.js.map +1 -0
  391. package/dist/store/store.d.ts +187 -0
  392. package/dist/store/store.js +467 -4
  393. package/dist/store/store.js.map +1 -1
  394. package/dist/trajectory/transcript-parsers/codex-session.d.ts +12 -6
  395. package/dist/trajectory/transcript-parsers/codex-session.js +114 -13
  396. package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -1
  397. package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
  398. package/dist/trajectory/transcript-session-dirs.d.ts +18 -0
  399. package/dist/trajectory/transcript-session-dirs.js +85 -0
  400. package/dist/trajectory/transcript-session-dirs.js.map +1 -0
  401. package/dist/trajectory/transcript-watcher.d.ts +20 -1
  402. package/dist/trajectory/transcript-watcher.js +108 -32
  403. package/dist/trajectory/transcript-watcher.js.map +1 -1
  404. package/dist/tx-retry.d.ts +25 -0
  405. package/dist/tx-retry.js +95 -7
  406. package/dist/tx-retry.js.map +1 -1
  407. package/dist/types/payloads/portfolio-v0.d.ts +3 -3
  408. package/dist/types/payloads/prediction-apy-v0.d.ts +3 -3
  409. package/dist/types/payloads/prediction-v0.d.ts +12 -12
  410. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +108 -1
  411. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +25 -1
  412. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
  413. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
  414. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
  415. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
  416. package/dist/vendor/@jinn-network/sdk/package.json +4 -0
  417. package/docker-compose.yml +3 -2
  418. package/package.json +30 -18
  419. package/plugins/learner/.claude-plugin/plugin.json +1 -1
  420. package/plugins/learner/.codex-plugin/plugin.json +1 -1
  421. package/plugins/learner/hooks/session-start +30 -1
  422. package/plugins/learner/skills/learn/consolidator-prompt.md +22 -1
  423. package/plugins/learner/skills/learn/promoter-prompt.md +72 -1
  424. package/plugins/swe-rebench-v2-diffmin/README.md +10 -9
  425. package/plugins/swe-rebench-v2-diffmin/jinn.plugin.json +1 -1
  426. package/plugins/swe-rebench-v2-diffmin/skills/diffmin/SKILL.md +15 -10
  427. package/plugins/swe-rebench-v2-diffmin/skills/test-map/SKILL.md +10 -12
  428. package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +1 -1
  429. package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +3 -3
  430. package/plugins/swe-rebench-v2-runtime/README.md +6 -6
  431. package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
  432. package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
  433. package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +2 -3
  434. package/plugins/swe-rebench-v2-runtime/skills/task/SKILL.md +81 -0
  435. package/dist/dashboard/assets/index-BUlE8F3Y.js +0 -330
  436. package/dist/dashboard/assets/index-blqc7eqq.css +0 -32
  437. package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +0 -29
  438. package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +0 -53
package/dist/config.d.ts CHANGED
@@ -15,45 +15,6 @@
15
15
  */
16
16
  import { z } from 'zod';
17
17
  import type { Task } from './types/task.js';
18
- export interface DefaultSolverNetConfig extends Record<string, unknown> {
19
- enabled?: boolean;
20
- solverType: string;
21
- /**
22
- * Operator-selected roles for this SolverNet. A non-empty subset of
23
- * `['solving', 'evaluating']`. Multiple roles can run concurrently — the
24
- * daemon enforces `disallowSolverSelfEvaluation` on-chain so the operator
25
- * never evaluates its own Solutions, and the on-chain
26
- * TaskActivityCheckerV3 keeps `solutionDeliveryWeight` and
27
- * `verdictDeliveryWeight` as independent additive counters.
28
- *
29
- * Launcher-side flagging is no longer expressed as an operator role —
30
- * launcher ownership is determined by the launched-record subsystem
31
- * (spec/2026-05-05-solvernet-creation-and-launch.md §11). Operator config
32
- * carries only the participation roles.
33
- *
34
- * Legacy `role: 'solving' | 'evaluating'` configs are auto-migrated to
35
- * `roles: [<role>]` by the loader (zod preprocessor on solverNets[*]).
36
- */
37
- roles?: Array<'solving' | 'evaluating'>;
38
- harness?: string;
39
- model?: string;
40
- plugins?: Array<string | {
41
- name?: string;
42
- source: string;
43
- version?: string;
44
- }>;
45
- taskGenerator?: {
46
- enabled?: boolean;
47
- };
48
- }
49
- /**
50
- * Default `solverNets` is empty per Decision 5 of
51
- * spec/2026-05-05-solvernet-creation-and-launch.md — pre-release, no
52
- * migration burden. Fresh installs no longer seed the `prediction` entry;
53
- * the operator joins SolverNets through the registry (Task 21's
54
- * `joinedSolverNets` block).
55
- */
56
- export declare const DEFAULT_SOLVER_NETS: Record<string, DefaultSolverNetConfig>;
57
18
  export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
58
19
  /**
59
20
  * Network to connect to.
@@ -64,19 +25,36 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
64
25
  */
65
26
  network: z.ZodDefault<z.ZodEnum<["mainnet", "testnet"]>>;
66
27
  /**
67
- * Base RPC endpoint.
68
- * Defaults to https://mainnet.base.org for 'mainnet' and
69
- * https://sepolia.base.org for 'testnet'. Set explicitly to override.
28
+ * Base RPC endpoint(s). Accepts either a single URL string or an array of
29
+ * URLs. When an array (or a comma-separated env var) is supplied, the
30
+ * daemon builds a viem `fallback()` chain in slot order (primary first).
31
+ * See `client/src/rpc/transport.ts` for the wrapper. Defaults to the
32
+ * publicnode+sepolia.base.org two-provider chain on testnet and the public
33
+ * `mainnet.base.org` on mainnet. Set explicitly to override.
34
+ *
35
+ * Env: JINN_RPC_URL / BASE_SEPOLIA_RPC_URL / BASE_RPC_URL (comma-separated).
70
36
  */
71
- rpcUrl: z.ZodOptional<z.ZodString>;
72
- archiveRpcUrl: z.ZodOptional<z.ZodString>;
37
+ rpcUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
38
+ archiveRpcUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
73
39
  /**
74
- * Optional L2 proof/archive RPC endpoint for canonical cross-chain canaries.
40
+ * Optional L2 proof/archive RPC endpoint(s) for canonical cross-chain canaries.
75
41
  * The daemon can use its normal rpcUrl for writes while proof construction
76
42
  * uses this endpoint for historical eth_getProof at OP dispute-game blocks.
77
- * Env: JINN_L2_PROOF_RPC_URL.
43
+ * Accepts string or array form (see rpcUrl). Env: JINN_L2_PROOF_RPC_URL.
78
44
  */
79
- l2ProofRpcUrl: z.ZodOptional<z.ZodString>;
45
+ l2ProofRpcUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
46
+ /**
47
+ * Single volume-aware durable-state root. When set (env JINN_STATE_DIR or
48
+ * this file field), `earningDir`, `dbPath`, `engine.implStateDirRoot`, and
49
+ * the swe-rebench-v2 pool dir derive from it as `<stateDir>/<subdir>` —
50
+ * UNLESS each is individually overridden, in which case the per-key value
51
+ * wins (derive-don't-collapse). With `stateDir` unset, every default is
52
+ * byte-identical to the legacy `~/.jinn-client/<subdir>` paths. Hosted
53
+ * deploys collapse four ENV lines to one `JINN_STATE_DIR=/data`.
54
+ * `engine.workingDirRoot` is deliberately NOT derived — it stays ephemeral
55
+ * (reaped per-task).
56
+ */
57
+ stateDir: z.ZodOptional<z.ZodString>;
80
58
  /** Earning state directory */
81
59
  earningDir: z.ZodDefault<z.ZodString>;
82
60
  /** SQLite database path */
@@ -132,6 +110,8 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
132
110
  hermesModel: z.ZodOptional<z.ZodString>;
133
111
  /** Hermes provider (e.g. 'anthropic'). */
134
112
  hermesProvider: z.ZodOptional<z.ZodString>;
113
+ /** Local OpenAI-compatible Hermes base URL, e.g. http://127.0.0.1:11434/v1 for Ollama. */
114
+ hermesBaseUrl: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
135
115
  /**
136
116
  * Timeout in ms for `hermes doctor` health-check runs.
137
117
  * Default 30 000 ms. Env: JINN_HERMES_DOCTOR_TIMEOUT_MS.
@@ -193,6 +173,17 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
193
173
  * backlog while proving one fresh task path.
194
174
  */
195
175
  taskDiscoveryAllowedTaskIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
176
+ /**
177
+ * Explicit absolute lower bound (L2 block number) for the mech adapter's
178
+ * on-chain TaskCreated backlog scan. Unset → the scan defaults to a bounded
179
+ * rolling window (`head − DEFAULT_ONCHAIN_SCAN_WINDOW_BLOCKS`, ~28h on Base),
180
+ * so a restart no longer replays full chain history every boot (#801); the
181
+ * indexer (DiscoveryAPI.findClaimableTasks) is the primary discovery path and
182
+ * the on-chain scan is a bounded backstop. Set this to widen the backstop to a
183
+ * specific block (the value pins both the scan start and the gh #300 admission
184
+ * floor). Env: JINN_TASK_DISCOVERY_FROM_BLOCK.
185
+ */
186
+ taskDiscoveryOnchainFromBlock: z.ZodOptional<z.ZodNumber>;
196
187
  /** This node's public HTTP endpoint (for 8004 registration) */
197
188
  nodeEndpoint: z.ZodOptional<z.ZodString>;
198
189
  /** Tasks to create and solve. Empty by default; enabled SolverNet generators fill the loop. */
@@ -970,18 +961,19 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
970
961
  */
971
962
  jinnMviL2DeploymentPath: z.ZodOptional<z.ZodString>;
972
963
  /**
973
- * RPC endpoint for the L1 governance chain (Ethereum / Sepolia) where the
974
- * JinnDistributor lives. Testnet defaults to a public Sepolia RPC; mainnet
975
- * requires an operator override when L1 submit mode is configured.
976
- * Env: JINN_ETHEREUM_RPC_URL.
964
+ * RPC endpoint(s) for the L1 governance chain (Ethereum / Sepolia) where
965
+ * the JinnDistributor lives. Accepts string or array form (see rpcUrl) and
966
+ * supports comma-separated env values. Testnet defaults to a public Sepolia
967
+ * RPC; mainnet requires an operator override when L1 submit mode is
968
+ * configured. Env: JINN_ETHEREUM_RPC_URL.
977
969
  */
978
- ethereumRpcUrl: z.ZodOptional<z.ZodString>;
970
+ ethereumRpcUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
979
971
  /**
980
- * Optional archive RPC endpoint for the L1 governance chain. Used for
981
- * historical block lookups when constructing canonical-mode proofs.
982
- * Env: JINN_ETHEREUM_ARCHIVE_RPC_URL.
972
+ * Optional archive RPC endpoint(s) for the L1 governance chain. Used for
973
+ * historical block lookups when constructing canonical-mode proofs. Accepts
974
+ * string or array form. Env: JINN_ETHEREUM_ARCHIVE_RPC_URL.
983
975
  */
984
- ethereumArchiveRpcUrl: z.ZodOptional<z.ZodString>;
976
+ ethereumArchiveRpcUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
985
977
  /**
986
978
  * L1 network used by the cross-chain claim loop. 'sepolia' tracks Base
987
979
  * Sepolia testnet; 'ethereum' tracks Base mainnet. Defaults to 'sepolia'
@@ -1137,97 +1129,7 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1137
1129
  mode?: "train" | "frozen" | undefined;
1138
1130
  }>>;
1139
1131
  /**
1140
- * SolverNet activation, Harness selection, and operator-configured runtime plugins.
1141
- *
1142
- * Each entry's `roles` is a non-empty subset of `['solving', 'evaluating']`.
1143
- * Multiple roles can run concurrently for the same SolverNet; the
1144
- * protocol-level `disallowSolverSelfEvaluation` flag prevents the operator
1145
- * from evaluating its own Solutions and the on-chain
1146
- * TaskActivityCheckerV3 tracks Solution and Verdict counters independently
1147
- * (additive into `eligibleActivityWeight`).
1148
- *
1149
- * Launcher ownership lives in the launched-record subsystem
1150
- * (spec/2026-05-05-solvernet-creation-and-launch.md §11), not in operator
1151
- * config — there is no `'launching'` operator role. Legacy entries that
1152
- * include `'launching'` in `roles` have it stripped by the preprocessor so
1153
- * older config files keep loading.
1154
- *
1155
- * Backwards-compat: a legacy `role: 'solving' | 'evaluating'` field is
1156
- * auto-promoted to `roles: [<role>]` by the zod preprocessor below so
1157
- * existing `~/.jinn-client/config.json` files keep loading without an
1158
- * operator migration step.
1159
- */
1160
- solverNets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
1161
- enabled: z.ZodDefault<z.ZodBoolean>;
1162
- solverType: z.ZodString;
1163
- roles: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["solving", "evaluating"]>, "many">>, ("solving" | "evaluating")[], ("solving" | "evaluating")[] | undefined>;
1164
- harness: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
1165
- model: z.ZodOptional<z.ZodString>;
1166
- plugins: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
1167
- name: z.ZodOptional<z.ZodString>;
1168
- source: z.ZodString;
1169
- version: z.ZodOptional<z.ZodString>;
1170
- }, "strip", z.ZodTypeAny, {
1171
- source: string;
1172
- name?: string | undefined;
1173
- version?: string | undefined;
1174
- }, {
1175
- source: string;
1176
- name?: string | undefined;
1177
- version?: string | undefined;
1178
- }>]>, "many">>;
1179
- taskGenerator: z.ZodDefault<z.ZodObject<{
1180
- enabled: z.ZodDefault<z.ZodBoolean>;
1181
- }, "strip", z.ZodTypeAny, {
1182
- enabled: boolean;
1183
- }, {
1184
- enabled?: boolean | undefined;
1185
- }>>;
1186
- }, "strip", z.ZodTypeAny, {
1187
- solverType: string;
1188
- enabled: boolean;
1189
- roles: ("solving" | "evaluating")[];
1190
- harness: string;
1191
- plugins: (string | {
1192
- source: string;
1193
- name?: string | undefined;
1194
- version?: string | undefined;
1195
- })[];
1196
- taskGenerator: {
1197
- enabled: boolean;
1198
- };
1199
- model?: string | undefined;
1200
- }, {
1201
- solverType: string;
1202
- enabled?: boolean | undefined;
1203
- roles?: ("solving" | "evaluating")[] | undefined;
1204
- harness?: string | undefined;
1205
- model?: string | undefined;
1206
- plugins?: (string | {
1207
- source: string;
1208
- name?: string | undefined;
1209
- version?: string | undefined;
1210
- })[] | undefined;
1211
- taskGenerator?: {
1212
- enabled?: boolean | undefined;
1213
- } | undefined;
1214
- }>, {
1215
- solverType: string;
1216
- enabled: boolean;
1217
- roles: ("solving" | "evaluating")[];
1218
- harness: string;
1219
- plugins: (string | {
1220
- source: string;
1221
- name?: string | undefined;
1222
- version?: string | undefined;
1223
- })[];
1224
- taskGenerator: {
1225
- enabled: boolean;
1226
- };
1227
- model?: string | undefined;
1228
- }, unknown>>>;
1229
- /**
1230
- * Manifest-keyed joined SolverNets (Task 21).
1132
+ * Manifest-keyed joined SolverNets.
1231
1133
  *
1232
1134
  * Spec: spec/2026-05-05-solvernet-creation-and-launch.md §12.
1233
1135
  *
@@ -1236,10 +1138,10 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1236
1138
  * (CIDv0 / CIDv1) — the only stable identifier that maps back to a
1237
1139
  * launched-instance authority across launchers.
1238
1140
  *
1239
- * Kept structurally separate from legacy `solverNets` for now. The daemon
1240
- * narrows this block into runtime SolverNet registry entries on restart, and
1241
- * Task 22 collapses both branches into a single manifest-keyed shape once
1242
- * the legacy block is fully drained.
1141
+ * The daemon narrows this block into runtime SolverNet registry entries on
1142
+ * restart. Legacy short-name-keyed `solverNets` blocks on operator config
1143
+ * files are auto-migrated into synthetic `legacy:<short-name>`-keyed
1144
+ * entries at load time (see `migrateLegacySolverNets`).
1243
1145
  */
1244
1146
  joinedSolverNets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1245
1147
  manifestCid: z.ZodString;
@@ -1260,28 +1162,28 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1260
1162
  plugins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1261
1163
  disabledDefaultPlugins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1262
1164
  }, "strip", z.ZodTypeAny, {
1165
+ manifestCid: string;
1263
1166
  roles: ("solver" | "evaluator")[];
1264
1167
  plugins: string[];
1265
- manifestCid: string;
1266
1168
  disabledDefaultPlugins: string[];
1267
1169
  name?: string | undefined;
1268
1170
  harness?: string | undefined;
1269
- model?: string | undefined;
1270
1171
  contract?: {
1271
1172
  id: string;
1272
1173
  version: string;
1273
1174
  } | undefined;
1175
+ model?: string | undefined;
1274
1176
  }, {
1275
- roles: ("solver" | "evaluator")[];
1276
1177
  manifestCid: string;
1178
+ roles: ("solver" | "evaluator")[];
1277
1179
  name?: string | undefined;
1278
1180
  harness?: string | undefined;
1279
- model?: string | undefined;
1280
- plugins?: string[] | undefined;
1281
1181
  contract?: {
1282
1182
  id: string;
1283
1183
  version: string;
1284
1184
  } | undefined;
1185
+ model?: string | undefined;
1186
+ plugins?: string[] | undefined;
1285
1187
  disabledDefaultPlugins?: string[] | undefined;
1286
1188
  }>>>;
1287
1189
  /**
@@ -1438,10 +1340,36 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1438
1340
  * Env: JINN_REPUTATION_ENABLED
1439
1341
  */
1440
1342
  reputationEnabled: z.ZodDefault<z.ZodBoolean>;
1343
+ /**
1344
+ * Per-credential daily spend caps (USD). Keys are credential identifiers
1345
+ * (e.g. `'anthropic:api-key'`); values are positive numbers representing
1346
+ * the maximum USD spend per day for that credential.
1347
+ *
1348
+ * `JINN_SPEND_CAP_USD` (env-only, consumed directly by the spend-budget
1349
+ * subsystem in Task 9) is tracked for provenance in TRACKED_ENV_VARS below
1350
+ * but is NOT a config-file field and has no entry in this schema.
1351
+ */
1352
+ spendCaps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1353
+ /**
1354
+ * Operator-local SolverPlugin trust state.
1355
+ *
1356
+ * `blockedCids` is the list of plug-in CIDs the operator has chosen to
1357
+ * refuse to load — populated by `jinn solver-plugins block <cid>` and read
1358
+ * at daemon startup. The block list complements the on-chain
1359
+ * `giveFeedback(score=0)` write (which is the public-trust signal); the
1360
+ * local list is the operator's own refusal to execute, applied even when
1361
+ * the network write fails. File-managed only — no env override.
1362
+ *
1363
+ * See spec/2026-05-26-117-design.md "Failure modes" and "Local-only effects".
1364
+ */
1365
+ solverPlugins: z.ZodDefault<z.ZodObject<{
1366
+ blockedCids: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1367
+ }, "strip", z.ZodTypeAny, {
1368
+ blockedCids: string[];
1369
+ }, {
1370
+ blockedCids?: string[] | undefined;
1371
+ }>>;
1441
1372
  }, "strip", z.ZodTypeAny, {
1442
- harness: {
1443
- mode: "train" | "frozen";
1444
- };
1445
1373
  network: "testnet" | "mainnet";
1446
1374
  earningDir: string;
1447
1375
  dbPath: string;
@@ -1536,21 +1464,9 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1536
1464
  stakingMode: "standard" | "self-bond";
1537
1465
  targetServices: number;
1538
1466
  debug: boolean;
1539
- solverNets: Record<string, {
1540
- solverType: string;
1541
- enabled: boolean;
1542
- roles: ("solving" | "evaluating")[];
1543
- harness: string;
1544
- plugins: (string | {
1545
- source: string;
1546
- name?: string | undefined;
1547
- version?: string | undefined;
1548
- })[];
1549
- taskGenerator: {
1550
- enabled: boolean;
1551
- };
1552
- model?: string | undefined;
1553
- }>;
1467
+ harness: {
1468
+ mode: "train" | "frozen";
1469
+ };
1554
1470
  captures: {
1555
1471
  llmProxy: {
1556
1472
  enabled: boolean;
@@ -1559,13 +1475,18 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1559
1475
  };
1560
1476
  runLegacyMigrations: boolean;
1561
1477
  reputationEnabled: boolean;
1562
- rpcUrl?: string | undefined;
1563
- archiveRpcUrl?: string | undefined;
1564
- l2ProofRpcUrl?: string | undefined;
1478
+ solverPlugins: {
1479
+ blockedCids: string[];
1480
+ };
1481
+ rpcUrl?: string | string[] | undefined;
1482
+ archiveRpcUrl?: string | string[] | undefined;
1483
+ l2ProofRpcUrl?: string | string[] | undefined;
1484
+ stateDir?: string | undefined;
1565
1485
  apiBindHost?: string | undefined;
1566
1486
  hermesPath?: string | undefined;
1567
1487
  hermesModel?: string | undefined;
1568
1488
  hermesProvider?: string | undefined;
1489
+ hermesBaseUrl?: string | undefined;
1569
1490
  codexPath?: string | undefined;
1570
1491
  runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
1571
1492
  discovery?: {
@@ -1574,6 +1495,7 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1574
1495
  fallbackToOnchain?: boolean | undefined;
1575
1496
  } | undefined;
1576
1497
  taskDiscoveryAllowedTaskIds?: string[] | undefined;
1498
+ taskDiscoveryOnchainFromBlock?: number | undefined;
1577
1499
  nodeEndpoint?: string | undefined;
1578
1500
  testnetL2DeploymentPath?: string | undefined;
1579
1501
  testnetL2TokenDeploymentPath?: string | undefined;
@@ -1581,8 +1503,8 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1581
1503
  testnetStolasDeploymentPath?: string | undefined;
1582
1504
  jinnMviL1DeploymentPath?: string | undefined;
1583
1505
  jinnMviL2DeploymentPath?: string | undefined;
1584
- ethereumRpcUrl?: string | undefined;
1585
- ethereumArchiveRpcUrl?: string | undefined;
1506
+ ethereumRpcUrl?: string | string[] | undefined;
1507
+ ethereumArchiveRpcUrl?: string | string[] | undefined;
1586
1508
  jinnDistributorAddress?: string | undefined;
1587
1509
  jinnClaimEmitterAddress?: string | undefined;
1588
1510
  jinnMessengerAddress?: string | undefined;
@@ -1600,17 +1522,17 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1600
1522
  }[] | undefined;
1601
1523
  } | undefined;
1602
1524
  joinedSolverNets?: Record<string, {
1525
+ manifestCid: string;
1603
1526
  roles: ("solver" | "evaluator")[];
1604
1527
  plugins: string[];
1605
- manifestCid: string;
1606
1528
  disabledDefaultPlugins: string[];
1607
1529
  name?: string | undefined;
1608
1530
  harness?: string | undefined;
1609
- model?: string | undefined;
1610
1531
  contract?: {
1611
1532
  id: string;
1612
1533
  version: string;
1613
1534
  } | undefined;
1535
+ model?: string | undefined;
1614
1536
  }> | undefined;
1615
1537
  trustedImplSigners?: {
1616
1538
  publicKey: string;
@@ -1631,14 +1553,13 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1631
1553
  } | undefined;
1632
1554
  identityRegistryAddress?: string | undefined;
1633
1555
  validationRegistryAddress?: string | undefined;
1556
+ spendCaps?: Record<string, number> | undefined;
1634
1557
  }, {
1635
- harness?: {
1636
- mode?: "train" | "frozen" | undefined;
1637
- } | undefined;
1638
1558
  network?: "testnet" | "mainnet" | undefined;
1639
- rpcUrl?: string | undefined;
1640
- archiveRpcUrl?: string | undefined;
1641
- l2ProofRpcUrl?: string | undefined;
1559
+ rpcUrl?: string | string[] | undefined;
1560
+ archiveRpcUrl?: string | string[] | undefined;
1561
+ l2ProofRpcUrl?: string | string[] | undefined;
1562
+ stateDir?: string | undefined;
1642
1563
  earningDir?: string | undefined;
1643
1564
  dbPath?: string | undefined;
1644
1565
  pollIntervalMs?: number | undefined;
@@ -1653,6 +1574,7 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1653
1574
  hermesPath?: string | undefined;
1654
1575
  hermesModel?: string | undefined;
1655
1576
  hermesProvider?: string | undefined;
1577
+ hermesBaseUrl?: string | undefined;
1656
1578
  hermesDoctorTimeoutMs?: number | undefined;
1657
1579
  codexPath?: string | undefined;
1658
1580
  codexDoctorTimeoutMs?: number | undefined;
@@ -1664,6 +1586,7 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1664
1586
  fallbackToOnchain?: boolean | undefined;
1665
1587
  } | undefined;
1666
1588
  taskDiscoveryAllowedTaskIds?: string[] | undefined;
1589
+ taskDiscoveryOnchainFromBlock?: number | undefined;
1667
1590
  nodeEndpoint?: string | undefined;
1668
1591
  tasks?: {
1669
1592
  id?: string | undefined;
@@ -1783,8 +1706,8 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1783
1706
  testnetStolasDeploymentPath?: string | undefined;
1784
1707
  jinnMviL1DeploymentPath?: string | undefined;
1785
1708
  jinnMviL2DeploymentPath?: string | undefined;
1786
- ethereumRpcUrl?: string | undefined;
1787
- ethereumArchiveRpcUrl?: string | undefined;
1709
+ ethereumRpcUrl?: string | string[] | undefined;
1710
+ ethereumArchiveRpcUrl?: string | string[] | undefined;
1788
1711
  jinnL1Network?: "sepolia" | "ethereum" | undefined;
1789
1712
  jinnDistributorAddress?: string | undefined;
1790
1713
  jinnClaimEmitterAddress?: string | undefined;
@@ -1809,18 +1732,20 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1809
1732
  version?: string | undefined;
1810
1733
  }[] | undefined;
1811
1734
  } | undefined;
1812
- solverNets?: Record<string, unknown> | undefined;
1735
+ harness?: {
1736
+ mode?: "train" | "frozen" | undefined;
1737
+ } | undefined;
1813
1738
  joinedSolverNets?: Record<string, {
1814
- roles: ("solver" | "evaluator")[];
1815
1739
  manifestCid: string;
1740
+ roles: ("solver" | "evaluator")[];
1816
1741
  name?: string | undefined;
1817
1742
  harness?: string | undefined;
1818
- model?: string | undefined;
1819
- plugins?: string[] | undefined;
1820
1743
  contract?: {
1821
1744
  id: string;
1822
1745
  version: string;
1823
1746
  } | undefined;
1747
+ model?: string | undefined;
1748
+ plugins?: string[] | undefined;
1824
1749
  disabledDefaultPlugins?: string[] | undefined;
1825
1750
  }> | undefined;
1826
1751
  trustedImplSigners?: {
@@ -1850,10 +1775,11 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1850
1775
  identityRegistryAddress?: string | undefined;
1851
1776
  validationRegistryAddress?: string | undefined;
1852
1777
  reputationEnabled?: boolean | undefined;
1778
+ spendCaps?: Record<string, number> | undefined;
1779
+ solverPlugins?: {
1780
+ blockedCids?: string[] | undefined;
1781
+ } | undefined;
1853
1782
  }>, {
1854
- harness: {
1855
- mode: "train" | "frozen";
1856
- };
1857
1783
  network: "testnet" | "mainnet";
1858
1784
  earningDir: string;
1859
1785
  dbPath: string;
@@ -1948,21 +1874,9 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1948
1874
  stakingMode: "standard" | "self-bond";
1949
1875
  targetServices: number;
1950
1876
  debug: boolean;
1951
- solverNets: Record<string, {
1952
- solverType: string;
1953
- enabled: boolean;
1954
- roles: ("solving" | "evaluating")[];
1955
- harness: string;
1956
- plugins: (string | {
1957
- source: string;
1958
- name?: string | undefined;
1959
- version?: string | undefined;
1960
- })[];
1961
- taskGenerator: {
1962
- enabled: boolean;
1963
- };
1964
- model?: string | undefined;
1965
- }>;
1877
+ harness: {
1878
+ mode: "train" | "frozen";
1879
+ };
1966
1880
  captures: {
1967
1881
  llmProxy: {
1968
1882
  enabled: boolean;
@@ -1971,13 +1885,18 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1971
1885
  };
1972
1886
  runLegacyMigrations: boolean;
1973
1887
  reputationEnabled: boolean;
1974
- rpcUrl?: string | undefined;
1975
- archiveRpcUrl?: string | undefined;
1976
- l2ProofRpcUrl?: string | undefined;
1888
+ solverPlugins: {
1889
+ blockedCids: string[];
1890
+ };
1891
+ rpcUrl?: string | string[] | undefined;
1892
+ archiveRpcUrl?: string | string[] | undefined;
1893
+ l2ProofRpcUrl?: string | string[] | undefined;
1894
+ stateDir?: string | undefined;
1977
1895
  apiBindHost?: string | undefined;
1978
1896
  hermesPath?: string | undefined;
1979
1897
  hermesModel?: string | undefined;
1980
1898
  hermesProvider?: string | undefined;
1899
+ hermesBaseUrl?: string | undefined;
1981
1900
  codexPath?: string | undefined;
1982
1901
  runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
1983
1902
  discovery?: {
@@ -1986,6 +1905,7 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1986
1905
  fallbackToOnchain?: boolean | undefined;
1987
1906
  } | undefined;
1988
1907
  taskDiscoveryAllowedTaskIds?: string[] | undefined;
1908
+ taskDiscoveryOnchainFromBlock?: number | undefined;
1989
1909
  nodeEndpoint?: string | undefined;
1990
1910
  testnetL2DeploymentPath?: string | undefined;
1991
1911
  testnetL2TokenDeploymentPath?: string | undefined;
@@ -1993,8 +1913,8 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
1993
1913
  testnetStolasDeploymentPath?: string | undefined;
1994
1914
  jinnMviL1DeploymentPath?: string | undefined;
1995
1915
  jinnMviL2DeploymentPath?: string | undefined;
1996
- ethereumRpcUrl?: string | undefined;
1997
- ethereumArchiveRpcUrl?: string | undefined;
1916
+ ethereumRpcUrl?: string | string[] | undefined;
1917
+ ethereumArchiveRpcUrl?: string | string[] | undefined;
1998
1918
  jinnDistributorAddress?: string | undefined;
1999
1919
  jinnClaimEmitterAddress?: string | undefined;
2000
1920
  jinnMessengerAddress?: string | undefined;
@@ -2012,17 +1932,17 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
2012
1932
  }[] | undefined;
2013
1933
  } | undefined;
2014
1934
  joinedSolverNets?: Record<string, {
1935
+ manifestCid: string;
2015
1936
  roles: ("solver" | "evaluator")[];
2016
1937
  plugins: string[];
2017
- manifestCid: string;
2018
1938
  disabledDefaultPlugins: string[];
2019
1939
  name?: string | undefined;
2020
1940
  harness?: string | undefined;
2021
- model?: string | undefined;
2022
1941
  contract?: {
2023
1942
  id: string;
2024
1943
  version: string;
2025
1944
  } | undefined;
1945
+ model?: string | undefined;
2026
1946
  }> | undefined;
2027
1947
  trustedImplSigners?: {
2028
1948
  publicKey: string;
@@ -2043,14 +1963,13 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
2043
1963
  } | undefined;
2044
1964
  identityRegistryAddress?: string | undefined;
2045
1965
  validationRegistryAddress?: string | undefined;
1966
+ spendCaps?: Record<string, number> | undefined;
2046
1967
  }, {
2047
- harness?: {
2048
- mode?: "train" | "frozen" | undefined;
2049
- } | undefined;
2050
1968
  network?: "testnet" | "mainnet" | undefined;
2051
- rpcUrl?: string | undefined;
2052
- archiveRpcUrl?: string | undefined;
2053
- l2ProofRpcUrl?: string | undefined;
1969
+ rpcUrl?: string | string[] | undefined;
1970
+ archiveRpcUrl?: string | string[] | undefined;
1971
+ l2ProofRpcUrl?: string | string[] | undefined;
1972
+ stateDir?: string | undefined;
2054
1973
  earningDir?: string | undefined;
2055
1974
  dbPath?: string | undefined;
2056
1975
  pollIntervalMs?: number | undefined;
@@ -2065,6 +1984,7 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
2065
1984
  hermesPath?: string | undefined;
2066
1985
  hermesModel?: string | undefined;
2067
1986
  hermesProvider?: string | undefined;
1987
+ hermesBaseUrl?: string | undefined;
2068
1988
  hermesDoctorTimeoutMs?: number | undefined;
2069
1989
  codexPath?: string | undefined;
2070
1990
  codexDoctorTimeoutMs?: number | undefined;
@@ -2076,6 +1996,7 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
2076
1996
  fallbackToOnchain?: boolean | undefined;
2077
1997
  } | undefined;
2078
1998
  taskDiscoveryAllowedTaskIds?: string[] | undefined;
1999
+ taskDiscoveryOnchainFromBlock?: number | undefined;
2079
2000
  nodeEndpoint?: string | undefined;
2080
2001
  tasks?: {
2081
2002
  id?: string | undefined;
@@ -2195,8 +2116,8 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
2195
2116
  testnetStolasDeploymentPath?: string | undefined;
2196
2117
  jinnMviL1DeploymentPath?: string | undefined;
2197
2118
  jinnMviL2DeploymentPath?: string | undefined;
2198
- ethereumRpcUrl?: string | undefined;
2199
- ethereumArchiveRpcUrl?: string | undefined;
2119
+ ethereumRpcUrl?: string | string[] | undefined;
2120
+ ethereumArchiveRpcUrl?: string | string[] | undefined;
2200
2121
  jinnL1Network?: "sepolia" | "ethereum" | undefined;
2201
2122
  jinnDistributorAddress?: string | undefined;
2202
2123
  jinnClaimEmitterAddress?: string | undefined;
@@ -2221,18 +2142,20 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
2221
2142
  version?: string | undefined;
2222
2143
  }[] | undefined;
2223
2144
  } | undefined;
2224
- solverNets?: Record<string, unknown> | undefined;
2145
+ harness?: {
2146
+ mode?: "train" | "frozen" | undefined;
2147
+ } | undefined;
2225
2148
  joinedSolverNets?: Record<string, {
2226
- roles: ("solver" | "evaluator")[];
2227
2149
  manifestCid: string;
2150
+ roles: ("solver" | "evaluator")[];
2228
2151
  name?: string | undefined;
2229
2152
  harness?: string | undefined;
2230
- model?: string | undefined;
2231
- plugins?: string[] | undefined;
2232
2153
  contract?: {
2233
2154
  id: string;
2234
2155
  version: string;
2235
2156
  } | undefined;
2157
+ model?: string | undefined;
2158
+ plugins?: string[] | undefined;
2236
2159
  disabledDefaultPlugins?: string[] | undefined;
2237
2160
  }> | undefined;
2238
2161
  trustedImplSigners?: {
@@ -2262,10 +2185,33 @@ export declare const JinnConfigSchema: z.ZodEffects<z.ZodObject<{
2262
2185
  identityRegistryAddress?: string | undefined;
2263
2186
  validationRegistryAddress?: string | undefined;
2264
2187
  reputationEnabled?: boolean | undefined;
2188
+ spendCaps?: Record<string, number> | undefined;
2189
+ solverPlugins?: {
2190
+ blockedCids?: string[] | undefined;
2191
+ } | undefined;
2265
2192
  }>;
2266
- /** JinnConfig with rpcUrl guaranteed to be resolved (never undefined) and tasks with id always assigned. */
2267
- export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl' | 'tasks' | 'engine'> & {
2193
+ /**
2194
+ * JinnConfig with rpcUrl guaranteed to be resolved (never undefined) and tasks
2195
+ * with id always assigned.
2196
+ *
2197
+ * `rpcUrl` is the head of the fallback chain (the slot-0 URL) and is kept as
2198
+ * a `string` for display continuity — the ~30 places that log/display
2199
+ * `config.rpcUrl` (provenance, error formatting, `[main] daemon starting on …`)
2200
+ * keep working unchanged. The full chain lives in `rpcUrls: readonly string[]`,
2201
+ * which is what `buildFallbackTransport()` consumes. Same shape for the L1
2202
+ * (ethereum) and optional archive/proof variants.
2203
+ */
2204
+ export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl' | 'archiveRpcUrl' | 'l2ProofRpcUrl' | 'ethereumRpcUrl' | 'ethereumArchiveRpcUrl' | 'tasks' | 'engine'> & {
2268
2205
  rpcUrl: string;
2206
+ rpcUrls: readonly string[];
2207
+ archiveRpcUrl?: string;
2208
+ archiveRpcUrls?: readonly string[];
2209
+ l2ProofRpcUrl?: string;
2210
+ l2ProofRpcUrls?: readonly string[];
2211
+ ethereumRpcUrl?: string;
2212
+ ethereumRpcUrls?: readonly string[];
2213
+ ethereumArchiveRpcUrl?: string;
2214
+ ethereumArchiveRpcUrls?: readonly string[];
2269
2215
  tasks: Task[];
2270
2216
  engine: {
2271
2217
  workingDirRoot: string;
@@ -2282,12 +2228,40 @@ export declare const DEFAULT_CONFIG_PATH: string;
2282
2228
  */
2283
2229
  export declare const DEFAULT_TESTNET_DISCOVERY_URL = "https://jinn-indexer-production.up.railway.app";
2284
2230
  export declare const DEFAULT_TESTNET_ETHEREUM_RPC_URL = "https://ethereum-sepolia-rpc.publicnode.com";
2231
+ /**
2232
+ * Default fallback chain for the L2 measurement chain (Base Sepolia) on
2233
+ * testnet. Per AC2 of issue #592:
2234
+ * slot 0 — `https://base-sepolia.publicnode.com` (no-auth, 50k-block
2235
+ * getLogs cap, no shared-quota cliff).
2236
+ * slot 1 — `https://sepolia.base.org` (free public Coinbase endpoint,
2237
+ * 2k-block cap; last-resort backup).
2238
+ * Operators are encouraged to prepend a paid primary key (Alchemy, Tenderly,
2239
+ * etc.) via `rpcUrl` config or `JINN_RPC_URL` / `BASE_SEPOLIA_RPC_URL` env.
2240
+ */
2241
+ export declare const DEFAULT_TESTNET_RPC_URLS: readonly string[];
2285
2242
  export type ConfigLoadErrorCode = 'config_file_not_found' | 'config_json_invalid' | 'tasks_file_not_found' | 'tasks_json_invalid' | 'config_invalid';
2286
2243
  export declare class ConfigLoadError extends Error {
2287
2244
  readonly code: ConfigLoadErrorCode;
2288
2245
  readonly details?: Record<string, unknown>;
2289
2246
  constructor(code: ConfigLoadErrorCode, message: string, details?: Record<string, unknown>);
2290
2247
  }
2248
+ /**
2249
+ * Translate any legacy short-name-keyed `solverNets` block on the raw parsed
2250
+ * config into manifest-keyed `joinedSolverNets` entries with synthetic
2251
+ * `legacy:<short-name>` keys.
2252
+ *
2253
+ * This is the auto-migration path for operators upgrading past issue #421.
2254
+ * The runtime claim filter remains manifest-digest gated, so synthetic-keyed
2255
+ * entries don't change task eligibility — they exist purely so the diagnostic
2256
+ * surfaces (Overview SOLVING-ON eyebrow, prediction-operator-status) keep
2257
+ * showing the operator's previous SolverNets until they re-join via the SPA.
2258
+ *
2259
+ * Returns the number of legacy entries migrated. Idempotent — calling on an
2260
+ * already-migrated raw config is a no-op.
2261
+ *
2262
+ * @param raw — the JSON-parsed config file contents (mutated in place).
2263
+ */
2264
+ export declare function migrateLegacySolverNets(raw: Record<string, unknown>): number;
2291
2265
  /**
2292
2266
  * Load config with resolution: env > config file > defaults.
2293
2267
  *