@jinn-network/client 0.1.6 → 0.1.7-canary.08ebd916

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 (390) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +67 -1
  3. package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +23 -4
  4. package/deployments/deployment-jinn-mvi-l1-sepolia.json +23 -4
  5. package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +5 -4
  6. package/dist/adapters/mech/adapter.d.ts +38 -2
  7. package/dist/adapters/mech/adapter.js +269 -62
  8. package/dist/adapters/mech/adapter.js.map +1 -1
  9. package/dist/adapters/mech/contracts.d.ts +17 -4
  10. package/dist/adapters/mech/contracts.js +8 -2
  11. package/dist/adapters/mech/contracts.js.map +1 -1
  12. package/dist/adapters/mech/safe-revert.d.ts +20 -0
  13. package/dist/adapters/mech/safe-revert.js +12 -4
  14. package/dist/adapters/mech/safe-revert.js.map +1 -1
  15. package/dist/adapters/mech/safe.d.ts +6 -2
  16. package/dist/adapters/mech/safe.js +32 -11
  17. package/dist/adapters/mech/safe.js.map +1 -1
  18. package/dist/adapters/mech/types.d.ts +6 -1
  19. package/dist/adapters/mech/types.js.map +1 -1
  20. package/dist/adapters/mech/verdict-code.d.ts +1 -0
  21. package/dist/adapters/mech/verdict-code.js +18 -0
  22. package/dist/adapters/mech/verdict-code.js.map +1 -1
  23. package/dist/agent/operator-claude.js +8 -0
  24. package/dist/agent/operator-claude.js.map +1 -1
  25. package/dist/api/activity-events-endpoint.d.ts +14 -0
  26. package/dist/api/activity-events-endpoint.js +59 -0
  27. package/dist/api/activity-events-endpoint.js.map +1 -0
  28. package/dist/api/admin-endpoint.d.ts +15 -3
  29. package/dist/api/admin-endpoint.js +24 -2
  30. package/dist/api/admin-endpoint.js.map +1 -1
  31. package/dist/api/bootstrap-endpoint.d.ts +1 -2
  32. package/dist/api/bootstrap-endpoint.js +85 -18
  33. package/dist/api/bootstrap-endpoint.js.map +1 -1
  34. package/dist/api/codex-doctor-endpoint.d.ts +90 -0
  35. package/dist/api/codex-doctor-endpoint.js +296 -0
  36. package/dist/api/codex-doctor-endpoint.js.map +1 -0
  37. package/dist/api/discovery-endpoint.d.ts +1 -0
  38. package/dist/api/discovery-endpoint.js +26 -0
  39. package/dist/api/discovery-endpoint.js.map +1 -1
  40. package/dist/api/fleet-build.d.ts +1 -0
  41. package/dist/api/fleet-build.js +2 -1
  42. package/dist/api/fleet-build.js.map +1 -1
  43. package/dist/api/gather-status.d.ts +37 -0
  44. package/dist/api/gather-status.js +572 -19
  45. package/dist/api/gather-status.js.map +1 -1
  46. package/dist/api/hermes-doctor-endpoint.d.ts +128 -3
  47. package/dist/api/hermes-doctor-endpoint.js +265 -22
  48. package/dist/api/hermes-doctor-endpoint.js.map +1 -1
  49. package/dist/api/launcher-status.d.ts +25 -17
  50. package/dist/api/launcher-status.js +13 -11
  51. package/dist/api/launcher-status.js.map +1 -1
  52. package/dist/api/launcher-tasks.d.ts +1 -1
  53. package/dist/api/launcher-tasks.js +12 -8
  54. package/dist/api/launcher-tasks.js.map +1 -1
  55. package/dist/api/operator-artifacts-endpoint.js +73 -6
  56. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  57. package/dist/api/portfolio-v0-build.d.ts +10 -0
  58. package/dist/api/portfolio-v0-build.js +24 -5
  59. package/dist/api/portfolio-v0-build.js.map +1 -1
  60. package/dist/api/prediction-v1-build.d.ts +10 -0
  61. package/dist/api/prediction-v1-build.js +7 -1
  62. package/dist/api/prediction-v1-build.js.map +1 -1
  63. package/dist/api/server.d.ts +31 -1
  64. package/dist/api/server.js +95 -2
  65. package/dist/api/server.js.map +1 -1
  66. package/dist/api/setup-endpoints.d.ts +16 -0
  67. package/dist/api/setup-endpoints.js +89 -135
  68. package/dist/api/setup-endpoints.js.map +1 -1
  69. package/dist/api/setup-retry-endpoint.d.ts +19 -0
  70. package/dist/api/setup-retry-endpoint.js +32 -0
  71. package/dist/api/setup-retry-endpoint.js.map +1 -0
  72. package/dist/api/solvernets-endpoints.d.ts +8 -0
  73. package/dist/api/solvernets-endpoints.js +99 -60
  74. package/dist/api/solvernets-endpoints.js.map +1 -1
  75. package/dist/api/status-build.d.ts +168 -2
  76. package/dist/api/status-build.js +116 -27
  77. package/dist/api/status-build.js.map +1 -1
  78. package/dist/api/status-harness-rollup.d.ts +35 -0
  79. package/dist/api/status-harness-rollup.js +45 -0
  80. package/dist/api/status-harness-rollup.js.map +1 -0
  81. package/dist/api/task-run-routing.d.ts +7 -0
  82. package/dist/api/task-run-routing.js +12 -0
  83. package/dist/api/task-run-routing.js.map +1 -0
  84. package/dist/api/task-runs-build.d.ts +21 -0
  85. package/dist/api/task-runs-build.js +14 -1
  86. package/dist/api/task-runs-build.js.map +1 -1
  87. package/dist/build-info.json +4 -4
  88. package/dist/build-meta.json +1 -1
  89. package/dist/captures/live-publisher.js +24 -4
  90. package/dist/captures/live-publisher.js.map +1 -1
  91. package/dist/captures/publish.d.ts +1 -1
  92. package/dist/chain-read-errors.d.ts +10 -0
  93. package/dist/chain-read-errors.js +15 -0
  94. package/dist/chain-read-errors.js.map +1 -1
  95. package/dist/cli/commands/auth.js +1 -1
  96. package/dist/cli/commands/auth.js.map +1 -1
  97. package/dist/cli/commands/create.js +3 -2
  98. package/dist/cli/commands/create.js.map +1 -1
  99. package/dist/cli/commands/doctor.d.ts +2 -0
  100. package/dist/cli/commands/doctor.js +2 -0
  101. package/dist/cli/commands/doctor.js.map +1 -1
  102. package/dist/cli/commands/rewards.js +11 -7
  103. package/dist/cli/commands/rewards.js.map +1 -1
  104. package/dist/cli/commands/solver-nets.js +101 -15
  105. package/dist/cli/commands/solver-nets.js.map +1 -1
  106. package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
  107. package/dist/cli/commands/solver-plugins-block.js +118 -0
  108. package/dist/cli/commands/solver-plugins-block.js.map +1 -0
  109. package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
  110. package/dist/cli/commands/solver-plugins-feedback.js +262 -0
  111. package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
  112. package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
  113. package/dist/cli/commands/solver-plugins-read.js +259 -0
  114. package/dist/cli/commands/solver-plugins-read.js.map +1 -0
  115. package/dist/cli/commands/solver-plugins.d.ts +35 -0
  116. package/dist/cli/commands/solver-plugins.js +399 -2
  117. package/dist/cli/commands/solver-plugins.js.map +1 -1
  118. package/dist/cli/commands/status.js +1 -1
  119. package/dist/cli/commands/status.js.map +1 -1
  120. package/dist/cli/commands/tasks.js +101 -11
  121. package/dist/cli/commands/tasks.js.map +1 -1
  122. package/dist/cli/commands/update.d.ts +10 -0
  123. package/dist/cli/commands/update.js +36 -0
  124. package/dist/cli/commands/update.js.map +1 -1
  125. package/dist/cli/introspection-context.js +5 -0
  126. package/dist/cli/introspection-context.js.map +1 -1
  127. package/dist/cli/task-native-readiness.d.ts +10 -1
  128. package/dist/cli/task-native-readiness.js +30 -6
  129. package/dist/cli/task-native-readiness.js.map +1 -1
  130. package/dist/config.d.ts +273 -235
  131. package/dist/config.js +305 -114
  132. package/dist/config.js.map +1 -1
  133. package/dist/daemon/checkpoint-loop.d.ts +48 -0
  134. package/dist/daemon/checkpoint-loop.js +76 -0
  135. package/dist/daemon/checkpoint-loop.js.map +1 -0
  136. package/dist/daemon/creator.d.ts +1 -1
  137. package/dist/daemon/creator.js +7 -3
  138. package/dist/daemon/creator.js.map +1 -1
  139. package/dist/daemon/daemon.d.ts +22 -0
  140. package/dist/daemon/daemon.js +156 -23
  141. package/dist/daemon/daemon.js.map +1 -1
  142. package/dist/daemon/eviction-loop.d.ts +40 -0
  143. package/dist/daemon/eviction-loop.js +67 -0
  144. package/dist/daemon/eviction-loop.js.map +1 -0
  145. package/dist/daemon/gate-logger.d.ts +9 -0
  146. package/dist/daemon/gate-logger.js +2 -0
  147. package/dist/daemon/gate-logger.js.map +1 -0
  148. package/dist/daemon/jinn-claim-loop-wiring.d.ts +33 -0
  149. package/dist/daemon/jinn-claim-loop-wiring.js +40 -0
  150. package/dist/daemon/jinn-claim-loop-wiring.js.map +1 -0
  151. package/dist/daemon/jinn-claim-loop.d.ts +24 -17
  152. package/dist/daemon/jinn-claim-loop.js +77 -23
  153. package/dist/daemon/jinn-claim-loop.js.map +1 -1
  154. package/dist/daemon/readiness-gate.d.ts +1 -4
  155. package/dist/daemon/readiness-gate.js.map +1 -1
  156. package/dist/daemon/skip-log-dedup.d.ts +69 -0
  157. package/dist/daemon/skip-log-dedup.js +106 -0
  158. package/dist/daemon/skip-log-dedup.js.map +1 -0
  159. package/dist/daemon/spend-cap-gate.d.ts +40 -0
  160. package/dist/daemon/spend-cap-gate.js +46 -0
  161. package/dist/daemon/spend-cap-gate.js.map +1 -0
  162. package/dist/dashboard/assets/index-C4huIsUW.css +32 -0
  163. package/dist/dashboard/assets/index-DkTglWXU.js +345 -0
  164. package/dist/dashboard/index.html +2 -2
  165. package/dist/discovery/factory.d.ts +17 -5
  166. package/dist/discovery/factory.js +46 -18
  167. package/dist/discovery/factory.js.map +1 -1
  168. package/dist/discovery/http.js +216 -3
  169. package/dist/discovery/http.js.map +1 -1
  170. package/dist/discovery/onchain.d.ts +5 -0
  171. package/dist/discovery/onchain.js +418 -15
  172. package/dist/discovery/onchain.js.map +1 -1
  173. package/dist/discovery/types.d.ts +75 -1
  174. package/dist/discovery/types.js +8 -10
  175. package/dist/discovery/types.js.map +1 -1
  176. package/dist/discovery/with-fallback.d.ts +7 -0
  177. package/dist/discovery/with-fallback.js +20 -0
  178. package/dist/discovery/with-fallback.js.map +1 -1
  179. package/dist/earning/bootstrap.d.ts +100 -4
  180. package/dist/earning/bootstrap.js +221 -74
  181. package/dist/earning/bootstrap.js.map +1 -1
  182. package/dist/earning/contracts.d.ts +14 -0
  183. package/dist/earning/contracts.js +17 -5
  184. package/dist/earning/contracts.js.map +1 -1
  185. package/dist/earning/funding-plan.js +27 -18
  186. package/dist/earning/funding-plan.js.map +1 -1
  187. package/dist/earning/jinn-rewards.d.ts +46 -0
  188. package/dist/earning/jinn-rewards.js +32 -0
  189. package/dist/earning/jinn-rewards.js.map +1 -1
  190. package/dist/earning/safe-adapter.d.ts +2 -0
  191. package/dist/earning/safe-adapter.js +37 -11
  192. package/dist/earning/safe-adapter.js.map +1 -1
  193. package/dist/earning/store.d.ts +8 -0
  194. package/dist/earning/store.js.map +1 -1
  195. package/dist/earning/testnet-setup-migration.d.ts +12 -0
  196. package/dist/earning/testnet-setup-migration.js +27 -1
  197. package/dist/earning/testnet-setup-migration.js.map +1 -1
  198. package/dist/earning/types.d.ts +21 -6
  199. package/dist/earning/viem-clients.d.ts +11 -4
  200. package/dist/earning/viem-clients.js +14 -5
  201. package/dist/earning/viem-clients.js.map +1 -1
  202. package/dist/erc8004/identity.d.ts +19 -3
  203. package/dist/erc8004/identity.js +21 -6
  204. package/dist/erc8004/identity.js.map +1 -1
  205. package/dist/erc8004/index.d.ts +1 -1
  206. package/dist/erc8004/index.js.map +1 -1
  207. package/dist/erc8004/reputation.d.ts +8 -0
  208. package/dist/erc8004/reputation.js +22 -3
  209. package/dist/erc8004/reputation.js.map +1 -1
  210. package/dist/events/types.d.ts +2 -2
  211. package/dist/harnesses/cost-estimates.d.ts +145 -0
  212. package/dist/harnesses/cost-estimates.js +297 -0
  213. package/dist/harnesses/cost-estimates.js.map +1 -0
  214. package/dist/harnesses/engine/engine.d.ts +78 -0
  215. package/dist/harnesses/engine/engine.js +153 -11
  216. package/dist/harnesses/engine/engine.js.map +1 -1
  217. package/dist/harnesses/engine/persistence.d.ts +51 -1
  218. package/dist/harnesses/engine/persistence.js +118 -5
  219. package/dist/harnesses/engine/persistence.js.map +1 -1
  220. package/dist/harnesses/engine/work-dir-reaper.d.ts +65 -0
  221. package/dist/harnesses/engine/work-dir-reaper.js +100 -0
  222. package/dist/harnesses/engine/work-dir-reaper.js.map +1 -0
  223. package/dist/harnesses/impls/hermes-agent/adapter.js +40 -0
  224. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  225. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +20 -0
  226. package/dist/harnesses/impls/hermes-agent/bootstrap.js +40 -6
  227. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  228. package/dist/harnesses/impls/hermes-agent/harness.d.ts +59 -1
  229. package/dist/harnesses/impls/hermes-agent/harness.js +104 -0
  230. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  231. package/dist/harnesses/impls/hermes-agent/prompt.d.ts +6 -6
  232. package/dist/harnesses/impls/hermes-agent/prompt.js +6 -6
  233. package/dist/harnesses/impls/index.d.ts +7 -0
  234. package/dist/harnesses/impls/index.js +16 -1
  235. package/dist/harnesses/impls/index.js.map +1 -1
  236. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +9 -0
  237. package/dist/harnesses/impls/learner/adapters/codex-code.js +30 -8
  238. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  239. package/dist/harnesses/impls/learner/harness.d.ts +38 -4
  240. package/dist/harnesses/impls/learner/harness.js +96 -2
  241. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  242. package/dist/harnesses/impls/learner/harvest.d.ts +1 -1
  243. package/dist/harnesses/impls/learner/harvest.js +23 -5
  244. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  245. package/dist/harnesses/impls/learner/plugin-path.d.ts +0 -13
  246. package/dist/harnesses/impls/learner/plugin-path.js +35 -15
  247. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  248. package/dist/harnesses/impls/learner/restoration-patch.d.ts +2 -2
  249. package/dist/harnesses/impls/learner/restoration-patch.js +25 -6
  250. package/dist/harnesses/impls/learner/restoration-patch.js.map +1 -1
  251. package/dist/harnesses/impls/learner/types.d.ts +11 -0
  252. package/dist/harnesses/impls/stub.d.ts +58 -0
  253. package/dist/harnesses/impls/stub.js +89 -0
  254. package/dist/harnesses/impls/stub.js.map +1 -0
  255. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.d.ts +69 -50
  256. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +178 -93
  257. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  258. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +12 -1
  259. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +121 -7
  260. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  261. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +88 -4
  262. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +143 -22
  263. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
  264. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +6 -0
  265. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +1 -1
  266. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  267. package/dist/harnesses/readiness-registry.d.ts +7 -0
  268. package/dist/harnesses/readiness-registry.js +18 -1
  269. package/dist/harnesses/readiness-registry.js.map +1 -1
  270. package/dist/main.js +419 -111
  271. package/dist/main.js.map +1 -1
  272. package/dist/observability/emit-event.d.ts +3 -2
  273. package/dist/observability/emit-event.js +22 -1
  274. package/dist/observability/emit-event.js.map +1 -1
  275. package/dist/operator-errors.d.ts +7 -0
  276. package/dist/operator-errors.js +13 -1
  277. package/dist/operator-errors.js.map +1 -1
  278. package/dist/plugins/learner/.claude-plugin/plugin.json +9 -0
  279. package/dist/plugins/learner/.codex-plugin/plugin.json +39 -0
  280. package/dist/plugins/learner/AGENTS.md +40 -0
  281. package/dist/plugins/learner/CLAUDE.md +33 -0
  282. package/dist/plugins/learner/README.md +59 -0
  283. package/dist/plugins/learner/hooks/hooks.json +16 -0
  284. package/dist/plugins/learner/hooks/session-start +38 -0
  285. package/dist/plugins/learner/skills/learn/SKILL.md +412 -0
  286. package/dist/plugins/learner/skills/learn/analyst-prompt.md +68 -0
  287. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +94 -0
  288. package/dist/plugins/learner/skills/learn/explorer-prompt.md +53 -0
  289. package/dist/plugins/learner/skills/learn/planner-prompt.md +87 -0
  290. package/dist/plugins/learner/skills/learn/promoter-prompt.md +113 -0
  291. package/dist/plugins/learner/skills/learn/step-worker-prompt.md +47 -0
  292. package/dist/plugins/learner/skills/learn/strategist-prompt.md +85 -0
  293. package/dist/preflight/rpc-network.d.ts +40 -0
  294. package/dist/preflight/rpc-network.js +67 -1
  295. package/dist/preflight/rpc-network.js.map +1 -1
  296. package/dist/restart-daemon.d.ts +90 -0
  297. package/dist/restart-daemon.js +95 -0
  298. package/dist/restart-daemon.js.map +1 -0
  299. package/dist/rpc/transport.d.ts +109 -0
  300. package/dist/rpc/transport.js +220 -0
  301. package/dist/rpc/transport.js.map +1 -0
  302. package/dist/scripts/donation-consumption-acceptance.js +7 -28
  303. package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
  304. package/dist/setup/halt-mode.d.ts +14 -0
  305. package/dist/setup/halt-mode.js +17 -0
  306. package/dist/setup/halt-mode.js.map +1 -0
  307. package/dist/solver-nets/prediction-operator-ux.d.ts +1 -2
  308. package/dist/solver-nets/prediction-operator-ux.js +90 -47
  309. package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
  310. package/dist/solver-nets/registry.d.ts +20 -1
  311. package/dist/solver-nets/registry.js +38 -25
  312. package/dist/solver-nets/registry.js.map +1 -1
  313. package/dist/solver-types/_swe-rebench-v2-pool-cache.d.ts +58 -0
  314. package/dist/solver-types/_swe-rebench-v2-pool-cache.js +87 -0
  315. package/dist/solver-types/_swe-rebench-v2-pool-cache.js.map +1 -0
  316. package/dist/solver-types/_swe-rebench-v2-pool.d.ts +9 -2
  317. package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
  318. package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
  319. package/dist/solver-types/_swe-rebench-v2-substrate.d.ts +1 -0
  320. package/dist/solver-types/_swe-rebench-v2-substrate.js +10 -0
  321. package/dist/solver-types/_swe-rebench-v2-substrate.js.map +1 -1
  322. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +94 -1
  323. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +305 -39
  324. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  325. package/dist/solver-types/swe-rebench-v2-auto.d.ts +22 -7
  326. package/dist/solver-types/swe-rebench-v2-auto.js +57 -20
  327. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  328. package/dist/solver-types/swe-rebench-v2.d.ts +18 -2
  329. package/dist/solver-types/swe-rebench-v2.js +310 -94
  330. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  331. package/dist/solvernets/daemon-init.d.ts +10 -2
  332. package/dist/solvernets/daemon-init.js +22 -2
  333. package/dist/solvernets/daemon-init.js.map +1 -1
  334. package/dist/solvernets/launched-record-dispatcher.d.ts +4 -0
  335. package/dist/solvernets/launched-record-dispatcher.js +44 -7
  336. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  337. package/dist/solvernets/store.d.ts +5 -0
  338. package/dist/solvernets/store.js +1 -0
  339. package/dist/solvernets/store.js.map +1 -1
  340. package/dist/spend/credential.d.ts +8 -0
  341. package/dist/spend/credential.js +30 -0
  342. package/dist/spend/credential.js.map +1 -0
  343. package/dist/spend/daemon-config.d.ts +13 -0
  344. package/dist/spend/daemon-config.js +24 -0
  345. package/dist/spend/daemon-config.js.map +1 -0
  346. package/dist/spend/pricing.d.ts +16 -0
  347. package/dist/spend/pricing.js +26 -0
  348. package/dist/spend/pricing.js.map +1 -0
  349. package/dist/spend/record.d.ts +13 -0
  350. package/dist/spend/record.js +30 -0
  351. package/dist/spend/record.js.map +1 -0
  352. package/dist/spend/usage.d.ts +27 -0
  353. package/dist/spend/usage.js +113 -0
  354. package/dist/spend/usage.js.map +1 -0
  355. package/dist/store/store.d.ts +61 -0
  356. package/dist/store/store.js +302 -7
  357. package/dist/store/store.js.map +1 -1
  358. package/dist/tasks/sources.d.ts +18 -1
  359. package/dist/tasks/sources.js +33 -5
  360. package/dist/tasks/sources.js.map +1 -1
  361. package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
  362. package/dist/tx-retry.d.ts +166 -19
  363. package/dist/tx-retry.js +310 -32
  364. package/dist/tx-retry.js.map +1 -1
  365. package/dist/types/payloads/prediction-apy-v0.d.ts +5 -5
  366. package/dist/types/payloads/prediction-v0.d.ts +5 -5
  367. package/dist/types/task-document.d.ts +392 -0
  368. package/dist/types/task-document.js +10 -0
  369. package/dist/types/task-document.js.map +1 -1
  370. package/dist/types/task.d.ts +28 -0
  371. package/dist/util/extract-tx-hash.d.ts +14 -0
  372. package/dist/util/extract-tx-hash.js +19 -0
  373. package/dist/util/extract-tx-hash.js.map +1 -0
  374. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +1 -1
  375. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +3 -0
  376. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -0
  377. package/package.json +36 -13
  378. package/plugins/swe-rebench-v2-diffmin/README.md +10 -9
  379. package/plugins/swe-rebench-v2-diffmin/jinn.plugin.json +1 -1
  380. package/plugins/swe-rebench-v2-diffmin/skills/diffmin/SKILL.md +15 -10
  381. package/plugins/swe-rebench-v2-diffmin/skills/test-map/SKILL.md +10 -12
  382. package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +1 -1
  383. package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +3 -3
  384. package/plugins/swe-rebench-v2-runtime/README.md +6 -6
  385. package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +2 -3
  386. package/plugins/swe-rebench-v2-runtime/skills/task/SKILL.md +69 -0
  387. package/dist/dashboard/assets/index-DOlzFN8a.css +0 -32
  388. package/dist/dashboard/assets/index-NkZ7CTAT.js +0 -140
  389. package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +0 -29
  390. package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +0 -53
