@jinn-network/client 0.1.8 → 0.1.9-canary.01623b98

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 (877) hide show
  1. package/CONTRIBUTING.md +2 -2
  2. package/README.md +6 -0
  3. package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
  4. package/deployments/deployment-stolas-l2-baseSepolia-fast.json +23 -3
  5. package/deployments/deployment-task-coordinator-router-v3-baseSepolia-fast.json +34 -6
  6. package/dist/adapters/mech/adapter.d.ts +31 -1
  7. package/dist/adapters/mech/adapter.js +129 -54
  8. package/dist/adapters/mech/adapter.js.map +1 -1
  9. package/dist/adapters/mech/contracts.d.ts +174 -13
  10. package/dist/adapters/mech/contracts.js +99 -49
  11. package/dist/adapters/mech/contracts.js.map +1 -1
  12. package/dist/adapters/mech/safe-revert.d.ts +4 -0
  13. package/dist/adapters/mech/safe-revert.js +5 -1
  14. package/dist/adapters/mech/safe-revert.js.map +1 -1
  15. package/dist/adapters/mech/safe.js +77 -1
  16. package/dist/adapters/mech/safe.js.map +1 -1
  17. package/dist/adapters/mech/types.d.ts +5 -130
  18. package/dist/adapters/mech/types.js +9 -65
  19. package/dist/adapters/mech/types.js.map +1 -1
  20. package/dist/adapters/mech/verdict-code.js +1 -1
  21. package/dist/adapters/mech/verdict-code.js.map +1 -1
  22. package/dist/api/bootstrap-endpoint.d.ts +19 -3
  23. package/dist/api/bootstrap-endpoint.js +4 -0
  24. package/dist/api/bootstrap-endpoint.js.map +1 -1
  25. package/dist/api/discovery-endpoint.d.ts +1 -0
  26. package/dist/api/discovery-endpoint.js +24 -0
  27. package/dist/api/discovery-endpoint.js.map +1 -1
  28. package/dist/api/fleet-build.d.ts +1 -7
  29. package/dist/api/fleet-build.js +0 -7
  30. package/dist/api/fleet-build.js.map +1 -1
  31. package/dist/api/gather-status.d.ts +49 -17
  32. package/dist/api/gather-status.js +94 -530
  33. package/dist/api/gather-status.js.map +1 -1
  34. package/dist/api/harness-auth-status-endpoint.d.ts +21 -0
  35. package/dist/api/harness-auth-status-endpoint.js +17 -0
  36. package/dist/api/harness-auth-status-endpoint.js.map +1 -0
  37. package/dist/api/launcher-endpoints.js +6 -1
  38. package/dist/api/launcher-endpoints.js.map +1 -1
  39. package/dist/api/launcher-status.d.ts +2 -0
  40. package/dist/api/launcher-status.js.map +1 -1
  41. package/dist/api/launcher-tasks.d.ts +47 -0
  42. package/dist/api/launcher-tasks.js +88 -3
  43. package/dist/api/launcher-tasks.js.map +1 -1
  44. package/dist/api/loop-completion-build.d.ts +79 -0
  45. package/dist/api/loop-completion-build.js +154 -0
  46. package/dist/api/loop-completion-build.js.map +1 -0
  47. package/dist/api/operator-artifacts-endpoint.js +1 -1
  48. package/dist/api/operator-artifacts-endpoint.js.map +1 -1
  49. package/dist/api/portfolio-v0-build.d.ts +2 -1
  50. package/dist/api/portfolio-v0-build.js +5 -7
  51. package/dist/api/portfolio-v0-build.js.map +1 -1
  52. package/dist/api/prediction-v1-build.d.ts +2 -2
  53. package/dist/api/prediction-v1-build.js +5 -7
  54. package/dist/api/prediction-v1-build.js.map +1 -1
  55. package/dist/api/rewards-build.d.ts +8 -1
  56. package/dist/api/rewards-build.js +32 -4
  57. package/dist/api/rewards-build.js.map +1 -1
  58. package/dist/api/rewards-endpoint.d.ts +12 -0
  59. package/dist/api/rewards-endpoint.js +46 -0
  60. package/dist/api/rewards-endpoint.js.map +1 -0
  61. package/dist/api/run-outcome.d.ts +49 -0
  62. package/dist/api/run-outcome.js +65 -0
  63. package/dist/api/run-outcome.js.map +1 -0
  64. package/dist/api/server.d.ts +6 -16
  65. package/dist/api/server.js +36 -26
  66. package/dist/api/server.js.map +1 -1
  67. package/dist/api/setup-endpoints.d.ts +45 -0
  68. package/dist/api/setup-endpoints.js +271 -52
  69. package/dist/api/setup-endpoints.js.map +1 -1
  70. package/dist/api/solvernets-endpoints.js +4 -1
  71. package/dist/api/solvernets-endpoints.js.map +1 -1
  72. package/dist/api/status-build.d.ts +71 -94
  73. package/dist/api/status-build.js +12 -81
  74. package/dist/api/status-build.js.map +1 -1
  75. package/dist/api/status-rollup-build.d.ts +0 -4
  76. package/dist/api/status-rollup-build.js +0 -4
  77. package/dist/api/status-rollup-build.js.map +1 -1
  78. package/dist/api/stop-hook.d.ts +1 -1
  79. package/dist/api/stop-hook.js +1 -1
  80. package/dist/api/stop-hook.js.map +1 -1
  81. package/dist/api/task-run-routing.d.ts +1 -1
  82. package/dist/api/task-runs-build.d.ts +21 -2
  83. package/dist/api/task-runs-build.js +27 -7
  84. package/dist/api/task-runs-build.js.map +1 -1
  85. package/dist/bin/jinn-distill-mcp.js +813 -0
  86. package/dist/bin/jinn-layer.js +14057 -0
  87. package/dist/build-info.json +4 -4
  88. package/dist/build-meta.json +1 -1
  89. package/dist/captures/distil-export.d.ts +54 -0
  90. package/dist/captures/distil-export.js +135 -0
  91. package/dist/captures/distil-export.js.map +1 -0
  92. package/dist/captures/ingest.d.ts +21 -0
  93. package/dist/captures/ingest.js +144 -0
  94. package/dist/captures/ingest.js.map +1 -0
  95. package/dist/captures/live-publisher.d.ts +9 -0
  96. package/dist/captures/live-publisher.js +5 -3
  97. package/dist/captures/live-publisher.js.map +1 -1
  98. package/dist/captures/publish.d.ts +15 -0
  99. package/dist/captures/publish.js +17 -7
  100. package/dist/captures/publish.js.map +1 -1
  101. package/dist/cli/commands/codedigest-revert-check.js +6 -2
  102. package/dist/cli/commands/codedigest-revert-check.js.map +1 -1
  103. package/dist/cli/commands/doctor.d.ts +3 -0
  104. package/dist/cli/commands/doctor.js +36 -4
  105. package/dist/cli/commands/doctor.js.map +1 -1
  106. package/dist/cli/commands/eval.d.ts +87 -0
  107. package/dist/cli/commands/eval.js +481 -0
  108. package/dist/cli/commands/eval.js.map +1 -0
  109. package/dist/cli/commands/rewards.d.ts +2 -0
  110. package/dist/cli/commands/rewards.js +39 -10
  111. package/dist/cli/commands/rewards.js.map +1 -1
  112. package/dist/cli/commands/solver-nets.d.ts +6 -0
  113. package/dist/cli/commands/solver-nets.js +177 -0
  114. package/dist/cli/commands/solver-nets.js.map +1 -1
  115. package/dist/cli/commands/solver-plugins.js +2 -2
  116. package/dist/cli/commands/solver-plugins.js.map +1 -1
  117. package/dist/cli/commands/status.js +0 -1
  118. package/dist/cli/commands/status.js.map +1 -1
  119. package/dist/cli/commands/update.js +8 -0
  120. package/dist/cli/commands/update.js.map +1 -1
  121. package/dist/cli/commands/version.js +4 -0
  122. package/dist/cli/commands/version.js.map +1 -1
  123. package/dist/cli/execution-context.js +2 -1
  124. package/dist/cli/execution-context.js.map +1 -1
  125. package/dist/cli/index.js +2 -0
  126. package/dist/cli/index.js.map +1 -1
  127. package/dist/cli/introspection-context.js +0 -3
  128. package/dist/cli/introspection-context.js.map +1 -1
  129. package/dist/config.d.ts +235 -541
  130. package/dist/config.js +278 -197
  131. package/dist/config.js.map +1 -1
  132. package/dist/contracts/abis.d.ts +100 -0
  133. package/dist/contracts/abis.js +58 -0
  134. package/dist/contracts/abis.js.map +1 -0
  135. package/dist/contracts/addresses.d.ts +36 -0
  136. package/dist/contracts/addresses.js +60 -0
  137. package/dist/contracts/addresses.js.map +1 -0
  138. package/dist/corpus/acquire.d.ts +7 -6
  139. package/dist/corpus/acquire.js +10 -10
  140. package/dist/corpus/acquire.js.map +1 -1
  141. package/dist/corpus/fetch-artifact.d.ts +21 -0
  142. package/dist/corpus/fetch-artifact.js +33 -0
  143. package/dist/corpus/fetch-artifact.js.map +1 -0
  144. package/dist/corpus/index.d.ts +2 -2
  145. package/dist/corpus/onchain-query.d.ts +0 -1
  146. package/dist/corpus/onchain-query.js +2 -5
  147. package/dist/corpus/onchain-query.js.map +1 -1
  148. package/dist/corpus/route-resolver.d.ts +3 -3
  149. package/dist/corpus/route-resolver.js +3 -3
  150. package/dist/daemon/ai-units-gate.d.ts +6 -6
  151. package/dist/daemon/ai-units-gate.js +11 -10
  152. package/dist/daemon/ai-units-gate.js.map +1 -1
  153. package/dist/daemon/balance-topup-loop.js +27 -9
  154. package/dist/daemon/balance-topup-loop.js.map +1 -1
  155. package/dist/daemon/checkpoint-loop.js +2 -2
  156. package/dist/daemon/creator.d.ts +1 -0
  157. package/dist/daemon/creator.js +39 -25
  158. package/dist/daemon/creator.js.map +1 -1
  159. package/dist/daemon/daemon.d.ts +22 -10
  160. package/dist/daemon/daemon.js +133 -43
  161. package/dist/daemon/daemon.js.map +1 -1
  162. package/dist/daemon/delivery-watcher.d.ts +9 -0
  163. package/dist/daemon/delivery-watcher.js +24 -1
  164. package/dist/daemon/delivery-watcher.js.map +1 -1
  165. package/dist/daemon/eviction-loop.d.ts +10 -0
  166. package/dist/daemon/eviction-loop.js +22 -3
  167. package/dist/daemon/eviction-loop.js.map +1 -1
  168. package/dist/daemon/harvest-loop.d.ts +63 -0
  169. package/dist/daemon/harvest-loop.js +449 -0
  170. package/dist/daemon/harvest-loop.js.map +1 -0
  171. package/dist/daemon/join-applier.d.ts +35 -0
  172. package/dist/daemon/join-applier.js +49 -0
  173. package/dist/daemon/join-applier.js.map +1 -0
  174. package/dist/daemon/loop-heartbeat.d.ts +95 -0
  175. package/dist/daemon/loop-heartbeat.js +80 -0
  176. package/dist/daemon/loop-heartbeat.js.map +1 -0
  177. package/dist/{api/peers.js → daemon/peer-sync.js} +3 -1
  178. package/dist/daemon/peer-sync.js.map +1 -0
  179. package/dist/daemon/reward-claim-loop.js +28 -10
  180. package/dist/daemon/reward-claim-loop.js.map +1 -1
  181. package/dist/daemon/skip-log-dedup.d.ts +1 -1
  182. package/dist/daemon/skip-log-dedup.js +3 -0
  183. package/dist/daemon/skip-log-dedup.js.map +1 -1
  184. package/dist/daemon/spend-cap-gate.d.ts +0 -6
  185. package/dist/daemon/spend-cap-gate.js +1 -8
  186. package/dist/daemon/spend-cap-gate.js.map +1 -1
  187. package/dist/daemon/watchdog-loop.d.ts +84 -0
  188. package/dist/daemon/watchdog-loop.js +91 -0
  189. package/dist/daemon/watchdog-loop.js.map +1 -0
  190. package/dist/dashboard/assets/index-CwclFsAm.js +95 -0
  191. package/dist/dashboard/assets/index-D7rvJRNa.css +1 -0
  192. package/dist/dashboard/index.html +2 -2
  193. package/dist/discovery/http.d.ts +17 -0
  194. package/dist/discovery/http.js +459 -26
  195. package/dist/discovery/http.js.map +1 -1
  196. package/dist/discovery/onchain.js +185 -10
  197. package/dist/discovery/onchain.js.map +1 -1
  198. package/dist/discovery/types.d.ts +188 -0
  199. package/dist/discovery/types.js +40 -0
  200. package/dist/discovery/types.js.map +1 -1
  201. package/dist/discovery/with-fallback.js +33 -0
  202. package/dist/discovery/with-fallback.js.map +1 -1
  203. package/dist/earning/bootstrap-run.d.ts +25 -0
  204. package/dist/earning/bootstrap-run.js +315 -0
  205. package/dist/earning/bootstrap-run.js.map +1 -0
  206. package/dist/earning/bootstrap.d.ts +31 -11
  207. package/dist/earning/bootstrap.js +124 -223
  208. package/dist/earning/bootstrap.js.map +1 -1
  209. package/dist/earning/contracts.d.ts +2 -232
  210. package/dist/earning/contracts.js +16 -205
  211. package/dist/earning/contracts.js.map +1 -1
  212. package/dist/earning/faucet-topup-store.d.ts +41 -0
  213. package/dist/earning/faucet-topup-store.js +89 -0
  214. package/dist/earning/faucet-topup-store.js.map +1 -0
  215. package/dist/earning/faucet.d.ts +1 -1
  216. package/dist/earning/faucet.js +2 -2
  217. package/dist/earning/faucet.js.map +1 -1
  218. package/dist/earning/master-gas.d.ts +10 -0
  219. package/dist/earning/master-gas.js +11 -0
  220. package/dist/earning/master-gas.js.map +1 -0
  221. package/dist/earning/safe-adapter.js +12 -45
  222. package/dist/earning/safe-adapter.js.map +1 -1
  223. package/dist/earning/steps/context.d.ts +42 -0
  224. package/dist/earning/steps/context.js +4 -0
  225. package/dist/earning/steps/context.js.map +1 -0
  226. package/dist/earning/steps/fleet-identity-register.d.ts +4 -0
  227. package/dist/earning/steps/fleet-identity-register.js +65 -0
  228. package/dist/earning/steps/fleet-identity-register.js.map +1 -0
  229. package/dist/earning/steps/fleet-safe-deploy.d.ts +4 -0
  230. package/dist/earning/steps/fleet-safe-deploy.js +62 -0
  231. package/dist/earning/steps/fleet-safe-deploy.js.map +1 -0
  232. package/dist/earning/steps/fleet-safe-predict.d.ts +4 -0
  233. package/dist/earning/steps/fleet-safe-predict.js +18 -0
  234. package/dist/earning/steps/fleet-safe-predict.js.map +1 -0
  235. package/dist/earning/steps/receipt-parsing.d.ts +12 -0
  236. package/dist/earning/steps/receipt-parsing.js +71 -0
  237. package/dist/earning/steps/receipt-parsing.js.map +1 -0
  238. package/dist/earning/stolas-claim.js +8 -8
  239. package/dist/earning/stolas-claim.js.map +1 -1
  240. package/dist/earning/{jinn-rewards.d.ts → stolas-staking.d.ts} +4 -8
  241. package/dist/earning/{jinn-rewards.js → stolas-staking.js} +25 -23
  242. package/dist/earning/stolas-staking.js.map +1 -0
  243. package/dist/earning/testnet-setup-migration.d.ts +1 -0
  244. package/dist/earning/testnet-setup-migration.js +7 -2
  245. package/dist/earning/testnet-setup-migration.js.map +1 -1
  246. package/dist/earning/types.d.ts +9 -9
  247. package/dist/earning/types.js +1 -1
  248. package/dist/earning/types.js.map +1 -1
  249. package/dist/earning/viem-clients.d.ts +3 -19
  250. package/dist/earning/viem-clients.js +4 -31
  251. package/dist/earning/viem-clients.js.map +1 -1
  252. package/dist/erc8004/addresses.d.ts +6 -5
  253. package/dist/erc8004/addresses.js +7 -5
  254. package/dist/erc8004/addresses.js.map +1 -1
  255. package/dist/erc8004/identity.d.ts +12 -1
  256. package/dist/erc8004/identity.js +31 -0
  257. package/dist/erc8004/identity.js.map +1 -1
  258. package/dist/erc8004/index.d.ts +1 -1
  259. package/dist/erc8004/index.js +1 -1
  260. package/dist/erc8004/index.js.map +1 -1
  261. package/dist/erc8004/reputation.js +16 -12
  262. package/dist/erc8004/reputation.js.map +1 -1
  263. package/dist/erc8004/validation.js +5 -4
  264. package/dist/erc8004/validation.js.map +1 -1
  265. package/dist/eval/capability-slate.d.ts +54 -0
  266. package/dist/eval/capability-slate.js +116 -0
  267. package/dist/eval/capability-slate.js.map +1 -0
  268. package/dist/eval/capability-stats.d.ts +39 -0
  269. package/dist/eval/capability-stats.js +123 -0
  270. package/dist/eval/capability-stats.js.map +1 -0
  271. package/dist/eval/contested-band.d.ts +18 -0
  272. package/dist/eval/contested-band.js +19 -0
  273. package/dist/eval/contested-band.js.map +1 -0
  274. package/dist/eval/corpus-index.d.ts +21 -0
  275. package/dist/eval/corpus-index.js +55 -0
  276. package/dist/eval/corpus-index.js.map +1 -0
  277. package/dist/eval/disjointness.d.ts +26 -0
  278. package/dist/eval/disjointness.js +67 -0
  279. package/dist/eval/disjointness.js.map +1 -0
  280. package/dist/eval/eval-harness-run.d.ts +63 -0
  281. package/dist/eval/eval-harness-run.js +123 -0
  282. package/dist/eval/eval-harness-run.js.map +1 -0
  283. package/dist/eval/mcnemar-power.d.ts +14 -0
  284. package/dist/eval/mcnemar-power.js +40 -0
  285. package/dist/eval/mcnemar-power.js.map +1 -0
  286. package/dist/eval/orchestrator.d.ts +224 -0
  287. package/dist/eval/orchestrator.js +250 -0
  288. package/dist/eval/orchestrator.js.map +1 -0
  289. package/dist/eval/paired.d.ts +68 -0
  290. package/dist/eval/paired.js +93 -0
  291. package/dist/eval/paired.js.map +1 -0
  292. package/dist/eval/resolve-slate-tasks.d.ts +35 -0
  293. package/dist/eval/resolve-slate-tasks.js +56 -0
  294. package/dist/eval/resolve-slate-tasks.js.map +1 -0
  295. package/dist/eval/screen-discovery.d.ts +22 -0
  296. package/dist/eval/screen-discovery.js +71 -0
  297. package/dist/eval/screen-discovery.js.map +1 -0
  298. package/dist/eval/screen-progress.d.ts +41 -0
  299. package/dist/eval/screen-progress.js +60 -0
  300. package/dist/eval/screen-progress.js.map +1 -0
  301. package/dist/eval/screen-runner.d.ts +30 -0
  302. package/dist/eval/screen-runner.js +289 -0
  303. package/dist/eval/screen-runner.js.map +1 -0
  304. package/dist/eval/screen.d.ts +107 -0
  305. package/dist/eval/screen.js +159 -0
  306. package/dist/eval/screen.js.map +1 -0
  307. package/dist/eval/slope.d.ts +29 -0
  308. package/dist/eval/slope.js +46 -0
  309. package/dist/eval/slope.js.map +1 -0
  310. package/dist/eval/train-sequence.d.ts +35 -0
  311. package/dist/eval/train-sequence.js +59 -0
  312. package/dist/eval/train-sequence.js.map +1 -0
  313. package/dist/eval/wilson.d.ts +45 -0
  314. package/dist/eval/wilson.js +48 -0
  315. package/dist/eval/wilson.js.map +1 -0
  316. package/dist/events/types.d.ts +1 -1
  317. package/dist/events/types.js +1 -1
  318. package/dist/events/types.js.map +1 -1
  319. package/dist/harnesses/auth-source.d.ts +51 -0
  320. package/dist/harnesses/auth-source.js +155 -0
  321. package/dist/harnesses/auth-source.js.map +1 -0
  322. package/dist/harnesses/engine/canonical-json.js +5 -3
  323. package/dist/harnesses/engine/canonical-json.js.map +1 -1
  324. package/dist/harnesses/engine/engine.d.ts +40 -1
  325. package/dist/harnesses/engine/engine.js +100 -11
  326. package/dist/harnesses/engine/engine.js.map +1 -1
  327. package/dist/harnesses/engine/packaging.js +5 -5
  328. package/dist/harnesses/engine/packaging.js.map +1 -1
  329. package/dist/harnesses/engine/persistence.d.ts +19 -61
  330. package/dist/harnesses/engine/persistence.js +28 -0
  331. package/dist/harnesses/engine/persistence.js.map +1 -1
  332. package/dist/harnesses/impls/_evaluator-base.d.ts +48 -0
  333. package/dist/harnesses/impls/_evaluator-base.js +35 -0
  334. package/dist/harnesses/impls/_evaluator-base.js.map +1 -0
  335. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +1 -1
  336. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js +1 -1
  337. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -1
  338. package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +2 -3
  339. package/dist/harnesses/impls/claude-mcp-prediction/index.js +29 -99
  340. package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -1
  341. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +4 -21
  342. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -1
  343. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +2 -0
  344. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +1 -1
  345. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
  346. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +30 -79
  347. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -1
  348. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +4 -19
  349. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -1
  350. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +2 -0
  351. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +1 -1
  352. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
  353. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.d.ts +39 -0
  354. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js +62 -0
  355. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js.map +1 -0
  356. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.d.ts +40 -0
  357. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js +44 -0
  358. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js.map +1 -0
  359. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.d.ts +56 -0
  360. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js +79 -0
  361. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js.map +1 -0
  362. package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
  363. package/dist/harnesses/impls/hermes-agent/adapter.js +9 -6
  364. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  365. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
  366. package/dist/harnesses/impls/hermes-agent/bootstrap.js +6 -1
  367. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  368. package/dist/harnesses/impls/hermes-agent/harness.d.ts +25 -3
  369. package/dist/harnesses/impls/hermes-agent/harness.js +89 -5
  370. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  371. package/dist/harnesses/impls/index.d.ts +2 -0
  372. package/dist/harnesses/impls/index.js +10 -1
  373. package/dist/harnesses/impls/index.js.map +1 -1
  374. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.d.ts +34 -0
  375. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js +111 -0
  376. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js.map +1 -0
  377. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.d.ts +24 -0
  378. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js +19 -0
  379. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js.map +1 -0
  380. package/dist/harnesses/impls/jinn-repo-evaluator/harness.d.ts +64 -0
  381. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js +125 -0
  382. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js.map +1 -0
  383. package/dist/harnesses/impls/jinn-repo-evaluator/repro.d.ts +32 -0
  384. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js +73 -0
  385. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js.map +1 -0
  386. package/dist/harnesses/impls/learner/adapters/claude-code.js +5 -0
  387. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  388. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +11 -1
  389. package/dist/harnesses/impls/learner/adapters/codex-code.js +130 -15
  390. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  391. package/dist/harnesses/impls/learner/harness.d.ts +29 -1
  392. package/dist/harnesses/impls/learner/harness.js +93 -1
  393. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  394. package/dist/harnesses/impls/learner/harvest.d.ts +2 -0
  395. package/dist/harnesses/impls/learner/harvest.js +51 -1
  396. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  397. package/dist/harnesses/impls/learner/plugin-path.js +1 -0
  398. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  399. package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +5 -15
  400. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +10 -29
  401. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -1
  402. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +5 -15
  403. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +10 -23
  404. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
  405. package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +5 -15
  406. package/dist/harnesses/impls/prediction-v0-evaluator/index.js +10 -25
  407. package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -1
  408. package/dist/harnesses/impls/stub.d.ts +2 -2
  409. package/dist/harnesses/impls/stub.js +2 -2
  410. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +16 -2
  411. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  412. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +50 -6
  413. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +505 -35
  414. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  415. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
  416. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
  417. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  418. package/dist/harnesses/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.d.ts +37 -0
  419. package/dist/harnesses/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.js +59 -0
  420. package/dist/harnesses/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.js.map +1 -0
  421. package/dist/harnesses/readiness-registry.d.ts +16 -0
  422. package/dist/harnesses/readiness-registry.js +28 -6
  423. package/dist/harnesses/readiness-registry.js.map +1 -1
  424. package/dist/harnesses/types.d.ts +26 -0
  425. package/dist/learner/revert-decision.d.ts +16 -1
  426. package/dist/learner/revert-decision.js +38 -18
  427. package/dist/learner/revert-decision.js.map +1 -1
  428. package/dist/learner/revert-stats.d.ts +14 -0
  429. package/dist/learner/revert-stats.js +42 -0
  430. package/dist/learner/revert-stats.js.map +1 -1
  431. package/dist/learner/verification-gate.d.ts +53 -0
  432. package/dist/learner/verification-gate.js +80 -0
  433. package/dist/learner/verification-gate.js.map +1 -0
  434. package/dist/local-provider-url.d.ts +3 -0
  435. package/dist/local-provider-url.js +28 -0
  436. package/dist/local-provider-url.js.map +1 -0
  437. package/dist/main.js +236 -569
  438. package/dist/main.js.map +1 -1
  439. package/dist/mcp/acquire-artifact.d.ts +3 -3
  440. package/dist/mcp/acquire-artifact.js +3 -3
  441. package/dist/mcp/operator-server.js +1 -1
  442. package/dist/mcp/operator-server.js.map +1 -1
  443. package/dist/mcp/server.js +5 -6
  444. package/dist/mcp/server.js.map +1 -1
  445. package/dist/monitoring/net-liveness.d.ts +143 -0
  446. package/dist/monitoring/net-liveness.js +301 -0
  447. package/dist/monitoring/net-liveness.js.map +1 -0
  448. package/dist/observability/emit-event.d.ts +1 -1
  449. package/dist/observability/emit-event.js +1 -4
  450. package/dist/observability/emit-event.js.map +1 -1
  451. package/dist/observability/progress.d.ts +11 -0
  452. package/dist/observability/progress.js +16 -0
  453. package/dist/observability/progress.js.map +1 -0
  454. package/dist/pilot/arm-homes.d.ts +39 -0
  455. package/dist/pilot/arm-homes.js +104 -0
  456. package/dist/pilot/arm-homes.js.map +1 -0
  457. package/dist/pilot/cost.d.ts +19 -0
  458. package/dist/pilot/cost.js +31 -0
  459. package/dist/pilot/cost.js.map +1 -0
  460. package/dist/pilot/instance.d.ts +26 -0
  461. package/dist/pilot/instance.js +53 -0
  462. package/dist/pilot/instance.js.map +1 -0
  463. package/dist/pilot/pipeline.d.ts +17 -0
  464. package/dist/pilot/pipeline.js +35 -0
  465. package/dist/pilot/pipeline.js.map +1 -0
  466. package/dist/pilot/repo.d.ts +37 -0
  467. package/dist/pilot/repo.js +65 -0
  468. package/dist/pilot/repo.js.map +1 -0
  469. package/dist/pilot/resume.d.ts +101 -0
  470. package/dist/pilot/resume.js +204 -0
  471. package/dist/pilot/resume.js.map +1 -0
  472. package/dist/pilot/solve.d.ts +23 -0
  473. package/dist/pilot/solve.js +37 -0
  474. package/dist/pilot/solve.js.map +1 -0
  475. package/dist/pilot/tally.d.ts +42 -0
  476. package/dist/pilot/tally.js +100 -0
  477. package/dist/pilot/tally.js.map +1 -0
  478. package/dist/pilot/task-selection.d.ts +27 -0
  479. package/dist/pilot/task-selection.js +112 -0
  480. package/dist/pilot/task-selection.js.map +1 -0
  481. package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
  482. package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
  483. package/dist/plugins/learner/hooks/session-start +30 -1
  484. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
  485. package/dist/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
  486. package/dist/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
  487. package/dist/plugins/local-trace-distiller/.mcp.json +8 -0
  488. package/dist/plugins/local-trace-distiller/README.md +27 -0
  489. package/dist/plugins/local-trace-distiller/jinn.plugin.json +36 -0
  490. package/dist/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
  491. package/dist/plugins/resolvers.js +7 -4
  492. package/dist/plugins/resolvers.js.map +1 -1
  493. package/dist/plugins/types.d.ts +8 -0
  494. package/dist/preflight/deployment-readiness.d.ts +127 -0
  495. package/dist/preflight/deployment-readiness.js +308 -0
  496. package/dist/preflight/deployment-readiness.js.map +1 -0
  497. package/dist/preflight/pidfile-liveness.d.ts +7 -1
  498. package/dist/preflight/pidfile-liveness.js +14 -0
  499. package/dist/preflight/pidfile-liveness.js.map +1 -1
  500. package/dist/preflight/rpc-network.d.ts +10 -3
  501. package/dist/preflight/rpc-network.js +46 -13
  502. package/dist/preflight/rpc-network.js.map +1 -1
  503. package/dist/preflight/stable-cwd.d.ts +29 -0
  504. package/dist/preflight/stable-cwd.js +98 -0
  505. package/dist/preflight/stable-cwd.js.map +1 -0
  506. package/dist/rpc/transport.d.ts +43 -5
  507. package/dist/rpc/transport.js +131 -30
  508. package/dist/rpc/transport.js.map +1 -1
  509. package/dist/scripts/swe-rebench-v2-evaluator.bundle.v1.patch +79 -0
  510. package/dist/scripts/swe-rebench-v2-seed-pool.json +2 -1
  511. package/dist/solver-nets/registry.d.ts +19 -0
  512. package/dist/solver-nets/registry.js +95 -66
  513. package/dist/solver-nets/registry.js.map +1 -1
  514. package/dist/solver-types/_jinn-repo-pool.d.ts +27 -0
  515. package/dist/solver-types/_jinn-repo-pool.js +27 -0
  516. package/dist/solver-types/_jinn-repo-pool.js.map +1 -0
  517. package/dist/solver-types/_swe-rebench-v2-commit-echo-git.d.ts +46 -0
  518. package/dist/solver-types/_swe-rebench-v2-commit-echo-git.js +192 -0
  519. package/dist/solver-types/_swe-rebench-v2-commit-echo-git.js.map +1 -0
  520. package/dist/solver-types/_swe-rebench-v2-commit-echo.d.ts +57 -0
  521. package/dist/solver-types/_swe-rebench-v2-commit-echo.js +57 -0
  522. package/dist/solver-types/_swe-rebench-v2-commit-echo.js.map +1 -0
  523. package/dist/solver-types/_swe-rebench-v2-differential-admission.d.ts +395 -0
  524. package/dist/solver-types/_swe-rebench-v2-differential-admission.js +231 -0
  525. package/dist/solver-types/_swe-rebench-v2-differential-admission.js.map +1 -0
  526. package/dist/solver-types/_swe-rebench-v2-empirical-tests.d.ts +47 -0
  527. package/dist/solver-types/_swe-rebench-v2-empirical-tests.js +67 -0
  528. package/dist/solver-types/_swe-rebench-v2-empirical-tests.js.map +1 -0
  529. package/dist/solver-types/_swe-rebench-v2-escrow.d.ts +2 -0
  530. package/dist/solver-types/_swe-rebench-v2-escrow.js +13 -0
  531. package/dist/solver-types/_swe-rebench-v2-escrow.js.map +1 -1
  532. package/dist/solver-types/_swe-rebench-v2-guards.d.ts +42 -0
  533. package/dist/solver-types/_swe-rebench-v2-guards.js +111 -0
  534. package/dist/solver-types/_swe-rebench-v2-guards.js.map +1 -0
  535. package/dist/solver-types/_swe-rebench-v2-harvest-state.d.ts +191 -0
  536. package/dist/solver-types/_swe-rebench-v2-harvest-state.js +349 -0
  537. package/dist/solver-types/_swe-rebench-v2-harvest-state.js.map +1 -0
  538. package/dist/solver-types/_swe-rebench-v2-harvest.d.ts +92 -0
  539. package/dist/solver-types/_swe-rebench-v2-harvest.js +456 -0
  540. package/dist/solver-types/_swe-rebench-v2-harvest.js.map +1 -0
  541. package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
  542. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
  543. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
  544. package/dist/solver-types/_swe-rebench-v2-hunk-echo.d.ts +28 -0
  545. package/dist/solver-types/_swe-rebench-v2-hunk-echo.js +32 -0
  546. package/dist/solver-types/_swe-rebench-v2-hunk-echo.js.map +1 -0
  547. package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.d.ts +16 -0
  548. package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.js +18 -0
  549. package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.js.map +1 -0
  550. package/dist/solver-types/_swe-rebench-v2-mint-cli.d.ts +73 -0
  551. package/dist/solver-types/_swe-rebench-v2-mint-cli.js +388 -0
  552. package/dist/solver-types/_swe-rebench-v2-mint-cli.js.map +1 -0
  553. package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.d.ts +25 -0
  554. package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.js +101 -0
  555. package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.js.map +1 -0
  556. package/dist/solver-types/_swe-rebench-v2-minted-pool.d.ts +144 -0
  557. package/dist/solver-types/_swe-rebench-v2-minted-pool.js +353 -0
  558. package/dist/solver-types/_swe-rebench-v2-minted-pool.js.map +1 -0
  559. package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
  560. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
  561. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
  562. package/dist/solver-types/_swe-rebench-v2-state.d.ts +9 -0
  563. package/dist/solver-types/_swe-rebench-v2-state.js +14 -0
  564. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
  565. package/dist/solver-types/_swe-rebench-v2-substrate.d.ts +11 -0
  566. package/dist/solver-types/_swe-rebench-v2-substrate.js +24 -0
  567. package/dist/solver-types/_swe-rebench-v2-substrate.js.map +1 -1
  568. package/dist/solver-types/_swe-rebench-v2-synthetic-claim.d.ts +9 -0
  569. package/dist/solver-types/_swe-rebench-v2-synthetic-claim.js +16 -0
  570. package/dist/solver-types/_swe-rebench-v2-synthetic-claim.js.map +1 -0
  571. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +88 -1
  572. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +202 -14
  573. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  574. package/dist/solver-types/_swe-rebench-v2-yield-report-data.d.ts +5 -0
  575. package/dist/solver-types/_swe-rebench-v2-yield-report-data.js +16 -0
  576. package/dist/solver-types/_swe-rebench-v2-yield-report-data.js.map +1 -0
  577. package/dist/solver-types/_swe-rebench-v2-yield.d.ts +51 -0
  578. package/dist/solver-types/_swe-rebench-v2-yield.js +53 -0
  579. package/dist/solver-types/_swe-rebench-v2-yield.js.map +1 -0
  580. package/dist/solver-types/index.js +2 -0
  581. package/dist/solver-types/index.js.map +1 -1
  582. package/dist/solver-types/jinn-repo-admit.d.ts +17 -0
  583. package/dist/solver-types/jinn-repo-admit.js +16 -0
  584. package/dist/solver-types/jinn-repo-admit.js.map +1 -0
  585. package/dist/solver-types/jinn-repo-auto.d.ts +60 -0
  586. package/dist/solver-types/jinn-repo-auto.js +163 -0
  587. package/dist/solver-types/jinn-repo-auto.js.map +1 -0
  588. package/dist/solver-types/jinn-repo-definition.d.ts +15 -0
  589. package/dist/solver-types/jinn-repo-definition.js +34 -0
  590. package/dist/solver-types/jinn-repo-definition.js.map +1 -0
  591. package/dist/solver-types/jinn-repo-extract.d.ts +16 -0
  592. package/dist/solver-types/jinn-repo-extract.js +32 -0
  593. package/dist/solver-types/jinn-repo-extract.js.map +1 -0
  594. package/dist/solver-types/jinn-repo.d.ts +21 -0
  595. package/dist/solver-types/jinn-repo.js +23 -0
  596. package/dist/solver-types/jinn-repo.js.map +1 -0
  597. package/dist/solver-types/learner-loop-test.js +1 -1
  598. package/dist/solver-types/learner-loop-test.js.map +1 -1
  599. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
  600. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
  601. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
  602. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v3.json +34 -0
  603. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v3.quality-screen.json +186 -0
  604. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v3.screening-report.json +488 -0
  605. package/dist/solver-types/solver-type.d.ts +8 -0
  606. package/dist/solver-types/swe-rebench-v2-auto.d.ts +13 -0
  607. package/dist/solver-types/swe-rebench-v2-auto.js +36 -1
  608. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  609. package/dist/solver-types/swe-rebench-v2.d.ts +2 -0
  610. package/dist/solver-types/swe-rebench-v2.js +153 -12
  611. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  612. package/dist/solvernets/launched-record-dispatcher.d.ts +5 -0
  613. package/dist/solvernets/launched-record-dispatcher.js +14 -1
  614. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  615. package/dist/solvernets/registry-client-erc8004.js +29 -37
  616. package/dist/solvernets/registry-client-erc8004.js.map +1 -1
  617. package/dist/solvernets/registry-client.d.ts +6 -0
  618. package/dist/solvernets/store.d.ts +1 -1
  619. package/dist/solvernets/store.js +8 -3
  620. package/dist/solvernets/store.js.map +1 -1
  621. package/dist/spend/ai-units-config.d.ts +10 -0
  622. package/dist/spend/ai-units-config.js +7 -1
  623. package/dist/spend/ai-units-config.js.map +1 -1
  624. package/dist/spend/ai-units.d.ts +51 -0
  625. package/dist/spend/ai-units.js +73 -0
  626. package/dist/spend/ai-units.js.map +1 -1
  627. package/dist/spend/credential.d.ts +2 -2
  628. package/dist/spend/credential.js +9 -3
  629. package/dist/spend/credential.js.map +1 -1
  630. package/dist/spend/record.js +12 -5
  631. package/dist/spend/record.js.map +1 -1
  632. package/dist/spend/spend-cap.d.ts +10 -0
  633. package/dist/spend/spend-cap.js +13 -0
  634. package/dist/spend/spend-cap.js.map +1 -0
  635. package/dist/spend/usage.js +39 -3
  636. package/dist/spend/usage.js.map +1 -1
  637. package/dist/store/store.d.ts +106 -5
  638. package/dist/store/store.js +194 -8
  639. package/dist/store/store.js.map +1 -1
  640. package/dist/task-creator/environment/adapters.d.ts +139 -0
  641. package/dist/task-creator/environment/adapters.js +446 -0
  642. package/dist/task-creator/environment/adapters.js.map +1 -0
  643. package/dist/task-creator/environment/build.d.ts +5 -0
  644. package/dist/task-creator/environment/build.js +53 -0
  645. package/dist/task-creator/environment/build.js.map +1 -0
  646. package/dist/task-creator/environment/contracts.d.ts +1338 -0
  647. package/dist/task-creator/environment/contracts.js +207 -0
  648. package/dist/task-creator/environment/contracts.js.map +1 -0
  649. package/dist/task-creator/environment/github.d.ts +25 -0
  650. package/dist/task-creator/environment/github.js +67 -0
  651. package/dist/task-creator/environment/github.js.map +1 -0
  652. package/dist/task-creator/environment/interfaces.d.ts +60 -0
  653. package/dist/task-creator/environment/interfaces.js +3 -0
  654. package/dist/task-creator/environment/interfaces.js.map +1 -0
  655. package/dist/task-creator/environment/jinn-differential-policy.d.ts +22 -0
  656. package/dist/task-creator/environment/jinn-differential-policy.js +73 -0
  657. package/dist/task-creator/environment/jinn-differential-policy.js.map +1 -0
  658. package/dist/task-creator/environment/policy.d.ts +38 -0
  659. package/dist/task-creator/environment/policy.js +51 -0
  660. package/dist/task-creator/environment/policy.js.map +1 -0
  661. package/dist/task-creator/environment/publication.d.ts +39 -0
  662. package/dist/task-creator/environment/publication.js +139 -0
  663. package/dist/task-creator/environment/publication.js.map +1 -0
  664. package/dist/task-creator/environment/publish-cli.d.ts +427 -0
  665. package/dist/task-creator/environment/publish-cli.js +180 -0
  666. package/dist/task-creator/environment/publish-cli.js.map +1 -0
  667. package/dist/task-creator/environment/recipes.d.ts +19 -0
  668. package/dist/task-creator/environment/recipes.js +122 -0
  669. package/dist/task-creator/environment/recipes.js.map +1 -0
  670. package/dist/task-creator/environment/resolver.d.ts +53 -0
  671. package/dist/task-creator/environment/resolver.js +57 -0
  672. package/dist/task-creator/environment/resolver.js.map +1 -0
  673. package/dist/task-creator/proofs/differential-receipt-bound-proof.d.ts +27 -0
  674. package/dist/task-creator/proofs/differential-receipt-bound-proof.js +86 -0
  675. package/dist/task-creator/proofs/differential-receipt-bound-proof.js.map +1 -0
  676. package/dist/task-creator/proofs/ipfs-cid.d.ts +7 -0
  677. package/dist/task-creator/proofs/ipfs-cid.js +98 -0
  678. package/dist/task-creator/proofs/ipfs-cid.js.map +1 -0
  679. package/dist/task-creator/proofs/live-proof.d.ts +99 -0
  680. package/dist/task-creator/proofs/live-proof.js +419 -0
  681. package/dist/task-creator/proofs/live-proof.js.map +1 -0
  682. package/dist/task-creator/proofs/public-repo-fixtures.d.ts +53 -0
  683. package/dist/task-creator/proofs/public-repo-fixtures.js +93 -0
  684. package/dist/task-creator/proofs/public-repo-fixtures.js.map +1 -0
  685. package/dist/task-creator/proofs/vitest-json-fixture.d.ts +40 -0
  686. package/dist/task-creator/proofs/vitest-json-fixture.js +115 -0
  687. package/dist/task-creator/proofs/vitest-json-fixture.js.map +1 -0
  688. package/dist/trajectory/emit.d.ts +6 -0
  689. package/dist/trajectory/emit.js +9 -1
  690. package/dist/trajectory/emit.js.map +1 -1
  691. package/dist/trajectory/harness-bundle-schema.d.ts +1 -1
  692. package/dist/trajectory/harness-bundle-schema.js +1 -1
  693. package/dist/trajectory/harness-bundle-schema.js.map +1 -1
  694. package/dist/trajectory/processors/identity-scrub.js +22 -3
  695. package/dist/trajectory/processors/identity-scrub.js.map +1 -1
  696. package/dist/trajectory/schema.d.ts +9 -1
  697. package/dist/trajectory/schema.js +5 -1
  698. package/dist/trajectory/schema.js.map +1 -1
  699. package/dist/trajectory/scrub/build.d.ts +49 -0
  700. package/dist/trajectory/scrub/build.js +89 -0
  701. package/dist/trajectory/scrub/build.js.map +1 -0
  702. package/dist/trajectory/scrub/emit-scrub.d.ts +41 -0
  703. package/dist/trajectory/scrub/emit-scrub.js +88 -0
  704. package/dist/trajectory/scrub/emit-scrub.js.map +1 -0
  705. package/dist/trajectory/scrub/key-policy.d.ts +20 -0
  706. package/dist/trajectory/scrub/key-policy.js +43 -0
  707. package/dist/trajectory/scrub/key-policy.js.map +1 -0
  708. package/dist/trajectory/scrub/layer2.d.ts +23 -0
  709. package/dist/trajectory/scrub/layer2.js +33 -0
  710. package/dist/trajectory/scrub/layer2.js.map +1 -0
  711. package/dist/trajectory/scrub/mineable-trace-gate.d.ts +9 -0
  712. package/dist/trajectory/scrub/mineable-trace-gate.js +33 -0
  713. package/dist/trajectory/scrub/mineable-trace-gate.js.map +1 -0
  714. package/dist/trajectory/scrub/ml-pii-stage.d.ts +24 -0
  715. package/dist/trajectory/scrub/ml-pii-stage.js +43 -0
  716. package/dist/trajectory/scrub/ml-pii-stage.js.map +1 -0
  717. package/dist/trajectory/scrub/openredaction-stage.d.ts +178 -0
  718. package/dist/trajectory/scrub/openredaction-stage.js +269 -0
  719. package/dist/trajectory/scrub/openredaction-stage.js.map +1 -0
  720. package/dist/trajectory/scrub/pii-build.d.ts +31 -0
  721. package/dist/trajectory/scrub/pii-build.js +64 -0
  722. package/dist/trajectory/scrub/pii-build.js.map +1 -0
  723. package/dist/trajectory/scrub/pipeline.d.ts +37 -0
  724. package/dist/trajectory/scrub/pipeline.js +83 -0
  725. package/dist/trajectory/scrub/pipeline.js.map +1 -0
  726. package/dist/trajectory/scrub/plain-patterns-stage.d.ts +31 -0
  727. package/dist/trajectory/scrub/plain-patterns-stage.js +85 -0
  728. package/dist/trajectory/scrub/plain-patterns-stage.js.map +1 -0
  729. package/dist/trajectory/scrub/secretlint-stage.d.ts +35 -0
  730. package/dist/trajectory/scrub/secretlint-stage.js +250 -0
  731. package/dist/trajectory/scrub/secretlint-stage.js.map +1 -0
  732. package/dist/trajectory/scrub/transformers-detector.d.ts +35 -0
  733. package/dist/trajectory/scrub/transformers-detector.js +68 -0
  734. package/dist/trajectory/scrub/transformers-detector.js.map +1 -0
  735. package/dist/trajectory/scrub/types.d.ts +25 -0
  736. package/dist/trajectory/scrub/types.js +2 -0
  737. package/dist/trajectory/scrub/types.js.map +1 -0
  738. package/dist/trajectory/transcript-parsers/types.d.ts +1 -1
  739. package/dist/trajectory/transcript-parsers/types.js +1 -1
  740. package/dist/trajectory/transcript-parsers/types.js.map +1 -1
  741. package/dist/trajectory/transcript-watcher.d.ts +26 -0
  742. package/dist/trajectory/transcript-watcher.js +33 -0
  743. package/dist/trajectory/transcript-watcher.js.map +1 -1
  744. package/dist/tx-retry.d.ts +12 -0
  745. package/dist/tx-retry.js +41 -12
  746. package/dist/tx-retry.js.map +1 -1
  747. package/dist/types/envelope.d.ts +45 -1
  748. package/dist/types/envelope.js +1 -1
  749. package/dist/types/envelope.js.map +1 -1
  750. package/dist/types/payloads/index.d.ts +1 -1
  751. package/dist/types/payloads/index.js +7 -1
  752. package/dist/types/payloads/index.js.map +1 -1
  753. package/dist/types/payloads/portfolio-v0.d.ts +1 -1
  754. package/dist/types/payloads/portfolio-v0.js +1 -1
  755. package/dist/types/payloads/portfolio-v0.js.map +1 -1
  756. package/dist/types/payloads/prediction-apy-v0.d.ts +1 -1
  757. package/dist/types/payloads/prediction-apy-v0.js +1 -1
  758. package/dist/types/payloads/prediction-apy-v0.js.map +1 -1
  759. package/dist/types/payloads/prediction-v0.d.ts +1 -1
  760. package/dist/types/payloads/prediction-v0.js +1 -1
  761. package/dist/types/payloads/prediction-v0.js.map +1 -1
  762. package/dist/types/portfolio.d.ts +1 -1
  763. package/dist/types/portfolio.js +1 -1
  764. package/dist/types/portfolio.js.map +1 -1
  765. package/dist/types/prediction-apy.d.ts +1 -1
  766. package/dist/types/prediction-apy.js +1 -1
  767. package/dist/types/prediction-apy.js.map +1 -1
  768. package/dist/types/prediction.d.ts +1 -1
  769. package/dist/types/prediction.js +1 -1
  770. package/dist/types/prediction.js.map +1 -1
  771. package/dist/types/session-provenance.d.ts +9 -1
  772. package/dist/types/session-provenance.js +5 -1
  773. package/dist/types/session-provenance.js.map +1 -1
  774. package/dist/types/skill-artifact.d.ts +442 -0
  775. package/dist/types/skill-artifact.js +137 -0
  776. package/dist/types/skill-artifact.js.map +1 -0
  777. package/dist/types/task-document.d.ts +315 -1
  778. package/dist/types/task-document.js +9 -1
  779. package/dist/types/task-document.js.map +1 -1
  780. package/dist/types/task-run-read-model.d.ts +21 -0
  781. package/dist/types/task-run-read-model.js +2 -0
  782. package/dist/types/task-run-read-model.js.map +1 -0
  783. package/dist/types/task-run.d.ts +75 -0
  784. package/dist/types/task-run.js +2 -0
  785. package/dist/types/task-run.js.map +1 -0
  786. package/dist/types/task.d.ts +29 -1
  787. package/dist/types/task.js +1 -1
  788. package/dist/types/task.js.map +1 -1
  789. package/dist/types/window.d.ts +1 -1
  790. package/dist/types/window.js +1 -1
  791. package/dist/types/window.js.map +1 -1
  792. package/dist/util/redact-rpc-urls.d.ts +1 -1
  793. package/dist/util/redact-rpc-urls.js +57 -2
  794. package/dist/util/redact-rpc-urls.js.map +1 -1
  795. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +1 -1
  796. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +1 -1
  797. package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +3 -2
  798. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +49 -0
  799. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.d.ts +44 -0
  800. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.js +25 -0
  801. package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +1 -1
  802. package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +1 -1
  803. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.d.ts +38 -0
  804. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.js +22 -0
  805. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +1 -1
  806. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +1 -1
  807. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +1 -1
  808. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +1 -1
  809. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +109 -2
  810. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +26 -2
  811. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +1 -1
  812. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +1 -1
  813. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.d.ts +4 -0
  814. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.js +2 -0
  815. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +1 -1
  816. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -1
  817. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
  818. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
  819. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
  820. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
  821. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +34 -6
  822. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +28 -5
  823. package/dist/vendor/@jinn-network/sdk/package.json +9 -1
  824. package/docker-compose.yml +3 -2
  825. package/package.json +58 -29
  826. package/plugins/jinn-repo-runtime/.claude-plugin/plugin.json +5 -0
  827. package/plugins/jinn-repo-runtime/.codex-plugin/plugin.json +39 -0
  828. package/plugins/jinn-repo-runtime/README.md +27 -0
  829. package/plugins/jinn-repo-runtime/hooks/hooks.json +16 -0
  830. package/plugins/jinn-repo-runtime/hooks/session-start +73 -0
  831. package/plugins/jinn-repo-runtime/jinn.plugin.json +11 -0
  832. package/plugins/jinn-repo-runtime/skills/task/SKILL.md +92 -0
  833. package/plugins/learner/.claude-plugin/plugin.json +1 -1
  834. package/plugins/learner/.codex-plugin/plugin.json +1 -1
  835. package/plugins/learner/hooks/session-start +30 -1
  836. package/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
  837. package/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
  838. package/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
  839. package/plugins/local-trace-distiller/.mcp.json +8 -0
  840. package/plugins/local-trace-distiller/README.md +27 -0
  841. package/plugins/local-trace-distiller/jinn.plugin.json +36 -0
  842. package/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
  843. package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
  844. package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
  845. package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +0 -55
  846. package/deployments/deployment-jinn-mvi-l1-sepolia.json +0 -55
  847. package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +0 -13
  848. package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +0 -15
  849. package/dist/api/peers.js.map +0 -1
  850. package/dist/daemon/jinn-claim-loop-canonical.d.ts +0 -207
  851. package/dist/daemon/jinn-claim-loop-canonical.js +0 -296
  852. package/dist/daemon/jinn-claim-loop-canonical.js.map +0 -1
  853. package/dist/daemon/jinn-claim-loop-mock.d.ts +0 -61
  854. package/dist/daemon/jinn-claim-loop-mock.js +0 -122
  855. package/dist/daemon/jinn-claim-loop-mock.js.map +0 -1
  856. package/dist/daemon/jinn-claim-loop-wiring.d.ts +0 -33
  857. package/dist/daemon/jinn-claim-loop-wiring.js +0 -40
  858. package/dist/daemon/jinn-claim-loop-wiring.js.map +0 -1
  859. package/dist/daemon/jinn-claim-loop.d.ts +0 -130
  860. package/dist/daemon/jinn-claim-loop.js +0 -328
  861. package/dist/daemon/jinn-claim-loop.js.map +0 -1
  862. package/dist/dashboard/assets/index-CzKxvMcU.css +0 -32
  863. package/dist/dashboard/assets/index-yVemxHot.js +0 -351
  864. package/dist/earning/jinn-rewards.js.map +0 -1
  865. package/dist/scripts/donation-consumption-acceptance.d.ts +0 -85
  866. package/dist/scripts/donation-consumption-acceptance.js +0 -1382
  867. package/dist/scripts/donation-consumption-acceptance.js.map +0 -1
  868. package/dist/x402/acquire.d.ts +0 -17
  869. package/dist/x402/acquire.js +0 -49
  870. package/dist/x402/acquire.js.map +0 -1
  871. package/dist/x402/facilitator.d.ts +0 -11
  872. package/dist/x402/facilitator.js +0 -52
  873. package/dist/x402/facilitator.js.map +0 -1
  874. package/dist/x402/handler.d.ts +0 -27
  875. package/dist/x402/handler.js +0 -236
  876. package/dist/x402/handler.js.map +0 -1
  877. /package/dist/{api/peers.d.ts → daemon/peer-sync.d.ts} +0 -0
