@jinn-network/client 0.1.6 → 0.1.7-canary.17a8ecb8

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 (351) 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 -1
  7. package/dist/adapters/mech/adapter.js +268 -57
  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/api/activity-events-endpoint.d.ts +14 -0
  24. package/dist/api/activity-events-endpoint.js +59 -0
  25. package/dist/api/activity-events-endpoint.js.map +1 -0
  26. package/dist/api/admin-endpoint.d.ts +15 -3
  27. package/dist/api/admin-endpoint.js +24 -2
  28. package/dist/api/admin-endpoint.js.map +1 -1
  29. package/dist/api/bootstrap-endpoint.d.ts +1 -2
  30. package/dist/api/bootstrap-endpoint.js +49 -1
  31. package/dist/api/bootstrap-endpoint.js.map +1 -1
  32. package/dist/api/codex-doctor-endpoint.d.ts +73 -0
  33. package/dist/api/codex-doctor-endpoint.js +177 -0
  34. package/dist/api/codex-doctor-endpoint.js.map +1 -0
  35. package/dist/api/discovery-endpoint.d.ts +1 -0
  36. package/dist/api/discovery-endpoint.js +26 -0
  37. package/dist/api/discovery-endpoint.js.map +1 -1
  38. package/dist/api/fleet-build.d.ts +1 -0
  39. package/dist/api/fleet-build.js +2 -1
  40. package/dist/api/fleet-build.js.map +1 -1
  41. package/dist/api/gather-status.d.ts +14 -0
  42. package/dist/api/gather-status.js +494 -19
  43. package/dist/api/gather-status.js.map +1 -1
  44. package/dist/api/hermes-doctor-endpoint.d.ts +117 -0
  45. package/dist/api/hermes-doctor-endpoint.js +229 -23
  46. package/dist/api/hermes-doctor-endpoint.js.map +1 -1
  47. package/dist/api/launcher-status.d.ts +22 -17
  48. package/dist/api/launcher-status.js +13 -11
  49. package/dist/api/launcher-status.js.map +1 -1
  50. package/dist/api/launcher-tasks.d.ts +1 -1
  51. package/dist/api/launcher-tasks.js +12 -8
  52. package/dist/api/launcher-tasks.js.map +1 -1
  53. package/dist/api/portfolio-v0-build.d.ts +10 -0
  54. package/dist/api/portfolio-v0-build.js +24 -5
  55. package/dist/api/portfolio-v0-build.js.map +1 -1
  56. package/dist/api/prediction-v1-build.d.ts +10 -0
  57. package/dist/api/prediction-v1-build.js +7 -1
  58. package/dist/api/prediction-v1-build.js.map +1 -1
  59. package/dist/api/server.d.ts +31 -1
  60. package/dist/api/server.js +72 -1
  61. package/dist/api/server.js.map +1 -1
  62. package/dist/api/setup-endpoints.d.ts +16 -0
  63. package/dist/api/setup-endpoints.js +89 -135
  64. package/dist/api/setup-endpoints.js.map +1 -1
  65. package/dist/api/setup-retry-endpoint.d.ts +19 -0
  66. package/dist/api/setup-retry-endpoint.js +32 -0
  67. package/dist/api/setup-retry-endpoint.js.map +1 -0
  68. package/dist/api/solvernets-endpoints.d.ts +8 -0
  69. package/dist/api/solvernets-endpoints.js +71 -43
  70. package/dist/api/solvernets-endpoints.js.map +1 -1
  71. package/dist/api/status-build.d.ts +112 -0
  72. package/dist/api/status-build.js +98 -18
  73. package/dist/api/status-build.js.map +1 -1
  74. package/dist/api/task-run-routing.d.ts +7 -0
  75. package/dist/api/task-run-routing.js +12 -0
  76. package/dist/api/task-run-routing.js.map +1 -0
  77. package/dist/api/task-runs-build.d.ts +21 -0
  78. package/dist/api/task-runs-build.js +14 -1
  79. package/dist/api/task-runs-build.js.map +1 -1
  80. package/dist/build-info.json +4 -4
  81. package/dist/build-meta.json +1 -1
  82. package/dist/chain-read-errors.d.ts +10 -0
  83. package/dist/chain-read-errors.js +15 -0
  84. package/dist/chain-read-errors.js.map +1 -1
  85. package/dist/cli/commands/auth.js +1 -1
  86. package/dist/cli/commands/auth.js.map +1 -1
  87. package/dist/cli/commands/create.js +3 -2
  88. package/dist/cli/commands/create.js.map +1 -1
  89. package/dist/cli/commands/doctor.d.ts +2 -0
  90. package/dist/cli/commands/doctor.js +2 -0
  91. package/dist/cli/commands/doctor.js.map +1 -1
  92. package/dist/cli/commands/rewards.js +11 -7
  93. package/dist/cli/commands/rewards.js.map +1 -1
  94. package/dist/cli/commands/solver-nets.js +101 -15
  95. package/dist/cli/commands/solver-nets.js.map +1 -1
  96. package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
  97. package/dist/cli/commands/solver-plugins-block.js +118 -0
  98. package/dist/cli/commands/solver-plugins-block.js.map +1 -0
  99. package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
  100. package/dist/cli/commands/solver-plugins-feedback.js +262 -0
  101. package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
  102. package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
  103. package/dist/cli/commands/solver-plugins-read.js +259 -0
  104. package/dist/cli/commands/solver-plugins-read.js.map +1 -0
  105. package/dist/cli/commands/solver-plugins.d.ts +35 -0
  106. package/dist/cli/commands/solver-plugins.js +399 -2
  107. package/dist/cli/commands/solver-plugins.js.map +1 -1
  108. package/dist/cli/commands/status.js +1 -1
  109. package/dist/cli/commands/status.js.map +1 -1
  110. package/dist/cli/commands/tasks.js +101 -11
  111. package/dist/cli/commands/tasks.js.map +1 -1
  112. package/dist/cli/commands/update.d.ts +10 -0
  113. package/dist/cli/commands/update.js +36 -0
  114. package/dist/cli/commands/update.js.map +1 -1
  115. package/dist/cli/introspection-context.js +5 -0
  116. package/dist/cli/introspection-context.js.map +1 -1
  117. package/dist/cli/task-native-readiness.d.ts +10 -1
  118. package/dist/cli/task-native-readiness.js +30 -6
  119. package/dist/cli/task-native-readiness.js.map +1 -1
  120. package/dist/config.d.ts +273 -235
  121. package/dist/config.js +305 -114
  122. package/dist/config.js.map +1 -1
  123. package/dist/daemon/checkpoint-loop.d.ts +48 -0
  124. package/dist/daemon/checkpoint-loop.js +76 -0
  125. package/dist/daemon/checkpoint-loop.js.map +1 -0
  126. package/dist/daemon/creator.d.ts +1 -1
  127. package/dist/daemon/creator.js +7 -3
  128. package/dist/daemon/creator.js.map +1 -1
  129. package/dist/daemon/daemon.d.ts +22 -0
  130. package/dist/daemon/daemon.js +156 -23
  131. package/dist/daemon/daemon.js.map +1 -1
  132. package/dist/daemon/eviction-loop.d.ts +40 -0
  133. package/dist/daemon/eviction-loop.js +67 -0
  134. package/dist/daemon/eviction-loop.js.map +1 -0
  135. package/dist/daemon/gate-logger.d.ts +9 -0
  136. package/dist/daemon/gate-logger.js +2 -0
  137. package/dist/daemon/gate-logger.js.map +1 -0
  138. package/dist/daemon/jinn-claim-loop-wiring.d.ts +33 -0
  139. package/dist/daemon/jinn-claim-loop-wiring.js +40 -0
  140. package/dist/daemon/jinn-claim-loop-wiring.js.map +1 -0
  141. package/dist/daemon/jinn-claim-loop.d.ts +24 -17
  142. package/dist/daemon/jinn-claim-loop.js +77 -23
  143. package/dist/daemon/jinn-claim-loop.js.map +1 -1
  144. package/dist/daemon/readiness-gate.d.ts +1 -4
  145. package/dist/daemon/readiness-gate.js.map +1 -1
  146. package/dist/daemon/skip-log-dedup.d.ts +69 -0
  147. package/dist/daemon/skip-log-dedup.js +106 -0
  148. package/dist/daemon/skip-log-dedup.js.map +1 -0
  149. package/dist/daemon/spend-cap-gate.d.ts +40 -0
  150. package/dist/daemon/spend-cap-gate.js +46 -0
  151. package/dist/daemon/spend-cap-gate.js.map +1 -0
  152. package/dist/dashboard/assets/index-8yHQgi7p.js +345 -0
  153. package/dist/dashboard/assets/index-BOBhJ76-.css +32 -0
  154. package/dist/dashboard/index.html +2 -2
  155. package/dist/discovery/factory.d.ts +17 -5
  156. package/dist/discovery/factory.js +46 -18
  157. package/dist/discovery/factory.js.map +1 -1
  158. package/dist/discovery/http.js +142 -3
  159. package/dist/discovery/http.js.map +1 -1
  160. package/dist/discovery/onchain.d.ts +5 -0
  161. package/dist/discovery/onchain.js +407 -15
  162. package/dist/discovery/onchain.js.map +1 -1
  163. package/dist/discovery/types.d.ts +45 -1
  164. package/dist/discovery/types.js +8 -10
  165. package/dist/discovery/types.js.map +1 -1
  166. package/dist/discovery/with-fallback.d.ts +7 -0
  167. package/dist/discovery/with-fallback.js +10 -0
  168. package/dist/discovery/with-fallback.js.map +1 -1
  169. package/dist/earning/bootstrap.d.ts +92 -1
  170. package/dist/earning/bootstrap.js +203 -63
  171. package/dist/earning/bootstrap.js.map +1 -1
  172. package/dist/earning/contracts.d.ts +14 -0
  173. package/dist/earning/contracts.js +17 -5
  174. package/dist/earning/contracts.js.map +1 -1
  175. package/dist/earning/funding-plan.js +27 -18
  176. package/dist/earning/funding-plan.js.map +1 -1
  177. package/dist/earning/jinn-rewards.d.ts +46 -0
  178. package/dist/earning/jinn-rewards.js +32 -0
  179. package/dist/earning/jinn-rewards.js.map +1 -1
  180. package/dist/earning/safe-adapter.d.ts +2 -0
  181. package/dist/earning/safe-adapter.js +37 -11
  182. package/dist/earning/safe-adapter.js.map +1 -1
  183. package/dist/earning/store.d.ts +8 -0
  184. package/dist/earning/store.js.map +1 -1
  185. package/dist/earning/testnet-setup-migration.d.ts +12 -0
  186. package/dist/earning/testnet-setup-migration.js +27 -1
  187. package/dist/earning/testnet-setup-migration.js.map +1 -1
  188. package/dist/earning/types.d.ts +21 -6
  189. package/dist/earning/viem-clients.d.ts +11 -4
  190. package/dist/earning/viem-clients.js +14 -5
  191. package/dist/earning/viem-clients.js.map +1 -1
  192. package/dist/erc8004/reputation.d.ts +8 -0
  193. package/dist/erc8004/reputation.js +22 -3
  194. package/dist/erc8004/reputation.js.map +1 -1
  195. package/dist/events/types.d.ts +2 -2
  196. package/dist/harnesses/cost-estimates.d.ts +145 -0
  197. package/dist/harnesses/cost-estimates.js +297 -0
  198. package/dist/harnesses/cost-estimates.js.map +1 -0
  199. package/dist/harnesses/engine/engine.d.ts +72 -0
  200. package/dist/harnesses/engine/engine.js +118 -8
  201. package/dist/harnesses/engine/engine.js.map +1 -1
  202. package/dist/harnesses/engine/persistence.d.ts +51 -1
  203. package/dist/harnesses/engine/persistence.js +118 -5
  204. package/dist/harnesses/engine/persistence.js.map +1 -1
  205. package/dist/harnesses/engine/work-dir-reaper.d.ts +65 -0
  206. package/dist/harnesses/engine/work-dir-reaper.js +100 -0
  207. package/dist/harnesses/engine/work-dir-reaper.js.map +1 -0
  208. package/dist/harnesses/impls/hermes-agent/adapter.js +40 -0
  209. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  210. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +20 -0
  211. package/dist/harnesses/impls/hermes-agent/bootstrap.js +40 -6
  212. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  213. package/dist/harnesses/impls/hermes-agent/harness.d.ts +59 -1
  214. package/dist/harnesses/impls/hermes-agent/harness.js +104 -0
  215. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  216. package/dist/harnesses/impls/index.d.ts +7 -0
  217. package/dist/harnesses/impls/index.js +16 -1
  218. package/dist/harnesses/impls/index.js.map +1 -1
  219. package/dist/harnesses/impls/learner/harness.d.ts +38 -4
  220. package/dist/harnesses/impls/learner/harness.js +96 -2
  221. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  222. package/dist/harnesses/impls/learner/plugin-path.d.ts +0 -13
  223. package/dist/harnesses/impls/learner/plugin-path.js +35 -15
  224. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  225. package/dist/harnesses/impls/learner/types.d.ts +11 -0
  226. package/dist/harnesses/impls/stub.d.ts +58 -0
  227. package/dist/harnesses/impls/stub.js +89 -0
  228. package/dist/harnesses/impls/stub.js.map +1 -0
  229. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.d.ts +69 -50
  230. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +178 -93
  231. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  232. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +12 -1
  233. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +121 -7
  234. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  235. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +88 -4
  236. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +143 -22
  237. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
  238. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +6 -0
  239. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +1 -1
  240. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  241. package/dist/harnesses/readiness-registry.js +9 -1
  242. package/dist/harnesses/readiness-registry.js.map +1 -1
  243. package/dist/main.js +413 -111
  244. package/dist/main.js.map +1 -1
  245. package/dist/observability/emit-event.d.ts +3 -2
  246. package/dist/observability/emit-event.js +22 -1
  247. package/dist/observability/emit-event.js.map +1 -1
  248. package/dist/operator-errors.d.ts +7 -0
  249. package/dist/operator-errors.js +13 -1
  250. package/dist/operator-errors.js.map +1 -1
  251. package/dist/plugins/learner/.claude-plugin/plugin.json +9 -0
  252. package/dist/plugins/learner/.codex-plugin/plugin.json +39 -0
  253. package/dist/plugins/learner/AGENTS.md +40 -0
  254. package/dist/plugins/learner/CLAUDE.md +33 -0
  255. package/dist/plugins/learner/README.md +59 -0
  256. package/dist/plugins/learner/hooks/hooks.json +16 -0
  257. package/dist/plugins/learner/hooks/session-start +38 -0
  258. package/dist/plugins/learner/skills/learn/SKILL.md +412 -0
  259. package/dist/plugins/learner/skills/learn/analyst-prompt.md +68 -0
  260. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +94 -0
  261. package/dist/plugins/learner/skills/learn/explorer-prompt.md +53 -0
  262. package/dist/plugins/learner/skills/learn/planner-prompt.md +87 -0
  263. package/dist/plugins/learner/skills/learn/promoter-prompt.md +113 -0
  264. package/dist/plugins/learner/skills/learn/step-worker-prompt.md +47 -0
  265. package/dist/plugins/learner/skills/learn/strategist-prompt.md +85 -0
  266. package/dist/preflight/rpc-network.d.ts +40 -0
  267. package/dist/preflight/rpc-network.js +67 -1
  268. package/dist/preflight/rpc-network.js.map +1 -1
  269. package/dist/restart-daemon.d.ts +90 -0
  270. package/dist/restart-daemon.js +95 -0
  271. package/dist/restart-daemon.js.map +1 -0
  272. package/dist/rpc/transport.d.ts +109 -0
  273. package/dist/rpc/transport.js +220 -0
  274. package/dist/rpc/transport.js.map +1 -0
  275. package/dist/scripts/donation-consumption-acceptance.js +7 -28
  276. package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
  277. package/dist/setup/halt-mode.d.ts +14 -0
  278. package/dist/setup/halt-mode.js +17 -0
  279. package/dist/setup/halt-mode.js.map +1 -0
  280. package/dist/solver-nets/prediction-operator-ux.d.ts +1 -2
  281. package/dist/solver-nets/prediction-operator-ux.js +90 -47
  282. package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
  283. package/dist/solver-nets/registry.d.ts +20 -1
  284. package/dist/solver-nets/registry.js +38 -25
  285. package/dist/solver-nets/registry.js.map +1 -1
  286. package/dist/solver-types/_swe-rebench-v2-pool-cache.d.ts +58 -0
  287. package/dist/solver-types/_swe-rebench-v2-pool-cache.js +87 -0
  288. package/dist/solver-types/_swe-rebench-v2-pool-cache.js.map +1 -0
  289. package/dist/solver-types/_swe-rebench-v2-pool.d.ts +9 -2
  290. package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
  291. package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
  292. package/dist/solver-types/_swe-rebench-v2-substrate.d.ts +1 -0
  293. package/dist/solver-types/_swe-rebench-v2-substrate.js +10 -0
  294. package/dist/solver-types/_swe-rebench-v2-substrate.js.map +1 -1
  295. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +94 -1
  296. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +305 -39
  297. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  298. package/dist/solver-types/swe-rebench-v2-auto.d.ts +22 -7
  299. package/dist/solver-types/swe-rebench-v2-auto.js +45 -20
  300. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  301. package/dist/solver-types/swe-rebench-v2.d.ts +13 -2
  302. package/dist/solver-types/swe-rebench-v2.js +237 -95
  303. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  304. package/dist/solvernets/daemon-init.d.ts +10 -2
  305. package/dist/solvernets/daemon-init.js +22 -2
  306. package/dist/solvernets/daemon-init.js.map +1 -1
  307. package/dist/solvernets/launched-record-dispatcher.js +35 -7
  308. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  309. package/dist/solvernets/store.d.ts +5 -0
  310. package/dist/solvernets/store.js +1 -0
  311. package/dist/solvernets/store.js.map +1 -1
  312. package/dist/spend/credential.d.ts +8 -0
  313. package/dist/spend/credential.js +30 -0
  314. package/dist/spend/credential.js.map +1 -0
  315. package/dist/spend/daemon-config.d.ts +13 -0
  316. package/dist/spend/daemon-config.js +24 -0
  317. package/dist/spend/daemon-config.js.map +1 -0
  318. package/dist/spend/pricing.d.ts +16 -0
  319. package/dist/spend/pricing.js +26 -0
  320. package/dist/spend/pricing.js.map +1 -0
  321. package/dist/spend/record.d.ts +13 -0
  322. package/dist/spend/record.js +30 -0
  323. package/dist/spend/record.js.map +1 -0
  324. package/dist/spend/usage.d.ts +27 -0
  325. package/dist/spend/usage.js +113 -0
  326. package/dist/spend/usage.js.map +1 -0
  327. package/dist/store/store.d.ts +43 -0
  328. package/dist/store/store.js +236 -7
  329. package/dist/store/store.js.map +1 -1
  330. package/dist/tasks/sources.d.ts +18 -1
  331. package/dist/tasks/sources.js +33 -5
  332. package/dist/tasks/sources.js.map +1 -1
  333. package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
  334. package/dist/tx-retry.d.ts +166 -19
  335. package/dist/tx-retry.js +310 -32
  336. package/dist/tx-retry.js.map +1 -1
  337. package/dist/types/payloads/prediction-apy-v0.d.ts +5 -5
  338. package/dist/types/payloads/prediction-v0.d.ts +5 -5
  339. package/dist/types/task-document.d.ts +392 -0
  340. package/dist/types/task-document.js +10 -0
  341. package/dist/types/task-document.js.map +1 -1
  342. package/dist/types/task.d.ts +28 -0
  343. package/dist/util/extract-tx-hash.d.ts +14 -0
  344. package/dist/util/extract-tx-hash.js +19 -0
  345. package/dist/util/extract-tx-hash.js.map +1 -0
  346. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +1 -1
  347. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +3 -0
  348. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -0
  349. package/package.json +30 -12
  350. package/dist/dashboard/assets/index-DOlzFN8a.css +0 -32
  351. package/dist/dashboard/assets/index-NkZ7CTAT.js +0 -140