@@ -7,12 +7,52 @@ import { PeerSync } from '../api/peers.js';
7
7
  import { RewardClaimLoop } from './reward-claim-loop.js';
8
8
  import { TaskEngine } from '../harnesses/engine/engine.js';
9
9
  import { BalanceTopupLoop } from './balance-topup-loop.js';
10
+ import { EvictionLoop } from './eviction-loop.js';
11
+ import { CheckpointLoop } from './checkpoint-loop.js';
10
12
  import { JinnClaimLoop } from './jinn-claim-loop.js';
11
13
  import { emitEvent } from '../observability/emit-event.js';
12
14
  import { emitStructured } from '../events/emitter.js';
15
+ import { SafeInnerRevertError, isNonRecoverableInnerRevert, formatDecodedRevert, } from '../adapters/mech/safe-revert.js';
13
16
  import { StaticConfiguredTaskSource } from '../tasks/sources.js';
14
17
  import { gateClaimByReadiness } from './readiness-gate.js';
18
+ import { gateClaimBySpendCap } from './spend-cap-gate.js';
19
+ import { SkipLogDeduper } from './skip-log-dedup.js';
15
20
  const DEFAULT_API_PORT = 7331;
21
+ /**
22
+ * Engine-watcher catch sites previously logged every error at
23
+ * level=error / kind=tick_error, including expected race-loss reverts
24
+ * (TCMaxVerdictsReached, TCAttemptAlreadyFinalized, TCEvaluationDeadlinePassed)
25
+ * that mean "another operator won this slot, this one is a no-op." Those
26
+ * reverts are normal on a multi-operator network — the contract correctly
27
+ * rejecting the race-loser — but at level=error they drowned out genuine
28
+ * failures on dashboards.
29
+ *
30
+ * Gate severity on the existing `isNonRecoverableInnerRevert` classifier:
31
+ * when a SafeInnerRevertError's decodedName is in the non-recoverable set,
32
+ * emit `kind=race_lost / outcome=ok` (which resolves to level=info via the
33
+ * outcome→level mapping in emitEvent). Anything else continues to emit
34
+ * `kind=tick_error / outcome=failed / level=error`. See #574.
35
+ */
36
+ function emitTickErrorOrRaceLost(store, err, ctx, component) {
37
+ if (err instanceof SafeInnerRevertError && isNonRecoverableInnerRevert(err.decodedName)) {
38
+ emitEvent(store, {
39
+ kind: 'race_lost',
40
+ requestId: ctx.requestId,
41
+ solverType: ctx.solverType,
42
+ outcome: 'ok',
43
+ // decodedName is non-null by virtue of isNonRecoverableInnerRevert returning true.
44
+ detail: formatDecodedRevert(err.decodedName, err.decodedArgs),
45
+ }, component);
46
+ return;
47
+ }
48
+ emitEvent(store, {
49
+ kind: 'tick_error',
50
+ requestId: ctx.requestId,
51
+ solverType: ctx.solverType,
52
+ outcome: 'failed',
53
+ detail: err instanceof Error ? err.message : String(err),
54
+ }, component);
55
+ }
16
56
  export class Daemon {
17
57
  config;
18
58
  store;
@@ -31,7 +71,10 @@ export class Daemon {
31
71
  apiToken;
32
72
  rewardClaimLoop;
33
73
  balanceTopupLoop;
74
+ evictionLoop;
75
+ checkpointLoop;
34
76
  jinnClaimLoop;
77
+ skipLogDeduper = new SkipLogDeduper();
35
78
  constructor(config) {
36
79
  this.config = config;
37
80
  if (config.store) {
@@ -72,6 +115,12 @@ export class Daemon {
72
115
  jinnStore: this.store,
73
116
  });
74
117
  }
118
+ if (config.evictionCheck && config.evictionCheck.intervalMs > 0) {
119
+ this.evictionLoop = new EvictionLoop(config.evictionCheck);
120
+ }
121
+ if (config.checkpoint && config.checkpoint.intervalMs > 0) {
122
+ this.checkpointLoop = new CheckpointLoop(config.checkpoint);
123
+ }
75
124
  if (config.jinnClaim && config.jinnClaim.intervalMs > 0) {
76
125
  this.jinnClaimLoop = new JinnClaimLoop({
77
126
  ...config.jinnClaim,
@@ -182,6 +231,28 @@ export class Daemon {
182
231
  });
183
232
  }));
184
233
  }