@@ -4,8 +4,8 @@
4
4
  * Phase 1 (master): generate mnemonic → fund master EOA
5
5
  * Phase 2 (per-service): derive agent → stake → deploy mech
6
6
  */
7
- import { decodeEventLog, encodeAbiParameters, encodeFunctionData, formatEther, getAddress, zeroAddress, } from 'viem';
8
- import { ERC20_ABI, EVENT_TOPICS, IDENTITY_REGISTRY_ABI, IDENTITY_REGISTRY_ADDRESSES, SERVICE_MANAGER_ABI, SERVICE_REGISTRY_APPROVE_ABI, SERVICE_REGISTRY_L2_ABI, STAKING_ABI, MECH_MARKETPLACE_CREATE_ABI, STOLAS_DISTRIBUTOR_ABI, STOLAS_STAKING_SLOTS_ABI, applyChainGasOverrides, cidToBytes32, getChainConfig, } from './contracts.js';
7
+ import { encodeAbiParameters, encodeFunctionData, formatEther, getAddress, zeroAddress, } from 'viem';
8
+ import { ERC20_ABI, IDENTITY_REGISTRY_ABI, IDENTITY_REGISTRY_ADDRESSES, SERVICE_MANAGER_ABI, SERVICE_REGISTRY_APPROVE_ABI, SERVICE_REGISTRY_L2_ABI, STAKING_ABI, MECH_MARKETPLACE_CREATE_ABI, STOLAS_DISTRIBUTOR_ABI, STOLAS_STAKING_SLOTS_ABI, applyChainGasOverrides, cidToBytes32, getChainConfig, } from './contracts.js';
9
9
  import { executeSafeTxBatch, executeSafeTxDirect, initDeployedSafe, initPredictedSafe, } from './safe-adapter.js';