@@ -13,22 +13,50 @@ export class StaticConfiguredTaskSource {
13
13
  }));
14
14
  }
15
15
  }
16
+ /**
17
+ * Filter a config-level tasks[] array to only entries that can be posted via
18
+ * the production adapter (i.e. those with a solverNetManifestCid).
19
+ *
20
+ * This is the guard for issue #415: a tasks[] entry without a manifest CID
21
+ * will always throw PermanentError in signTaskDocument, causing the creator loop
22
+ * to backoff and retry indefinitely. Filtering here prevents the entry from ever
23
+ * entering the posting cycle and emits a one-time warning per dropped entry at
24
+ * startup.
25
+ *
26
+ * Only call this on the config-level tasks[] array (the production path). Do not
27
+ * apply it to Task objects created in tests or via other in-memory sources.
28
+ */
29
+ export function filterBindableTasks(tasks) {
30
+ return tasks.filter((task) => {
31
+ if (!task.solverNetManifestCid) {
32
+ console.warn(`[creator] Skipping configured task "${task.id}": missing solverNetManifestCid. ` +
33
+ `Legacy tasks[] entries without a SolverNet manifest binding can never be posted ` +
34
+ `(spec §14 BINDING rule). Remove this entry from your config or add a solverNetManifestCid.`);
35
+ return false;
36
+ }
37
+ return true;
38
+ });
39
+ }
16
40
  export class GeneratedTaskSource {
17
41
  sourceKey;
18
42
  generator;
19
- constructor(sourceKey, generator) {
43
+ opts;
44
+ constructor(sourceKey, generator, opts = {}) {
20
45
  this.sourceKey = sourceKey;
21
46
  this.generator = generator;
47
+ this.opts = opts;
22
48
  }
23
49
  async collect(_now) {
24
50
  const generated = await this.generator();
25
51
  if (!generated)
26
52
  return [];
27
53
  const tasks = Array.isArray(generated) ? generated : [generated];
28
- return tasks.map((task) => {
29
- const bucketKey = task.window
30
- ? `${task.window.startTs}:${task.window.endTs}`
31
- : task.id;
54
+ return tasks.map((task, index) => {
55
+ const overrideBucketKey = this.opts.bucketKeyForTask?.(task, index);
56
+ const bucketKey = overrideBucketKey
57
+ ?? (task.window
58
+ ? `${task.window.startTs}:${task.window.endTs}`
59
+ : task.id);
32
60
  return {
33
61
  task,
34
62
  sourceKey: this.sourceKey,
@@ -1 +1 @@
1
- {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/tasks/sources.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,0BAA0B;IAGR;IAFpB,SAAS,GAAG,YAAY,CAAC;IAElC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI;YACJ,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE;YACzC,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;YACxC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE;SAChE,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IAEnB;IACQ;IAFnB,YACW,SAAiB,EACT,SAAwB;QADhC,cAAS,GAAT,SAAS,CAAQ;QACT,cAAS,GAAT,SAAS,CAAe;IACxC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM;gBAC3B,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC/C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,EAAE,IAAI,EAAE,iBAA0B,EAAE,SAAS,EAAE;gBAC9D,UAAU,EAAE;oBACV,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,SAAS;oBACT,IAAI,EAAE,WAAW;iBAClB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/tasks/sources.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,0BAA0B;IAGR;IAFpB,SAAS,GAAG,YAAY,CAAC;IAElC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI;YACJ,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE;YACzC,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;YACxC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE;SAChE,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,uCAAuC,IAAI,CAAC,EAAE,mCAAmC;gBACjF,kFAAkF;gBAClF,4FAA4F,CAC7F,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,mBAAmB;IAEnB;IACQ;IACA;IAHnB,YACW,SAAiB,EACT,SAAwB,EACxB,OAEb,EAAE;QAJG,cAAS,GAAT,SAAS,CAAQ;QACT,cAAS,GAAT,SAAS,CAAe;QACxB,SAAI,GAAJ,IAAI,CAEf;IACL,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,iBAAiB;mBAC9B,CAAC,IAAI,CAAC,MAAM;oBACb,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;oBAC/C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,EAAE,IAAI,EAAE,iBAA0B,EAAE,SAAS,EAAE;gBAC9D,UAAU,EAAE;oBACV,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,SAAS;oBACT,IAAI,EAAE,WAAW;iBAClB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -5,24 +5,24 @@ export declare const TranscriptEventSchema: z.ZodDiscriminatedUnion<"kind", [z.Z
5
5
  content: z.ZodString;
6
6
  }, "strip", z.ZodTypeAny, {
7
7
  kind: "user-message";
8
- content: string;
9
8
  timestamp: string;
9
+ content: string;
10
10
  }, {
11
11
  kind: "user-message";
12
- content: string;
13
12
  timestamp: string;
13
+ content: string;
14
14
  }>, z.ZodObject<{
15
15
  kind: z.ZodLiteral<"assistant-message">;
16
16
  timestamp: z.ZodString;
17
17
  content: z.ZodString;
18
18
  }, "strip", z.ZodTypeAny, {
19
19
  kind: "assistant-message";
20
- content: string;
21
20
  timestamp: string;
21
+ content: string;
22
22
  }, {
23
23
  kind: "assistant-message";
24
- content: string;
25
24
  timestamp: string;
25
+ content: string;
26
26
  }>, z.ZodObject<{
27
27
  kind: z.ZodLiteral<"tool-call">;
28
28
  timestamp: z.ZodString;
@@ -31,13 +31,13 @@ export declare const TranscriptEventSchema: z.ZodDiscriminatedUnion<"kind", [z.Z
31
31
  }, "strip", z.ZodTypeAny, {
32
32
  name: string;
33
33
  kind: "tool-call";
34
- args: Record<string, unknown>;
35
34
  timestamp: string;
35
+ args: Record<string, unknown>;
36
36
  }, {
37
37
  name: string;
38
38
  kind: "tool-call";
39
- args: Record<string, unknown>;
40
39
  timestamp: string;
40
+ args: Record<string, unknown>;
41
41
  }>, z.ZodObject<{
42
42
  kind: z.ZodLiteral<"tool-result">;
43
43
  timestamp: z.ZodString;
@@ -47,14 +47,14 @@ export declare const TranscriptEventSchema: z.ZodDiscriminatedUnion<"kind", [z.Z
47
47
  }, "strip", z.ZodTypeAny, {
48
48
  name: string;
49
49
  kind: "tool-result";
50
- content: string;
51
50
  timestamp: string;
51
+ content: string;
52
52
  isError?: boolean | undefined;
53
53
  }, {
54
54
  name: string;
55
55
  kind: "tool-result";
56
- content: string;
57
56
  timestamp: string;
57
+ content: string;
58
58
  isError?: boolean | undefined;
59
59
  }>, z.ZodObject<{
60
60
  kind: z.ZodLiteral<"edit">;
@@ -8,6 +8,9 @@ export declare const TX_RETRY_DEFAULTS: {
8
8
  readonly maxDelayMs: 12000;
9
9
  /** Extra fee bump per retry attempt after the first (basis points, 1500 = +15%) */
10
10
  readonly feeBumpBpsPerAttempt: 1500;
11
+ /** Minimum bump over the previously submitted fee for same-sender nonce replacement. */
12
+ readonly replacementBumpBps: 1500;
13
+ readonly stuckNonceAfterMs: 120000;
11
14
  };
12
15
  export declare function flattenErrorMessage(error: unknown): string;
13
16
  /**
@@ -15,12 +18,24 @@ export declare function flattenErrorMessage(error: unknown): string;
15
18
  * Intentionally conservative: do not treat insufficient balance or user rejections as recoverable.
16
19
  */
17
20
  export declare function isRecoverableTransactionError(error: unknown): boolean;
21
+ /**
22
+ * True when the error message contains the RPC's "nonce too low" signal.
23
+ *
24
+ * Issue #562: a daemon respawn can leave the locally-pinned ledger nonce
25
+ * behind the RPC's pending nonce, and every retry that re-submits with the
26
+ * stale value triggers this error. Callers use this helper to decide whether
27
+ * to refresh the pinned nonce before the next retry attempt.
28
+ */
29
+ export declare function isNonceTooLowError(error: unknown): boolean;
18
30
  export declare function sleep(ms: number): Promise<void>;
19
31
  export declare function backoffDelay(attemptIndex: number, baseMs: number, maxMs: number): Promise<void>;
20
32
  export interface TxRetryOptions {
21
33
  maxAttempts?: number;
22
34
  baseDelayMs?: number;
23
35
  maxDelayMs?: number;
36
+ ledger?: TxSubmissionLedger;
37
+ logicalTx?: string;
38
+ stuckNonceAfterMs?: number;
24
39
  /** If set, invoked before each retry (attempt >= 1) for logging/metrics */
25
40
  onRetry?: (info: {
26
41
  attempt: number;
@@ -28,6 +43,125 @@ export interface TxRetryOptions {
28
43
  message: string;
29
44
  }) => void;
30
45
  }
46
+ export interface TxFeeSnapshot {
47
+ maxFeePerGas?: bigint;
48
+ maxPriorityFeePerGas?: bigint;
49
+ gasPrice?: bigint;
50
+ }
51
+ export type Eip1559FeeOverrides = {
52
+ maxFeePerGas: bigint;
53
+ maxPriorityFeePerGas: bigint;
54
+ gasPrice?: undefined;
55
+ };
56
+ export type LegacyFeeOverrides = {
57
+ gasPrice: bigint;
58
+ maxFeePerGas?: undefined;
59
+ maxPriorityFeePerGas?: undefined;
60
+ };
61
+ export type EmptyFeeOverrides = {
62
+ maxFeePerGas?: undefined;
63
+ maxPriorityFeePerGas?: undefined;
64
+ gasPrice?: undefined;
65
+ };
66
+ export type TxFeeOverrides = Eip1559FeeOverrides | LegacyFeeOverrides | EmptyFeeOverrides;
67
+ export type TxFeeOverrideResult = {
68
+ kind: 'eip1559';
69
+ overrides: Eip1559FeeOverrides;
70
+ snapshot: TxFeeSnapshot;
71
+ } | {
72
+ kind: 'legacy';
73
+ overrides: LegacyFeeOverrides;
74
+ snapshot: TxFeeSnapshot;
75
+ } | {
76
+ kind: 'none';
77
+ overrides: EmptyFeeOverrides;
78
+ snapshot: TxFeeSnapshot;
79
+ };
80
+ export type TxRecoveryTransactionRequest = TxFeeOverrides & {
81
+ account?: unknown;
82
+ to: Address;
83
+ value: bigint;
84
+ nonce: number;
85
+ };
86
+ export interface TxRecoveryWalletClient {
87
+ account?: unknown;
88
+ sendTransaction(tx: TxRecoveryTransactionRequest): Promise<Hex>;
89
+ }
90
+ export type TxRetryTransactionRequest = TxFeeOverrides & {
91
+ account?: unknown;
92
+ to?: Address;
93
+ data?: Hex;
94
+ value?: bigint;
95
+ gas?: bigint;
96
+ nonce?: number;
97
+ [key: string]: unknown;
98
+ };
99
+ export interface TxRetryWalletClient {
100
+ account?: unknown;
101
+ sendTransaction(tx: TxRetryTransactionRequest): Promise<Hex>;
102
+ }
103
+ export interface TxSubmissionKey {
104
+ chainId: number;
105
+ from: Address;
106
+ nonce: number;
107
+ }
108
+ export interface TxSubmissionLedgerEntry extends TxSubmissionKey {
109
+ hash?: Hex;
110
+ logicalTx?: string;
111
+ submittedAtMs: number;
112
+ fees: TxFeeSnapshot;
113
+ to?: Address;
114
+ value?: bigint;
115
+ data?: Hex;
116
+ resolvedAtMs?: number | null;
117
+ }
118
+ type MaybePromise<T> = T | Promise<T>;
119
+ export interface TxSubmissionLedger {
120
+ getTxSubmission(key: TxSubmissionKey): MaybePromise<TxSubmissionLedgerEntry | null>;
121
+ recordTxSubmission(entry: TxSubmissionLedgerEntry): MaybePromise<void>;
122
+ markTxSubmissionResolved(key: TxSubmissionKey & {
123
+ resolvedAtMs: number;
124
+ }): MaybePromise<void>;
125
+ }
126
+ export interface NonceLedgerSubmission {
127
+ hash?: Hex;
128
+ logicalTx?: string;
129
+ submittedAtMs?: number;
130
+ fees: TxFeeSnapshot;
131
+ to?: Address;
132
+ value?: bigint;
133
+ data?: Hex;
134
+ }
135
+ export interface NonceLedgerContext {
136
+ ledger: TxSubmissionLedger;
137
+ chainId: number;
138
+ from: Address;
139
+ nonce: number;
140
+ feeResultForAttempt(attemptIndex: number, options?: {
141
+ forceEstimate?: boolean;
142
+ }): Promise<TxFeeOverrideResult>;
143
+ recordSubmitted(entry: NonceLedgerSubmission): Promise<void>;
144
+ markResolved(resolvedAtMs?: number): Promise<void>;
145
+ /**
146
+ * Re-read the pending nonce from the RPC, update `nonce` in place, and
147
+ * return the new value. Callers use this after a `nonce too low` revert
148
+ * (issue #562) so the next retry attempt picks up the fresh value.
149
+ */
150
+ refreshNonce(): Promise<number>;
151
+ }
152
+ export interface WithNonceLedgerArgs {
153
+ publicClient: PublicClient;
154
+ walletClient?: TxRecoveryWalletClient;
155
+ ledger?: TxSubmissionLedger;
156
+ from: Address;
157
+ nonce?: number;
158
+ chainId?: number;
159
+ recoverStuckNonce?: boolean;
160
+ staleAfterMs?: number;
161
+ }
162
+ export declare function createMemoryTxSubmissionLedger(): TxSubmissionLedger;
163
+ export declare function setDefaultTxSubmissionLedger(ledger: TxSubmissionLedger): void;
164
+ export declare function getDefaultTxSubmissionLedger(): TxSubmissionLedger;
31
165
  export declare function withRecoverableRetry<T>(fn: (attemptIndex: number) => Promise<T>, options?: TxRetryOptions): Promise<T>;
32
166
  /**
33
167
  * Poll publicClient.getCode until bytecode is present at `address`, or give up.
@@ -42,27 +176,40 @@ export declare function waitForContractCode(publicClient: PublicClient, address:
42
176
  baseDelayMs?: number;
43
177
  maxDelayMs?: number;
44
178
  }): Promise<Hex>;
179
+ export declare function mergeFeeEstimateWithPrevious(current: TxFeeSnapshot, previous?: TxFeeSnapshot | null, attemptIndex?: number): TxFeeSnapshot;
180
+ /**
181
+ * EIP-1559 or legacy gas overrides for viem, increasingly aggressive on later attempts.
182
+ *
183
+ * The result carries both the spreadable viem transaction overrides and the
184
+ * ledger snapshot, keeping call sites from recasting the override object.
185
+ */
186
+ export declare function viemFeeOverrideResultForAttempt(publicClient: PublicClient, attemptIndex: number, options?: {
187
+ previousFees?: TxFeeSnapshot | null;
188
+ forceEstimate?: boolean;
189
+ }): Promise<TxFeeOverrideResult>;
45
190
  /** EIP-1559 or legacy gas overrides for viem, increasingly aggressive on later attempts. */
46
- export declare function viemFeeOverridesForAttempt(publicClient: PublicClient, attemptIndex: number): Promise<{
47
- maxFeePerGas: bigint;
48
- maxPriorityFeePerGas: bigint;
49
- } | {
50
- gasPrice: bigint;
51
- } | Record<string, never>>;
191
+ export declare function viemFeeOverridesForAttempt(publicClient: PublicClient, attemptIndex: number, options?: {
192
+ previousFees?: TxFeeSnapshot | null;
193
+ forceEstimate?: boolean;
194
+ }): Promise<TxFeeOverrides>;
52
195
  export declare function waitForTransactionReceiptWithRetry(publicClient: PublicClient, hash: Hex, options?: TxRetryOptions & {
53
196
  pollingInterval?: number;
54
197
  confirmations?: number;
55
198
  }): Promise<TransactionReceipt>;
56
- export declare function viemSendTransactionWithRetry(walletClient: {
57
- sendTransaction: (tx: any) => Promise<Hex>;
58
- }, publicClient: PublicClient, txRequest: {
59
- account: any;
60
- to?: Address;
61
- data?: Hex;
62
- value?: bigint;
63
- gas?: bigint;
64
- maxFeePerGas?: bigint;
65
- maxPriorityFeePerGas?: bigint;
66
- gasPrice?: bigint;
67
- [key: string]: any;
68
- }, options?: TxRetryOptions): Promise<Hex>;
199
+ export declare function removeConflictingLegacyGasPrice<T extends TxFeeSnapshot>(tx: T): void;
200
+ export declare function withNonceLedger<T>(args: WithNonceLedgerArgs, fn: (context: NonceLedgerContext) => Promise<T>): Promise<T>;
201
+ export declare function recoverStuckNonceIfNeeded(args: {
202
+ publicClient: PublicClient;
203
+ walletClient: TxRecoveryWalletClient;
204
+ ledger?: TxSubmissionLedger;
205
+ from: Address;
206
+ chainId?: number;
207
+ staleAfterMs?: number;
208
+ nowMs?: number;
209
+ }): Promise<{
210
+ nonce: number;
211
+ previousHash?: Hex;
212
+ recoveryHash: Hex;
213
+ } | null>;
214
+ export declare function viemSendTransactionWithRetry(walletClient: TxRetryWalletClient, publicClient: PublicClient, txRequest: TxRetryTransactionRequest, options?: TxRetryOptions): Promise<Hex>;
215
+ export {};