234
+ if (this.evictionLoop) {
235
+ this.loopPromises.push(this.evictionLoop.run().catch(err => {
236
+ console.error('[daemon] eviction-check crashed:', err);
237
+ emitStructured({
238
+ kind: 'error',
239
+ message: 'eviction-check loop crashed',
240
+ errorCode: 'eviction_check_crashed',
241
+ details: { error: err instanceof Error ? err.message : String(err) },
242
+ });
243
+ }));
244
+ }
245
+ if (this.checkpointLoop) {
246
+ this.loopPromises.push(this.checkpointLoop.run().catch(err => {
247
+ console.error('[daemon] checkpoint-loop crashed:', err);
248
+ emitStructured({
249
+ kind: 'error',
250
+ message: 'checkpoint loop crashed',
251
+ errorCode: 'checkpoint_crashed',
252
+ details: { error: err instanceof Error ? err.message : String(err) },
253
+ });
254
+ }));
255
+ }
185
256
  if (this.jinnClaimLoop) {
186
257
  this.loopPromises.push(this.jinnClaimLoop.run().catch(err => {
187
258
  console.error('[daemon] jinn-claim crashed:', err);
@@ -212,6 +283,8 @@ export class Daemon {
212
283
  this.deliveryWatcherLoop.stop();
213
284
  this.rewardClaimLoop?.stop();
214
285
  this.balanceTopupLoop?.stop();
286
+ this.evictionLoop?.stop();
287
+ this.checkpointLoop?.stop();
215
288
  this.jinnClaimLoop?.stop();
216
289
  this.peerSync?.stop();
217
290
  // Stop the adapter to unblock any pending async iterators
@@ -250,46 +323,117 @@ export class Daemon {
250
323
  */
251
324
  async _runEngineWatcherLoop(engine) {
252
325
  const DEFAULT_WINDOW_MS = 24 * 60 * 60 * 1_000; // 24 h
326
+ // Yield to the macrotask queue every N announcements so even the first full
327
+ // scan of a large backlog hands control back to the HTTP server (so /health
328
+ // doesn't spike) instead of running as one uninterruptible contiguous block.
329
+ const YIELD_EVERY = 10;
330
+ let scanned = 0;
253
331
  for await (const taskAnnouncement of this.adapter.watchForTasks()) {
254
332
  if (this.engineStopped)
255
333
  break;
256
334
  if (!taskAnnouncement.taskId)
257
335
  continue;
336
+ if (++scanned % YIELD_EVERY === 0) {
337
+ // setImmediate schedules a macrotask: the event loop drains pending I/O
338
+ // callbacks (HTTP requests) before resuming this loop.
339
+ await new Promise(resolve => setImmediate(resolve));
340
+ if (this.engineStopped)
341
+ break;
342
+ }
343
+ // canAcceptTask() resolves manifests, validates schemas, and probes
344
+ // impl.isReady() — expensive enough that re-running it for every
345
+ // persistently-unacceptable task each pass starves the HTTP API. Fast-skip
346
+ // tasks skipped within the bounded SKIP_RECHECK_TTL_MS; once the TTL
347
+ // elapses we fall through so a now-acceptable task is still picked up.
348
+ if (!this.skipLogDeduper.shouldRecheck(taskAnnouncement.taskId)) {
349
+ continue;
350
+ }
258
351
  const solverType = taskAnnouncement.task.solverType ?? undefined;
259
352
  const taskRole = (taskAnnouncement.task.role ?? 'restoration');
260
353
  const accept = await engine.canAcceptTask({ solverType, taskRole, task: taskAnnouncement.task });
261
354
  if (!accept.ok) {
262
- console.log(`[daemon] skipping task ${taskAnnouncement.taskId} — ${accept.reason}`);
355
+ this.skipLogDeduper.recordSkip(taskAnnouncement.taskId, accept.reason);
356
+ // Log once per (taskId, reason) — the engine-watcher re-observes every
357
+ // pending task each pass, so an unguarded log here floods the console.
358
+ if (this.skipLogDeduper.shouldLog(taskAnnouncement.taskId, accept.reason)) {
359
+ console.log(`[daemon] skipping task ${taskAnnouncement.taskId} — ${accept.reason}`);
360
+ }
263
361
  continue;
264
362
  }
363
+ // Task is acceptable now; reset skip state so a future skip logs once and
364
+ // is re-checked immediately rather than fast-skipped.
365
+ this.skipLogDeduper.forget(taskAnnouncement.taskId);
366
+ const manifestCid = taskAnnouncement.task.solverNetManifestCid;
367
+ const gateLogger = { warn: (msg) => console.warn(msg), info: (msg) => console.log(msg) };
265
368
  // Readiness gate: if the task's harness is not ready (e.g. claude unauthenticated),
266
369
  // skip this task without blocking other loops. Logs once per ready↔not-ready transition.
267
370
  if (this.config.harnessReadinessRegistry) {
268
- const manifestCid = taskAnnouncement.task.solverNetManifestCid;
269
371
  if (manifestCid) {
270
372
  const gate = gateClaimByReadiness({
271
373
  manifestCid,
272
374
  registry: this.config.harnessReadinessRegistry,
273
- logger: { warn: (msg) => console.warn(msg), info: (msg) => console.log(msg) },
375
+ logger: gateLogger,
274
376
  });
275
377
  if (!gate.proceed)
276
378
  continue;
277
379
  }
278
380
  }
381
+ // Spend-cap gate: skip claims for a credential that has hit its daily budget.
382
+ if (this.config.spendCap) {
383
+ // No manifest CID -> no credential to attribute -> task is not spend-gated.
384
+ const credentialId = manifestCid
385
+ ? this.config.spendCap.manifestCredentials[manifestCid]
386
+ : undefined;
387
+ const capUsd = credentialId ? this.config.spendCap.caps[credentialId] : undefined;
388
+ if (credentialId && capUsd != null) {
389
+ const spentTodayUsd = this.store.spentTodayMicros(credentialId) / 1_000_000;
390
+ const spendGate = gateClaimBySpendCap({
391
+ credentialId,
392
+ capUsd,
393
+ spentTodayUsd,
394
+ logger: gateLogger,
395
+ });
396
+ if (!spendGate.proceed) {
397
+ if (spendGate.newlyPaused) {
398
+ emitEvent(this.store, {
399
+ kind: 'spend_cap_reached',
400
+ requestId: taskAnnouncement.taskId,
401
+ outcome: 'paused',
402
+ detail: spendGate.reason,
403
+ }, 'daemon');
404
+ }
405
+ continue;
406
+ }
407
+ }
408
+ }
279
409
  let request;
410
+ let runStartedAt;
280
411
  try {
281
412
  request = await this.adapter.claimTask(taskAnnouncement.taskId);
282
413
  this.store.recordOwnActivity(request.requestId, 'claimed');
414
+ runStartedAt = Date.now();
283
415
  }
284
416
  catch (err) {
417
+ const errorMessage = err instanceof Error ? err.message : String(err);
285
418
  console.error(`[daemon] claimTask failed for task ${taskAnnouncement.taskId}:`, err instanceof Error ? err.message : err);
286
- emitEvent(this.store, {
287
- kind: 'tick_error',
419
+ emitTickErrorOrRaceLost(this.store, err, { requestId: taskAnnouncement.taskId, solverType }, 'daemon');
420
+ // Paired SSE signal for the operator-app `claim_failed` notification
421
+ // (OPERATOR-APP-SPEC §2.10). The activity-DB row above (durable
422
+ // record) is written by `emitTickErrorOrRaceLost`; this is the
423
+ // event-stream channel `useNotifications` listens on. See spec
424
+ // 2026-05-26-issue-442-claim-failed-notification-design.md.
425
+ emitStructured({
426
+ kind: 'intent',
427
+ message: 'Task claim failed',
288
428
  requestId: taskAnnouncement.taskId,
289
- solverType,
290
- outcome: 'failed',
291
- detail: err instanceof Error ? err.message : String(err),
292
- }, 'daemon');
429
+ errorCode: 'claim_failed',
430
+ details: {
431
+ taskId: taskAnnouncement.taskId,
432
+ solverType,
433
+ source: 'daemon.claimTask',
434
+ error: errorMessage,
435
+ },
436
+ });
293
437
  continue;
294
438
  }
295
439
  const windowStartTs = request.task.window?.startTs ?? Date.now();
@@ -316,6 +460,7 @@ export class Daemon {
316
460
  taskRole: (request.task.role ?? 'restoration'),
317
461
  windowStartTs,
318
462
  windowEndTs,
463
+ runStartedAt,
319
464
  task: request.task,
320
465
  });
321
466
  // Drive the engine state machine for this request.
@@ -327,24 +472,12 @@ export class Daemon {
327
472
  // would serialise all task processing into a single queue.
328
473
  engine.process(request.requestId).catch(err => {
329
474
  console.error(`[daemon] engine.process failed for ${request.requestId}:`, err instanceof Error ? err.message : err);
330
- emitEvent(this.store, {
331
- kind: 'tick_error',
332
- requestId: request.requestId,
333
- solverType,
334
- outcome: 'failed',
335
- detail: err instanceof Error ? err.message : String(err),
336
- }, 'daemon');
475
+ emitTickErrorOrRaceLost(this.store, err, { requestId: request.requestId, solverType }, 'daemon');
337
476
  });
338
477
  }
339
478
  catch (err) {
340
479
  console.error(`[daemon] engine.observe failed for ${request.requestId}:`, err instanceof Error ? err.message : err);
341
- emitEvent(this.store, {
342
- kind: 'tick_error',
343
- requestId: request.requestId,
344
- solverType,
345
- outcome: 'failed',
346
- detail: err instanceof Error ? err.message : String(err),
347
- }, 'daemon');
480
+ emitTickErrorOrRaceLost(this.store, err, { requestId: request.requestId, solverType }, 'daemon');
348
481
  }
349
482
  }
350
483
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Periodic eviction-check + auto-restake loop (jinn-mono-hjex.3).
3
+ *
4
+ * Polls the staking proxy's getStakingState for each complete service. When
5
+ * state === 2 (Evicted) it calls the injected `recoverEvictedService` helper
6
+ * so the service is restaked without requiring a daemon restart.
7
+ *
8
+ * Scheduling: interval from config (default 60s). Set to 0 to disable.
9
+ * Env: JINN_EVICTION_CHECK_INTERVAL_MS
10
+ */
11
+ import { STAKING_ABI } from '../earning/contracts.js';
12
+ import type { FleetStateStore } from '../earning/store.js';
13
+ import type { JinnOnchainNetwork } from '../earning/viem-clients.js';
14
+ import { type ServiceState } from '../earning/types.js';
15
+ export type EvictionLoopReadContract = (opts: {
16
+ address: `0x${string}`;
17
+ abi: typeof STAKING_ABI;
18
+ functionName: 'getStakingState';
19
+ args: [bigint];
20
+ }) => Promise<bigint | number>;
21
+ export interface EvictionLoopConfig {
22
+ intervalMs: number;
23
+ store: FleetStateStore;
24
+ chain: JinnOnchainNetwork;
25
+ readContract: EvictionLoopReadContract;
26
+ /**
27
+ * Injected recovery function. In production this wraps
28
+ * `recoverEvictedService` from `../earning/bootstrap.js`.
29
+ * Accepts a ServiceState and kicks off the reStake call.
30
+ */
31
+ recoverEvictedService: (svc: ServiceState) => Promise<void>;
32
+ }
33
+ export declare class EvictionLoop {
34
+ private readonly config;
35
+ private stopped;
36
+ constructor(config: EvictionLoopConfig);
37
+ stop(): void;
38
+ runOnce(): Promise<void>;
39
+ run(): Promise<void>;
40
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Periodic eviction-check + auto-restake loop (jinn-mono-hjex.3).
3
+ *
4
+ * Polls the staking proxy's getStakingState for each complete service. When
5
+ * state === 2 (Evicted) it calls the injected `recoverEvictedService` helper
6
+ * so the service is restaked without requiring a daemon restart.
7
+ *
8
+ * Scheduling: interval from config (default 60s). Set to 0 to disable.
9
+ * Env: JINN_EVICTION_CHECK_INTERVAL_MS
10
+ */
11
+ import { getAddress } from 'viem';
12
+ import { STAKING_ABI } from '../earning/contracts.js';
13
+ import { displayFleetServiceIndex } from '../earning/fleet-display-index.js';
14
+ import { isStakedLikeServiceStep } from '../earning/types.js';
15
+ // ---------------------------------------------------------------------------
16
+ // EvictionLoop
17
+ // ---------------------------------------------------------------------------
18
+ export class EvictionLoop {
19
+ config;
20
+ stopped = false;
21
+ constructor(config) {
22
+ this.config = config;
23
+ }
24
+ stop() {
25
+ this.stopped = true;
26
+ }
27
+ async runOnce() {
28
+ const state = await this.config.store.load(this.config.chain);
29
+ for (const svc of state.services) {
30
+ if (!svc.service_id || !svc.staking_address)
31
+ continue;
32
+ if (!isStakedLikeServiceStep(svc.step))
33
+ continue;
34
+ const displayIndex = displayFleetServiceIndex(svc);
35
+ try {
36
+ const stakingState = await this.config.readContract({
37
+ address: getAddress(svc.staking_address),
38
+ abi: STAKING_ABI,
39
+ functionName: 'getStakingState',
40
+ args: [BigInt(svc.service_id)],
41
+ });
42
+ if (Number(stakingState) === 2) {
43
+ console.error(`[eviction-loop] Service ${displayIndex} (service_id ${svc.service_id}) is evicted; triggering auto-restake`);
44
+ await this.config.recoverEvictedService(svc);
45
+ }
46
+ }
47
+ catch (err) {
48
+ console.error(`[eviction-loop] Service ${displayIndex}: error checking staking state (non-fatal): ${err instanceof Error ? err.message : err}`);
49
+ }
50
+ }
51
+ }
52
+ async run() {
53
+ if (this.config.intervalMs <= 0) {
54
+ return;
55
+ }
56
+ while (!this.stopped) {
57
+ try {
58
+ await this.runOnce();
59
+ }
60
+ catch (err) {
61
+ console.error('[eviction-loop] Tick failed (non-fatal):', err instanceof Error ? err.message : err);
62
+ }
63
+ await new Promise(r => setTimeout(r, this.config.intervalMs));
64
+ }
65
+ }
66
+ }
67
+ //# sourceMappingURL=eviction-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eviction-loop.js","sourceRoot":"","sources":["../../src/daemon/eviction-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAqB,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAqB,MAAM,qBAAqB,CAAC;AA0BjF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,OAAO,YAAY;IAGM;IAFrB,OAAO,GAAG,KAAK,CAAC;IAExB,YAA6B,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAE3D,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE9D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,eAAe;gBAAE,SAAS;YACtD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEjD,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAEnD,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAClD,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,eAAe,CAAkB;oBACzD,GAAG,EAAE,WAAW;oBAChB,YAAY,EAAE,iBAAiB;oBAC/B,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iBAC/B,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,KAAK,CACX,2BAA2B,YAAY,gBAAgB,GAAG,CAAC,UAAU,uCAAuC,CAC7G,CAAC;oBACF,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACX,2BAA2B,YAAY,+CAA+C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CACjI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACX,0CAA0C,EAC1C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared logger contract for pre-claim gates (readiness, spend-cap, ...).
3
+ *
4
+ * Gates log only on state-change transitions, so they need just `warn`/`info`.
5
+ */
6
+ export interface GateLogger {
7
+ warn(msg: string): void;
8
+ info(msg: string): void;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gate-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-logger.js","sourceRoot":"","sources":["../../src/daemon/gate-logger.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import type { Address, PublicClient, WalletClient } from 'viem';
2
+ import type { JinnMviConfig } from '../earning/contracts.js';
3
+ import type { FleetStateStore } from '../earning/store.js';
4
+ import type { JinnOnchainNetwork } from '../earning/viem-clients.js';
5
+ import type { Store } from '../store/store.js';
6
+ import type { JinnClaimLoopConfig, JinnClaimSubmissionMode, JinnMessengerMode } from './jinn-claim-loop.js';
7
+ export interface JinnClaimL1ClientBundle {
8
+ public: PublicClient;
9
+ wallet: WalletClient;
10
+ }
11
+ export declare function shouldWireJinnClaimL1Signer(args: {
12
+ enabled: boolean;
13
+ intervalMs: number;
14
+ submissionMode: JinnClaimSubmissionMode;
15
+ distributorAddress?: string;
16
+ ethereumRpcUrl?: string;
17
+ }): boolean;
18
+ export declare function buildJinnClaimLoopConfig(args: {
19
+ enabled: boolean;
20
+ intervalMs: number;
21
+ submissionMode: JinnClaimSubmissionMode;
22
+ messengerMode: JinnMessengerMode;
23
+ mvi: Pick<JinnMviConfig, 'claimEmitter' | 'distributor' | 'messenger'>;
24
+ l2Client: PublicClient;
25
+ l2ProofClient?: PublicClient;
26
+ l2Wallet: WalletClient;
27
+ l1Clients?: JinnClaimL1ClientBundle;
28
+ store: FleetStateStore;
29
+ chain: JinnOnchainNetwork;
30
+ optimismPortalAddress?: Address;
31
+ disputeGameFactoryAddress?: Address;
32
+ jinnStore?: Store;
33
+ }): JinnClaimLoopConfig | undefined;
@@ -0,0 +1,40 @@
1
+ export function shouldWireJinnClaimL1Signer(args) {
2
+ return (args.enabled &&
3
+ args.intervalMs > 0 &&
4
+ args.submissionMode === 'submit' &&
5
+ !!args.distributorAddress &&
6
+ !!args.ethereumRpcUrl);
7
+ }
8
+ export function buildJinnClaimLoopConfig(args) {
9
+ if (!args.enabled || args.intervalMs <= 0 || !args.mvi.claimEmitter) {
10
+ return undefined;
11
+ }
12
+ const base = {
13
+ intervalMs: args.intervalMs,
14
+ submissionMode: args.submissionMode,
15
+ l2Client: args.l2Client,
16
+ l2ProofClient: args.l2ProofClient,
17
+ l2Wallet: args.l2Wallet,
18
+ store: args.store,
19
+ chain: args.chain,
20
+ claimEmitterAddress: args.mvi.claimEmitter,
21
+ messengerMode: args.messengerMode,
22
+ optimismPortalAddress: args.optimismPortalAddress,
23
+ disputeGameFactoryAddress: args.disputeGameFactoryAddress,
24
+ jinnStore: args.jinnStore,
25
+ };
26
+ if (args.submissionMode === 'emit-only') {
27
+ return base;
28
+ }
29
+ if (!args.l1Clients || !args.mvi.distributor || !args.mvi.messenger) {
30
+ return undefined;
31
+ }
32
+ return {
33
+ ...base,
34
+ l1Client: args.l1Clients.public,
35
+ l1Wallet: args.l1Clients.wallet,
36
+ distributorAddress: args.mvi.distributor,
37
+ messengerAddress: args.mvi.messenger,
38
+ };
39
+ }
40
+ //# sourceMappingURL=jinn-claim-loop-wiring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jinn-claim-loop-wiring.js","sourceRoot":"","sources":["../../src/daemon/jinn-claim-loop-wiring.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,2BAA2B,CAAC,IAM3C;IACC,OAAO,CACL,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,UAAU,GAAG,CAAC;QACnB,IAAI,CAAC,cAAc,KAAK,QAAQ;QAChC,CAAC,CAAC,IAAI,CAAC,kBAAkB;QACzB,CAAC,CAAC,IAAI,CAAC,cAAc,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAexC;IACC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,YAAuB;QACrD,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;QACzD,SAAS,EAAE,IAAI,CAAC,SAAS;KACmC,CAAC;IAE/D,IAAI,IAAI,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;QAC/B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;QAC/B,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,WAAsB;QACnD,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,SAAoB;KAChD,CAAC;AACJ,CAAC"}
@@ -16,28 +16,34 @@
16
16
  * Sepolia / Ethereum. The distributor verifies, applies channel
17
17
  * weights, and mints to the operator multisig + DAO Timelock.
18
18
  *
19
- * The loop is disabled when no `distributorAddress` is configured. Each
20
- * tick iterates over staked services in the FleetStateStore. Failures are
21
- * logged and surfaced via `tick_error` observability events; they don't
22
- * crash the daemon. Replay protection lives entirely in the distributor's
23
- * accumulators — repeated submissions are no-ops on the second mint.
19
+ * The loop is disabled unless the operator explicitly enables it. Each tick
20
+ * iterates over staked services in the FleetStateStore. Failures are logged
21
+ * and surfaced via `tick_error` observability events; they don't crash the
22
+ * daemon. Replay protection lives entirely in the distributor's accumulators
23
+ * — repeated submissions are no-ops on the second mint.
24
24
  *
25
- * Configuration: `jinnClaimLoopIntervalMs` (default 1h), `jinnMessengerMode`
26
- * (`canonical` | `mock`). The `mock` path requires the daemon's L1 wallet to
27
- * be the MockMessenger's owner (set at deploy).
25
+ * Configuration: `jinnClaimLoopEnabled`, `jinnClaimLoopIntervalMs` (default
26
+ * 1h), `jinnClaimSubmissionMode` (`emit-only` | `submit`),
27
+ * `jinnMessengerMode` (`canonical` | `mock`). The `mock` submit path requires
28
+ * the daemon's L1 wallet to be the MockMessenger's owner (set at deploy).
28
29
  *
29
- * Automated `run()` / `runOnce()` **only execute mock-mode** emit→fixture→claim.
30
- * When `jinnMessengerMode === 'canonical'`, scheduled ticks **skip** emitting:
31
- * canonical OP-Stack finality is multi-day (see R-1); operators should use mock
32
- * for burn-in and run `tsx scripts/verify-canonical-canary.ts` for
33
- * verifier-only proofs after an intentional L2 emit.
30
+ * Automated submit-mode `run()` / `runOnce()` **only execute mock-mode**
31
+ * emit→fixture→claim. When `jinnMessengerMode === 'canonical'`, scheduled
32
+ * submit ticks **skip** emitting: canonical OP-Stack finality is multi-day
33
+ * (see R-1); operators should use mock for burn-in and run
34
+ * `tsx scripts/verify-canonical-canary.ts` for verifier-only proofs after an
35
+ * intentional L2 emit. Emit-only mode stops after the L2 ticket and can run
36
+ * without L1 wiring.
34
37
  */
35
38
  import type { Address, Hex, PublicClient, WalletClient } from 'viem';
36
39
  import type { FleetStateStore } from '../earning/store.js';
37
40
  import type { Store } from '../store/store.js';
38
41
  export type JinnMessengerMode = 'canonical' | 'mock';
42
+ export type JinnClaimSubmissionMode = 'emit-only' | 'submit';
39
43
  export interface JinnClaimLoopConfig {
40
44
  intervalMs: number;
45
+ /** 'emit-only' records L2 tickets only; 'submit' continues to L1. */
46
+ submissionMode: JinnClaimSubmissionMode;
41
47
  /** PublicClient bound to the L2 measurement chain (Base / Base Sepolia). */
42
48
  l2Client: PublicClient;
43
49
  /**
@@ -49,18 +55,18 @@ export interface JinnClaimLoopConfig {
49
55
  /** WalletClient bound to L2 — pays gas for `emitClaim`. */
50
56
  l2Wallet: WalletClient;
51
57
  /** PublicClient bound to the L1 governance chain (Ethereum / Sepolia). */
52
- l1Client: PublicClient;
58
+ l1Client?: PublicClient;
53
59
  /** WalletClient bound to L1 — pays gas for `setFixture` (mock) + `claim`. */
54
- l1Wallet: WalletClient;
60
+ l1Wallet?: WalletClient;
55
61
  /** Per-service state. We tick each service with a stake. */
56
62
  store: FleetStateStore;
57
63
  chain: 'base' | 'base-sepolia';
58
64
  /** L2 TaskClaimEmitter address. Required. */
59
65
  claimEmitterAddress: Address;
60
66
  /** L1 JinnDistributor address. Required. */
61
- distributorAddress: Address;
67
+ distributorAddress?: Address;
62
68
  /** L1 messenger address. Required (MockMessenger or CanonicalOpStackMessenger). */
63
- messengerAddress: Address;
69
+ messengerAddress?: Address;
64
70
  /** 'canonical' or 'mock'. Defaults to 'canonical'. */
65
71
  messengerMode: JinnMessengerMode;
66
72
  /** Canonical-mode only — L1 OptimismPortal2 anchoring L2 output roots. */
@@ -118,6 +124,7 @@ export declare class JinnClaimLoop {
118
124
  * to the emit block to avoid scanning the full chain on every tick.
119
125
  */
120
126
  private readSnapshot;
127
+ private requireL1SubmitConfig;
121
128
  /** Loop forever, sleeping `intervalMs` between ticks. */
122
129
  run(): Promise<void>;
123
130
  }