10
10
  import { bindAgentWalletToSafe } from './agent-wallet-binding.js';
11
11
  import { FleetStateStore } from './store.js';
@@ -17,12 +17,18 @@ import { previousSafeBeingAbandoned, sweepOrphanedServiceFunds, } from './orphan
17
17
  import { DEFAULT_FAUCET_LOOP_TIMEOUT_MS, computeFaucetDripCap, requestTestnetFunding, } from './faucet.js';
18
18
  import { flattenErrorMessage, sleep, viemSendTransactionWithRetry, waitForContractCode, waitForTransactionReceiptWithRetry, } from '../tx-retry.js';
19
19
  import { isUnauthorizedAccountError } from '../errors/unauthorized-account.js';
20
+ import { formatKnownRevert } from '../adapters/mech/safe-revert.js';
20
21
  import { createJinnPublicClient, createJinnWalletClient } from './viem-clients.js';
21
22
  import { isTransientEthReadError } from '../chain-read-errors.js';
22
23
  import { nextFleetServiceIndex } from './next-service-index.js';
23
24
  import { displayFleetServiceIndex } from './fleet-display-index.js';
25
+ import { DEFAULT_MASTER_ETH_DAILY_WEI } from './master-gas.js';
24
26
  import { rpcHostForDisplay } from '../preflight/rpc-network.js';
25
27
  import { detectDeprecatedTestnetSetup, migrateDeprecatedTestnetSetup, } from './testnet-setup-migration.js';
28
+ import { parseAgentIdFromReceipt as parseAgentIdFromReceiptImpl, parseMultisigFromReceipt as parseMultisigFromReceiptImpl, parseServiceIdFromReceipt as parseServiceIdFromReceiptImpl, } from './steps/receipt-parsing.js';
29
+ import { stepFleetSafePredict as stepFleetSafePredictImpl } from './steps/fleet-safe-predict.js';
30
+ import { stepFleetSafeDeploy as stepFleetSafeDeployImpl } from './steps/fleet-safe-deploy.js';
31
+ import { stepFleetIdentityRegister as stepFleetIdentityRegisterImpl } from './steps/fleet-identity-register.js';
26
32
  const addr = (value) => getAddress(value);
27
33
  const SAFE_TOKEN_BOOTSTRAP_MULTIPLIER = 2n;
28
34
  /**
@@ -148,17 +154,6 @@ export function stage1MinMasterEth(config, targetServices = 1) {
148
154
  config.minEoaGasEth * STANDARD_MASTER_BOOTSTRAP_MULTIPLIER +
149
155
  extraServiceTransfers);
150
156
  }
151
- /**
152
- * Conservative default: ~0.0005 ETH/day master gas if not configured.
153
- *
154
- * Post-bootstrap master burn is dominated by rare BalanceTopupLoop top-ups,
155
- * not every-poll activity — the previous 0.001 ETH/day floor (alongside a
156
- * poll-based blend, since removed) over-estimated steady-state burn and
157
- * surfaced a misleading "1 days runway" dashboard reading at ~0.008 ETH
158
- * balances (#288). Mirrored at client/src/api/status-build.ts; collapsing
159
- * the two copies is a deferred follow-up per the #288 design note.
160
- */
161
- const DEFAULT_MASTER_ETH_DAILY_WEI = 500000000000000n;
162
157
  /** Warn when ETH above the minimum would last fewer than this many days at the daily estimate. */
163
158
  const MASTER_ETH_RUNWAY_WARN_DAYS = 7n;
164
159
  /**
@@ -183,6 +178,8 @@ const MASTER_ETH_RUNWAY_WARN_DAYS = 7n;
183
178
  */
184
179
  const DEFAULT_SAFE_BINDING_MAX_ATTEMPTS = 3;
185
180
  const DEFAULT_SAFE_BINDING_RETRY_DELAY_MS = 3_000;
181
+ const FAUCET_RATE_LIMIT_MAX_RETRIES = 3;
182
+ const DEFAULT_FAUCET_RATE_LIMIT_BACKOFF_MS = 15_000;
186
183
  export class FleetBootstrapper {
187
184
  store;
188
185
  config;
@@ -199,6 +196,7 @@ export class FleetBootstrapper {
199
196
  autoTestnetFaucet;
200
197
  safeBindingMaxAttempts;
201
198
  safeBindingRetryDelayMs;
199
+ faucetRateLimitBackoffMs;
202
200
  constructor(options = {}) {
203
201
  this.store = new FleetStateStore(options.earningDir);
204
202
  this.chain = options.chain ?? 'base';
@@ -215,6 +213,8 @@ export class FleetBootstrapper {
215
213
  options.safeBindingMaxAttempts ?? DEFAULT_SAFE_BINDING_MAX_ATTEMPTS;
216
214
  this.safeBindingRetryDelayMs =
217
215
  options.safeBindingRetryDelayMs ?? DEFAULT_SAFE_BINDING_RETRY_DELAY_MS;
216
+ this.faucetRateLimitBackoffMs =
217
+ options.faucetRateLimitBackoffMs ?? DEFAULT_FAUCET_RATE_LIMIT_BACKOFF_MS;
218
218
  const dailyOpt = options.masterEthDailyEstimateWei;
219
219
  this.masterEthDailyEstimateWei =
220
220
  dailyOpt !== undefined
@@ -550,8 +550,13 @@ export class FleetBootstrapper {
550
550
  targetWei: requiredMasterEth,
551
551
  balanceWei: systemEth,
552
552
  });
553
- const INTER_DRIP_PAUSE_MS = 1_000;
554
553
  const deadline = this.now() + this.faucetLoopTimeoutMs;
554
+ // requestFunding returns synchronously with a txHash and there is no
555
+ // on-chain confirmation to wait for between drips, so the happy path
556
+ // carries NO fixed inter-drip sleep (issue #984 work unit 1). A transient
557
+ // CDP 429 backs off and retries within the session instead of ending it
558
+ // on the first throttle; the wall-clock deadline stays the safety rail.
559
+ let rateLimitRetries = 0;
555
560
  console.error(`[fleet-bootstrap] Master has ${formatEther(systemEth)} ETH; need ${formatEther(requiredMasterEth)} ETH. ` +
556
561
  `Draining CDP faucet on ${this.chain} via ${rpcHostForDisplay(this.config.rpcUrl)} ` +
557
562
  `(each drip ≈ 0.0001 ETH, up to ${maxFaucetIters} drips or ${Math.round(this.faucetLoopTimeoutMs / 1000)}s, whichever comes first).`);
@@ -564,6 +569,13 @@ export class FleetBootstrapper {
564
569
  }
565
570
  const faucetResult = await this.requestFunding(masterAddress, 'base-sepolia');
566
571
  if (!faucetResult.ok) {
572
+ if (faucetResult.rateLimited && rateLimitRetries < FAUCET_RATE_LIMIT_MAX_RETRIES) {
573
+ rateLimitRetries++;
574
+ console.error(`[fleet-bootstrap] CDP faucet rate-limited after ${i} drips: ${faucetResult.reason}. ` +
575
+ `Backing off (retry ${rateLimitRetries}/${FAUCET_RATE_LIMIT_MAX_RETRIES}).`);
576
+ await new Promise(r => setTimeout(r, this.faucetRateLimitBackoffMs));
577
+ continue;
578
+ }
567
579
  if (faucetResult.rateLimited) {
568
580
  console.error(`[fleet-bootstrap] CDP faucet rate-limited after ${i} drips: ${faucetResult.reason}`);
569
581
  }
@@ -572,14 +584,17 @@ export class FleetBootstrapper {
572
584
  }
573
585
  break;
574
586
  }
575
- await new Promise(r => setTimeout(r, INTER_DRIP_PAUSE_MS));
587
+ // Balance is no longer read once per drip — only every 5th drip and on
588
+ // the final iteration (issue #984 work unit 1). Target/early-exit is
589
+ // only checked on iterations where balance was just refreshed.
590
+ if ((i + 1) % 5 !== 0 && i !== maxFaucetIters - 1) {
591
+ continue;
592
+ }
576
593
  const refreshed = await refreshSystemEth();
577
594
  systemEth = refreshed.system;
578
595
  masterBalance = refreshed.master;
579
- if ((i + 1) % 5 === 0) {
580
- console.error(`[fleet-bootstrap] drip ${i + 1}/${maxFaucetIters} · chain=${this.chain} · rpc=${rpcHostForDisplay(this.config.rpcUrl)} · ` +
581
- `master=${formatEther(masterBalance)} ETH · target=${formatEther(requiredMasterEth)} ETH`);
582
- }
596
+ console.error(`[fleet-bootstrap] drip ${i + 1}/${maxFaucetIters} · chain=${this.chain} · rpc=${rpcHostForDisplay(this.config.rpcUrl)} · ` +
597
+ `master=${formatEther(masterBalance)} ETH · target=${formatEther(requiredMasterEth)} ETH`);
583
598
  if (systemEth >= requiredMasterEth) {
584
599
  console.error(`[fleet-bootstrap] Faucet funding sufficient after ${i + 1} drip${i === 0 ? '' : 's'} ` +
585
600
  `(master=${formatEther(masterBalance)} ETH). Continuing bootstrap...`);
@@ -762,131 +777,14 @@ export class FleetBootstrapper {
762
777
  }
763
778
  }
764
779
  // ── Stage 1: fleet-level identity steps (nghf) ────────────────────────
765
- /** Deterministic Safe predict from the HD-index-1 agent EOA. */
766
780
  async stepFleetSafePredict(state, mnemonic) {
767
- const agentAddress = deriveAgentAddress(mnemonic, 1);
768
- const agentKey = walletPrivateKeyAtIndex(mnemonic, 1);
769
- console.error(`[fleet-bootstrap] Stage 1: predicting fleet Safe (owner=${agentAddress})`);
770
- const { address } = await initPredictedSafe({
771
- rpcUrl: this.config.rpcUrl,
772
- signerKey: agentKey,
773
- owners: [agentAddress],
774
- threshold: 1,
775
- });
776
- void state;
777
- return this.store.patchFleet({ fleet_safe_address: getAddress(address) });
781
+ return stepFleetSafePredictImpl(this.stepContext(), state, mnemonic);
778
782
  }
779
- /** Deploy the predicted fleet Safe. Funds the agent EOA from master if needed. */
780
783
  async stepFleetSafeDeploy(state, mnemonic) {
781
- const agentAddress = deriveAgentAddress(mnemonic, 1);
782
- const agentKey = walletPrivateKeyAtIndex(mnemonic, 1);
783
- const agentSigner = deriveAgentSigner(mnemonic, 1);
784
- const fleetSafe = state.fleet_safe_address;
785
- // Fund agent EOA so it can pay for Safe deploy + setAgentWallet gas.
786
- // 0.01 ETH covers Safe deploy (~250k gas) + register (~80k) + setAgentWallet
787
- // (~200k) at testnet gas prices comfortably. STAGE1_AGENT_ETH is the
788
- // module-level constant used both here and in `stage1MinMasterEth` so the
789
- // gate and the transfer agree (jinn-mono-u34i).
790
- const masterAccount = deriveMasterSigner(mnemonic);
791
- const masterWallet = createJinnWalletClient(this.config.rpcUrl, this.chain, masterAccount);
792
- const agentBalance = await this.publicClient.getBalance({
793
- address: getAddress(agentAddress),
794
- });
795
- if (agentBalance < STAGE1_AGENT_ETH) {
796
- const fundAmount = STAGE1_AGENT_ETH - agentBalance;
797
- console.error(`[fleet-bootstrap] Stage 1: funding fleet agent EOA with ${fundAmount} wei from master`);
798
- const fundHash = await viemSendTransactionWithRetry(masterWallet, this.publicClient, {
799
- account: masterAccount,
800
- to: addr(agentAddress),
801
- value: fundAmount,
802
- });
803
- await waitForTransactionReceiptWithRetry(this.publicClient, fundHash);
804
- }
805
- console.error(`[fleet-bootstrap] Stage 1: deploying fleet Safe at ${fleetSafe}`);
806
- const { safe } = await initPredictedSafe({
807
- rpcUrl: this.config.rpcUrl,
808
- signerKey: agentKey,
809
- owners: [agentAddress],
810
- threshold: 1,
811
- });
812
- const deployTx = await safe.createSafeDeploymentTransaction();
813
- const agentWallet = createJinnWalletClient(this.config.rpcUrl, this.chain, agentSigner);
814
- const deployHash = await viemSendTransactionWithRetry(agentWallet, this.publicClient, {
815
- account: agentSigner,
816
- to: deployTx.to,
817
- value: BigInt(deployTx.value),
818
- data: deployTx.data,
819
- });
820
- const receipt = await waitForTransactionReceiptWithRetry(this.publicClient, deployHash);
821
- if (receipt.status !== 'success') {
822
- throw new Error(`Fleet Safe deployment tx failed: ${deployHash}`);
823
- }
824
- try {
825
- await waitForContractCode(this.publicClient, getAddress(fleetSafe));
826
- }
827
- catch {
828
- throw new Error(`Fleet Safe deployment succeeded but no code at ${fleetSafe}`);
829
- }
830
- console.error(`[fleet-bootstrap] Stage 1: fleet Safe deployed (tx=${deployHash})`);
831
- return this.store.load(this.chain);
784
+ return stepFleetSafeDeployImpl(this.stepContext(), state, mnemonic);
832
785
  }
833
- /** Mint the fleet agentId + bind Safe via setAgentWallet (ERC-1271). */
834
786
  async stepFleetIdentityRegister(state, mnemonic) {
835
- const identityRegistry = this.config.identityRegistry ?? IDENTITY_REGISTRY_ADDRESSES[this.config.chainId];
836
- if (!identityRegistry) {
837
- throw new Error(`IdentityRegistry address not configured for chainId=${this.config.chainId}.`);
838
- }
839
- const fleetSafe = state.fleet_safe_address;
840
- const agentSigner = deriveAgentSigner(mnemonic, 1);
841
- const agentWallet = createJinnWalletClient(this.config.rpcUrl, this.chain, agentSigner);
842
- // Mint agentId — empty agent URI for v0 (matches stepRegisterAgent §6.1 in spec).
843
- const registerData = encodeFunctionData({
844
- abi: IDENTITY_REGISTRY_ABI,
845
- functionName: 'register',
846
- args: [''],
847
- });
848
- console.error(`[fleet-bootstrap] Stage 1: minting fleet agentId ` +
849
- `(IdentityRegistry=${identityRegistry}, agentEOA=${agentSigner.address})`);
850
- const mintTxHash = await viemSendTransactionWithRetry(agentWallet, this.publicClient, {
851
- account: agentSigner,
852
- to: addr(identityRegistry),
853
- data: registerData,
854
- });
855
- const mintReceipt = await waitForTransactionReceiptWithRetry(this.publicClient, mintTxHash);
856
- if (mintReceipt.status !== 'success') {
857
- throw new Error(`Fleet IdentityRegistry.register() failed: ${mintTxHash}`);
858
- }
859
- const fleetAgentId = this.parseAgentIdFromReceipt(mintReceipt, identityRegistry);
860
- if (fleetAgentId === null) {
861
- throw new Error(`Fleet IdentityRegistry.register() succeeded but Registered event missing (tx=${mintTxHash})`);
862
- }
863
- // Persist agentId IMMEDIATELY so a crash between mint and bind doesn't lose it.
864
- await this.store.patchFleet({
865
- fleet_agent_id: fleetAgentId,
866
- fleet_identity_registry: getAddress(identityRegistry),
867
- });
868
- // Bind the Safe via setAgentWallet (ERC-1271).
869
- // Wrapped in the freshly-deployed-Safe retry (jinn-mono-k1ng). The
870
- // pre-k1ng single-attempt version halted bootstrap when the documented
871
- // race fired on the first attempt — exactly the 2026-05-18 canary's
872
- // second-time-around failure mode.
873
- console.error(`[fleet-bootstrap] Stage 1: binding fleet Safe ${fleetSafe} to agentId=${fleetAgentId}`);
874
- const bindResult = await this.bindAgentWalletWithRetry({
875
- identityRegistryAddress: addr(identityRegistry),
876
- agentId: BigInt(fleetAgentId),
877
- safeAddress: addr(fleetSafe),
878
- agentEoaAccount: agentSigner,
879
- agentEoaWalletClient: agentWallet,
880
- publicClient: this.publicClient,
881
- chainId: this.config.chainId,
882
- }, 'Stage 1');
883
- if (!bindResult.ok) {
884
- const bindErr = bindResult.error;
885
- throw new Error(`Fleet setAgentWallet failed after ${this.safeBindingMaxAttempts} attempts: ${bindErr.shortMessage}` +
886
- (bindErr.revertReason ? ` (revert: ${bindErr.revertReason})` : ''));
887
- }
888
- console.error(`[fleet-bootstrap] Stage 1: setAgentWallet succeeded (tx=${bindResult.txHash})`);
889
- return this.store.patchFleet({ fleet_stage: 'stage1' });
787
+ return stepFleetIdentityRegisterImpl(this.stepContext(), state, mnemonic);
890
788
  }
891
789
  // ── Phase 2: Per-service bootstrap ───────────────────────────────────
892
790
  async bootstrapService(state, mnemonic, index) {
@@ -1047,25 +945,23 @@ export class FleetBootstrapper {
1047
945
  throw error;
1048
946
  }
1049
947
  if (onChainState === 2) {
1050
- console.error(`[jinn-earning] Noticed service ${svc.service_id} (fleet index ${index}) evicted on-chain; running distributor reStake to restake.`);
1051
- // #789: a startup reStake can revert (e.g. NotEnoughTimeStaked when the
1052
- // service was re-staked < minStakingDuration ago) or fail transiently.
1053
- // Treat it as non-fatal so the daemon still launches — work delivery and
1054
- // JINN claims are decoupled from OLAS staking (JinnDistributor mints on
1055
- // delivered-work counts, not stake state), so a failed startup reStake
1056
- // must not block the operator from earning. The standalone EvictionLoop
1057
- // retries on its own cadence when enabled; when staking is intentionally
1058
- // dropped (evictionCheckIntervalMs=0) this simply leaves the service
1059
- // evicted, which does not affect JINN earning.
1060
- try {
1061
- state = await this.recoverEvictedService(state, mnemonic, index);
1062
- svc = state.services.find(s => s.index === index);
1063
- }
1064
- catch (err) {
1065
- console.error(`[jinn-earning] Service ${svc.service_id} (fleet index ${index}) startup reStake failed (non-fatal); ` +
1066
- `continuing launch and deferring to EvictionLoop if enabled: ` +
1067
- `${err instanceof Error ? err.message : String(err)}`);
1068
- }
948
+ // Do NOT eagerly reStake at startup. Re-staking is orthogonal to the
949
+ // protocol loop and to earning (OLAS staking rewards accrue from
950
+ // delivered-work activity counts, not from re-stake liveness), and an inline reStake
951
+ // here broadcasts from the agent EOA during boot — contending with
952
+ // other agent-EOA work that runs in the same window (e.g. a launch's
953
+ // IdentityRegistry.setMetadata, which then reverts and strands the
954
+ // launch at `launching`). #773 removed the inline reStake from the
955
+ // mech-adapter solve path with exactly this reasoning ("staking is
956
+ // orthogonal to the loop — re-staking is handled out-of-band by the
957
+ // background EvictionLoop"); this completes #773 for the startup-resume
958
+ // path it missed. The throttled EvictionLoop (#917) restakes on its own
959
+ // cadence when enabled; when staking is intentionally dropped
960
+ // (evictionCheckIntervalMs=0) the service simply stays evicted, which
961
+ // does not affect earning (#789).
962
+ console.log(`[jinn-earning] Service ${svc.service_id} (fleet index ${index}) is evicted on-chain; ` +
963
+ `NOT reStaking inline at startup — deferring to the background EvictionLoop ` +
964
+ `(staking is orthogonal to earning; #773/#789/#917). Daemon launch continues.`);
1069
965
  }
1070
966
  }
1071
967
  if (isOperationalServiceStep(svc.step)) {
@@ -1870,6 +1766,38 @@ export class FleetBootstrapper {
1870
1766
  return this.store.updateService(index, { step: 'staked' });
1871
1767
  }
1872
1768
  // ── Helpers ──────────────────────────────────────────────────────────
1769
+ /**
1770
+ * Fresh dependency bag for an extracted step. Rebuilt on every call so a
1771
+ * spy installed after construction is honoured; the spied helper arrows
1772
+ * dispatch through `this` at call time (see plan Binding rule).
1773
+ */
1774
+ stepContext() {
1775
+ return {
1776
+ store: this.store,
1777
+ config: this.config,
1778
+ publicClient: this.publicClient,
1779
+ chain: this.chain,
1780
+ stakingMode: this.stakingMode,
1781
+ targetServices: this.targetServices,
1782
+ debug: this.debug,
1783
+ env: this.env,
1784
+ safeBindingMaxAttempts: this.safeBindingMaxAttempts,
1785
+ safeBindingRetryDelayMs: this.safeBindingRetryDelayMs,
1786
+ bindAgentWalletWithRetry: (args, label) => this.bindAgentWalletWithRetry(args, label),
1787
+ getServiceState: (serviceId) => this.getServiceState(serviceId),
1788
+ waitForSuccessfulTx: (txHash, label) => this.waitForSuccessfulTx(txHash, label),
1789
+ firstServiceUpdate: (index, patch) => this.firstServiceUpdate(index, patch),
1790
+ stakingAddressForService: (svc) => this.stakingAddressForService(svc),
1791
+ shouldPreserveExistingSetup: (svc) => this.shouldPreserveExistingSetup(svc),
1792
+ parseServiceIdFromReceipt: (receipt) => this.parseServiceIdFromReceipt(receipt),
1793
+ parseMultisigFromReceipt: (receipt) => this.parseMultisigFromReceipt(receipt),
1794
+ getStakingState: (serviceId, stakingAddress) => this.getStakingState(serviceId, stakingAddress),
1795
+ getBondTokenBalance: (address) => this.getBondTokenBalance(address),
1796
+ parseAgentIdFromReceipt: (receipt, identityRegistry) => this.parseAgentIdFromReceipt(receipt, identityRegistry),
1797
+ stolasPreflightCheck: () => this.stolasPreflightCheck(),
1798
+ sweepAbandonedSafeForService: (state, mnemonic, serviceIndex, abandonedSafeAddress) => this.sweepAbandonedSafeForService(state, mnemonic, serviceIndex, abandonedSafeAddress),
1799
+ };
1800
+ }
1873
1801
  async getBondTokenBalance(address) {
1874
1802
  return this.publicClient.readContract({
1875
1803
  address: this.config.olasToken,
@@ -1944,76 +1872,37 @@ export class FleetBootstrapper {
1944
1872
  }));
1945
1873
  }
1946
1874
  async parseServiceIdFromReceipt(receipt) {
1947
- const createServiceTopic = EVENT_TOPICS.CreateService;
1948
- const serviceRegistryAddress = this.config.serviceRegistry.toLowerCase();
1949
- for (const log of receipt.logs) {
1950
- if (log.address.toLowerCase() !== serviceRegistryAddress ||
1951
- log.topics[0] !== createServiceTopic) {
1952
- continue;
1953
- }
1954
- try {
1955
- const decoded = decodeEventLog({
1956
- abi: SERVICE_REGISTRY_L2_ABI,
1957
- data: log.data,
1958
- topics: log.topics,
1959
- strict: false,
1960
- });
1961
- if (decoded.eventName === 'CreateService' && 'serviceId' in decoded.args) {
1962
- return Number(decoded.args.serviceId);
1963
- }
1964
- }
1965
- catch {
1966
- // Not a matching event
1967
- }
1968
- }
1969
- return null;
1875
+ return parseServiceIdFromReceiptImpl(receipt, this.config.serviceRegistry);
1970
1876
  }
1971
1877
  parseMultisigFromReceipt(receipt) {
1972
- const topic = EVENT_TOPICS.CreateMultisigWithAgents;
1973
- for (const log of receipt.logs) {
1974
- const t0 = log.topics[0];
1975
- if (t0 === topic && log.topics.length >= 3) {
1976
- return getAddress(('0x' + log.topics[2].slice(26)));
1977
- }
1978
- }
1979
- return null;
1878
+ return parseMultisigFromReceiptImpl(receipt);
1980
1879
  }
1981
- /**
1982
- * Extract `agentId` from an `IdentityRegistry.Registered` log emitted in
1983
- * the receipt. Filters by `(address, topic[0])` first to avoid colliding
1984
- * with any other contract that happens to share the event signature.
1985
- *
1986
- * Returns the agentId as a decimal string (uint256) so it round-trips
1987
- * cleanly through JSON-persisted EarningState.
1988
- */
1989
1880
  parseAgentIdFromReceipt(receipt, identityRegistry) {
1990
- const topic = EVENT_TOPICS.Registered;
1991
- const target = identityRegistry.toLowerCase();
1992
- for (const log of receipt.logs) {
1993
- if (log.address.toLowerCase() !== target)
1994
- continue;
1995
- if (log.topics[0] !== topic)
1996
- continue;
1997
- try {
1998
- const decoded = decodeEventLog({
1999
- abi: IDENTITY_REGISTRY_ABI,
2000
- data: log.data,
2001
- topics: log.topics,
2002
- strict: false,
2003
- });
2004
- if (decoded.eventName === 'Registered' && 'agentId' in decoded.args) {
2005
- return decoded.args.agentId.toString();
2006
- }
2007
- }
2008
- catch {
2009
- // Not a matching event
2010
- }
2011
- }
2012
- return null;
1881
+ return parseAgentIdFromReceiptImpl(receipt, identityRegistry);
2013
1882
  }
2014
1883
  }
2015
1884
  /** @deprecated Use FleetBootstrapper */
2016
1885
  export const EarningBootstrapper = FleetBootstrapper;
1886
+ /**
1887
+ * Inspect a mined reStake receipt and log the correct outcome (#916).
1888
+ *
1889
+ * Pure + I/O-free so it can be unit-tested without a chain client. On a
1890
+ * `success` receipt it logs `reStake confirmed` at log level. On a `reverted`
1891
+ * receipt it logs `reStake reverted` at debug level (a benign substrate event —
1892
+ * the NotEnoughTimeStaked window / stale-RPC race; staking is non-load-bearing,
1893
+ * DR-2026-06-04 / #1060) with the decoded reason if the caller could obtain one,
1894
+ * and still throws so the recovery attempt re-queues (#916 control flow intact).
1895
+ */
1896
+ export function handleReStakeReceipt(args) {
1897
+ const { receipt, serviceDisplayIndex, reStakeHash, revertReason } = args;
1898
+ if (receipt.status === 'success') {
1899
+ console.log(`[eviction-recovery] Service ${serviceDisplayIndex}: reStake confirmed (tx: ${reStakeHash})`);
1900
+ return;
1901
+ }
1902
+ const msg = `[eviction-recovery] Service ${serviceDisplayIndex}: reStake reverted (tx: ${reStakeHash}, reason: ${revertReason ?? 'unavailable'})`;
1903
+ console.debug(msg);
1904
+ throw new Error(msg);
1905
+ }
2017
1906
  /**
2018
1907
  * Re-stake an evicted service by calling `distributor.reStake(stakingProxy, serviceId)`.
2019
1908
  *
@@ -2034,7 +1923,7 @@ export async function recoverEvictedService(opts) {
2034
1923
  functionName: 'reStake',
2035
1924
  args: [addr(stakingAddress), BigInt(serviceId)],
2036
1925
  });
2037
- console.error(`[eviction-recovery] Service ${serviceDisplayIndex}: calling distributor.reStake() for evicted service ${serviceId}`);
1926
+ console.debug(`[eviction-recovery] Service ${serviceDisplayIndex}: calling distributor.reStake() for evicted service ${serviceId}`);
2038
1927
  let reStakeHash;
2039
1928
  try {
2040
1929
  reStakeHash = await viemSendTransactionWithRetry(masterWallet, publicClient, {
@@ -2055,9 +1944,21 @@ export async function recoverEvictedService(opts) {
2055
1944
  throw err;
2056
1945
  }
2057
1946
  const receipt = await waitForTransactionReceiptWithRetry(publicClient, reStakeHash);
1947
+ let revertReason;
2058
1948
  if (receipt.status !== 'success') {
2059
- throw new Error(`reStake failed for service ${serviceDisplayIndex}: ${reStakeHash}`);
1949
+ // Best-effort: replay the call at the mined block to decode the revert.
1950
+ try {
1951
+ await publicClient.call({
1952
+ account: masterAccount,
1953
+ to: addr(distributorAddress),
1954
+ data: reStakeData,
1955
+ blockNumber: receipt.blockNumber,
1956
+ });
1957
+ }
1958
+ catch (err) {
1959
+ revertReason = formatKnownRevert(err) ?? flattenErrorMessage(err);
1960
+ }
2060
1961
  }
2061
- console.error(`[eviction-recovery] Service ${serviceDisplayIndex}: reStake confirmed (tx: ${reStakeHash})`);
1962
+ handleReStakeReceipt({ receipt, serviceDisplayIndex, reStakeHash, revertReason });
2062
1963
  }
2063
1964
  //# sourceMappingURL=bootstrap.js.map