@jinn-network/client 0.1.8 → 0.1.9-canary.023faefb

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 (733) 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 +126 -53
  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 +26 -17
  32. package/dist/api/gather-status.js +62 -520
  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/server.d.ts +6 -16
  62. package/dist/api/server.js +29 -26
  63. package/dist/api/server.js.map +1 -1
  64. package/dist/api/setup-endpoints.d.ts +45 -0
  65. package/dist/api/setup-endpoints.js +271 -52
  66. package/dist/api/setup-endpoints.js.map +1 -1
  67. package/dist/api/solvernets-endpoints.js +4 -1
  68. package/dist/api/solvernets-endpoints.js.map +1 -1
  69. package/dist/api/status-build.d.ts +71 -94
  70. package/dist/api/status-build.js +11 -77
  71. package/dist/api/status-build.js.map +1 -1
  72. package/dist/api/status-rollup-build.d.ts +0 -4
  73. package/dist/api/status-rollup-build.js +0 -4
  74. package/dist/api/status-rollup-build.js.map +1 -1
  75. package/dist/api/stop-hook.d.ts +1 -1
  76. package/dist/api/stop-hook.js +1 -1
  77. package/dist/api/stop-hook.js.map +1 -1
  78. package/dist/api/task-run-routing.d.ts +1 -1
  79. package/dist/api/task-runs-build.d.ts +2 -2
  80. package/dist/api/task-runs-build.js +5 -7
  81. package/dist/api/task-runs-build.js.map +1 -1
  82. package/dist/bin/jinn-distil-mcp.js +813 -0
  83. package/dist/bin/jinn-layer.js +12568 -0
  84. package/dist/build-info.json +4 -4
  85. package/dist/build-meta.json +1 -1
  86. package/dist/captures/distil-export.d.ts +54 -0
  87. package/dist/captures/distil-export.js +135 -0
  88. package/dist/captures/distil-export.js.map +1 -0
  89. package/dist/captures/ingest.d.ts +21 -0
  90. package/dist/captures/ingest.js +144 -0
  91. package/dist/captures/ingest.js.map +1 -0
  92. package/dist/captures/live-publisher.d.ts +9 -0
  93. package/dist/captures/live-publisher.js +5 -3
  94. package/dist/captures/live-publisher.js.map +1 -1
  95. package/dist/captures/publish.d.ts +15 -0
  96. package/dist/captures/publish.js +17 -7
  97. package/dist/captures/publish.js.map +1 -1
  98. package/dist/cli/commands/codedigest-revert-check.js +6 -2
  99. package/dist/cli/commands/codedigest-revert-check.js.map +1 -1
  100. package/dist/cli/commands/doctor.d.ts +3 -0
  101. package/dist/cli/commands/doctor.js +36 -4
  102. package/dist/cli/commands/doctor.js.map +1 -1
  103. package/dist/cli/commands/eval.d.ts +87 -0
  104. package/dist/cli/commands/eval.js +481 -0
  105. package/dist/cli/commands/eval.js.map +1 -0
  106. package/dist/cli/commands/rewards.d.ts +2 -0
  107. package/dist/cli/commands/rewards.js +39 -10
  108. package/dist/cli/commands/rewards.js.map +1 -1
  109. package/dist/cli/commands/solver-nets.js +68 -0
  110. package/dist/cli/commands/solver-nets.js.map +1 -1
  111. package/dist/cli/commands/status.js +0 -1
  112. package/dist/cli/commands/status.js.map +1 -1
  113. package/dist/cli/commands/update.js +8 -0
  114. package/dist/cli/commands/update.js.map +1 -1
  115. package/dist/cli/commands/version.js +4 -0
  116. package/dist/cli/commands/version.js.map +1 -1
  117. package/dist/cli/execution-context.js +2 -1
  118. package/dist/cli/execution-context.js.map +1 -1
  119. package/dist/cli/index.js +2 -0
  120. package/dist/cli/index.js.map +1 -1
  121. package/dist/cli/introspection-context.js +0 -3
  122. package/dist/cli/introspection-context.js.map +1 -1
  123. package/dist/config.d.ts +158 -541
  124. package/dist/config.js +190 -197
  125. package/dist/config.js.map +1 -1
  126. package/dist/contracts/abis.d.ts +100 -0
  127. package/dist/contracts/abis.js +58 -0
  128. package/dist/contracts/abis.js.map +1 -0
  129. package/dist/contracts/addresses.d.ts +36 -0
  130. package/dist/contracts/addresses.js +60 -0
  131. package/dist/contracts/addresses.js.map +1 -0
  132. package/dist/corpus/acquire.d.ts +7 -6
  133. package/dist/corpus/acquire.js +10 -10
  134. package/dist/corpus/acquire.js.map +1 -1
  135. package/dist/corpus/fetch-artifact.d.ts +21 -0
  136. package/dist/corpus/fetch-artifact.js +33 -0
  137. package/dist/corpus/fetch-artifact.js.map +1 -0
  138. package/dist/corpus/index.d.ts +2 -2
  139. package/dist/corpus/onchain-query.d.ts +0 -1
  140. package/dist/corpus/onchain-query.js +2 -5
  141. package/dist/corpus/onchain-query.js.map +1 -1
  142. package/dist/corpus/route-resolver.d.ts +3 -3
  143. package/dist/corpus/route-resolver.js +3 -3
  144. package/dist/daemon/ai-units-gate.d.ts +6 -6
  145. package/dist/daemon/ai-units-gate.js +11 -10
  146. package/dist/daemon/ai-units-gate.js.map +1 -1
  147. package/dist/daemon/balance-topup-loop.js +27 -9
  148. package/dist/daemon/balance-topup-loop.js.map +1 -1
  149. package/dist/daemon/checkpoint-loop.js +2 -2
  150. package/dist/daemon/creator.d.ts +1 -0
  151. package/dist/daemon/creator.js +39 -25
  152. package/dist/daemon/creator.js.map +1 -1
  153. package/dist/daemon/daemon.d.ts +15 -10
  154. package/dist/daemon/daemon.js +95 -41
  155. package/dist/daemon/daemon.js.map +1 -1
  156. package/dist/daemon/delivery-watcher.d.ts +9 -0
  157. package/dist/daemon/delivery-watcher.js +24 -1
  158. package/dist/daemon/delivery-watcher.js.map +1 -1
  159. package/dist/daemon/eviction-loop.d.ts +7 -0
  160. package/dist/daemon/eviction-loop.js +19 -3
  161. package/dist/daemon/eviction-loop.js.map +1 -1
  162. package/dist/daemon/join-applier.d.ts +35 -0
  163. package/dist/daemon/join-applier.js +49 -0
  164. package/dist/daemon/join-applier.js.map +1 -0
  165. package/dist/daemon/loop-heartbeat.d.ts +89 -0
  166. package/dist/daemon/loop-heartbeat.js +75 -0
  167. package/dist/daemon/loop-heartbeat.js.map +1 -0
  168. package/dist/{api/peers.js → daemon/peer-sync.js} +3 -1
  169. package/dist/daemon/peer-sync.js.map +1 -0
  170. package/dist/daemon/reward-claim-loop.js +28 -10
  171. package/dist/daemon/reward-claim-loop.js.map +1 -1
  172. package/dist/daemon/skip-log-dedup.d.ts +1 -1
  173. package/dist/daemon/skip-log-dedup.js +3 -0
  174. package/dist/daemon/skip-log-dedup.js.map +1 -1
  175. package/dist/daemon/spend-cap-gate.d.ts +0 -6
  176. package/dist/daemon/spend-cap-gate.js +1 -8
  177. package/dist/daemon/spend-cap-gate.js.map +1 -1
  178. package/dist/daemon/watchdog-loop.d.ts +84 -0
  179. package/dist/daemon/watchdog-loop.js +91 -0
  180. package/dist/daemon/watchdog-loop.js.map +1 -0
  181. package/dist/dashboard/assets/index-B_5Cb-ZH.js +161 -0
  182. package/dist/dashboard/assets/index-D7rvJRNa.css +1 -0
  183. package/dist/dashboard/index.html +2 -2
  184. package/dist/discovery/http.d.ts +17 -0
  185. package/dist/discovery/http.js +378 -26
  186. package/dist/discovery/http.js.map +1 -1
  187. package/dist/discovery/onchain.js +174 -10
  188. package/dist/discovery/onchain.js.map +1 -1
  189. package/dist/discovery/types.d.ts +149 -0
  190. package/dist/discovery/types.js +40 -0
  191. package/dist/discovery/types.js.map +1 -1
  192. package/dist/discovery/with-fallback.js +24 -0
  193. package/dist/discovery/with-fallback.js.map +1 -1
  194. package/dist/earning/bootstrap-run.d.ts +25 -0
  195. package/dist/earning/bootstrap-run.js +315 -0
  196. package/dist/earning/bootstrap-run.js.map +1 -0
  197. package/dist/earning/bootstrap.d.ts +31 -11
  198. package/dist/earning/bootstrap.js +123 -212
  199. package/dist/earning/bootstrap.js.map +1 -1
  200. package/dist/earning/contracts.d.ts +2 -232
  201. package/dist/earning/contracts.js +16 -205
  202. package/dist/earning/contracts.js.map +1 -1
  203. package/dist/earning/faucet-topup-store.d.ts +41 -0
  204. package/dist/earning/faucet-topup-store.js +89 -0
  205. package/dist/earning/faucet-topup-store.js.map +1 -0
  206. package/dist/earning/faucet.d.ts +1 -1
  207. package/dist/earning/faucet.js +2 -2
  208. package/dist/earning/faucet.js.map +1 -1
  209. package/dist/earning/safe-adapter.js +12 -45
  210. package/dist/earning/safe-adapter.js.map +1 -1
  211. package/dist/earning/steps/context.d.ts +42 -0
  212. package/dist/earning/steps/context.js +4 -0
  213. package/dist/earning/steps/context.js.map +1 -0
  214. package/dist/earning/steps/fleet-identity-register.d.ts +4 -0
  215. package/dist/earning/steps/fleet-identity-register.js +65 -0
  216. package/dist/earning/steps/fleet-identity-register.js.map +1 -0
  217. package/dist/earning/steps/fleet-safe-deploy.d.ts +4 -0
  218. package/dist/earning/steps/fleet-safe-deploy.js +62 -0
  219. package/dist/earning/steps/fleet-safe-deploy.js.map +1 -0
  220. package/dist/earning/steps/fleet-safe-predict.d.ts +4 -0
  221. package/dist/earning/steps/fleet-safe-predict.js +18 -0
  222. package/dist/earning/steps/fleet-safe-predict.js.map +1 -0
  223. package/dist/earning/steps/receipt-parsing.d.ts +12 -0
  224. package/dist/earning/steps/receipt-parsing.js +71 -0
  225. package/dist/earning/steps/receipt-parsing.js.map +1 -0
  226. package/dist/earning/stolas-claim.js +8 -8
  227. package/dist/earning/stolas-claim.js.map +1 -1
  228. package/dist/earning/{jinn-rewards.d.ts → stolas-staking.d.ts} +4 -8
  229. package/dist/earning/{jinn-rewards.js → stolas-staking.js} +6 -10
  230. package/dist/earning/stolas-staking.js.map +1 -0
  231. package/dist/earning/testnet-setup-migration.d.ts +1 -0
  232. package/dist/earning/testnet-setup-migration.js +7 -2
  233. package/dist/earning/testnet-setup-migration.js.map +1 -1
  234. package/dist/earning/types.d.ts +1 -1
  235. package/dist/earning/types.js +1 -1
  236. package/dist/earning/types.js.map +1 -1
  237. package/dist/earning/viem-clients.d.ts +3 -19
  238. package/dist/earning/viem-clients.js +4 -31
  239. package/dist/earning/viem-clients.js.map +1 -1
  240. package/dist/erc8004/addresses.d.ts +6 -5
  241. package/dist/erc8004/addresses.js +7 -5
  242. package/dist/erc8004/addresses.js.map +1 -1
  243. package/dist/erc8004/identity.d.ts +12 -1
  244. package/dist/erc8004/identity.js +31 -0
  245. package/dist/erc8004/identity.js.map +1 -1
  246. package/dist/erc8004/index.d.ts +1 -1
  247. package/dist/erc8004/index.js +1 -1
  248. package/dist/erc8004/index.js.map +1 -1
  249. package/dist/eval/capability-slate.d.ts +54 -0
  250. package/dist/eval/capability-slate.js +116 -0
  251. package/dist/eval/capability-slate.js.map +1 -0
  252. package/dist/eval/capability-stats.d.ts +39 -0
  253. package/dist/eval/capability-stats.js +123 -0
  254. package/dist/eval/capability-stats.js.map +1 -0
  255. package/dist/eval/contested-band.d.ts +18 -0
  256. package/dist/eval/contested-band.js +19 -0
  257. package/dist/eval/contested-band.js.map +1 -0
  258. package/dist/eval/corpus-index.d.ts +21 -0
  259. package/dist/eval/corpus-index.js +55 -0
  260. package/dist/eval/corpus-index.js.map +1 -0
  261. package/dist/eval/disjointness.d.ts +26 -0
  262. package/dist/eval/disjointness.js +67 -0
  263. package/dist/eval/disjointness.js.map +1 -0
  264. package/dist/eval/eval-harness-run.d.ts +63 -0
  265. package/dist/eval/eval-harness-run.js +123 -0
  266. package/dist/eval/eval-harness-run.js.map +1 -0
  267. package/dist/eval/mcnemar-power.d.ts +14 -0
  268. package/dist/eval/mcnemar-power.js +40 -0
  269. package/dist/eval/mcnemar-power.js.map +1 -0
  270. package/dist/eval/orchestrator.d.ts +224 -0
  271. package/dist/eval/orchestrator.js +250 -0
  272. package/dist/eval/orchestrator.js.map +1 -0
  273. package/dist/eval/paired.d.ts +68 -0
  274. package/dist/eval/paired.js +93 -0
  275. package/dist/eval/paired.js.map +1 -0
  276. package/dist/eval/resolve-slate-tasks.d.ts +35 -0
  277. package/dist/eval/resolve-slate-tasks.js +56 -0
  278. package/dist/eval/resolve-slate-tasks.js.map +1 -0
  279. package/dist/eval/screen-discovery.d.ts +22 -0
  280. package/dist/eval/screen-discovery.js +71 -0
  281. package/dist/eval/screen-discovery.js.map +1 -0
  282. package/dist/eval/screen-progress.d.ts +41 -0
  283. package/dist/eval/screen-progress.js +60 -0
  284. package/dist/eval/screen-progress.js.map +1 -0
  285. package/dist/eval/screen-runner.d.ts +30 -0
  286. package/dist/eval/screen-runner.js +289 -0
  287. package/dist/eval/screen-runner.js.map +1 -0
  288. package/dist/eval/screen.d.ts +107 -0
  289. package/dist/eval/screen.js +159 -0
  290. package/dist/eval/screen.js.map +1 -0
  291. package/dist/eval/slope.d.ts +29 -0
  292. package/dist/eval/slope.js +46 -0
  293. package/dist/eval/slope.js.map +1 -0
  294. package/dist/eval/train-sequence.d.ts +35 -0
  295. package/dist/eval/train-sequence.js +59 -0
  296. package/dist/eval/train-sequence.js.map +1 -0
  297. package/dist/eval/wilson.d.ts +45 -0
  298. package/dist/eval/wilson.js +48 -0
  299. package/dist/eval/wilson.js.map +1 -0
  300. package/dist/events/types.d.ts +1 -1
  301. package/dist/events/types.js +1 -1
  302. package/dist/events/types.js.map +1 -1
  303. package/dist/harnesses/auth-source.d.ts +51 -0
  304. package/dist/harnesses/auth-source.js +155 -0
  305. package/dist/harnesses/auth-source.js.map +1 -0
  306. package/dist/harnesses/engine/canonical-json.js +5 -3
  307. package/dist/harnesses/engine/canonical-json.js.map +1 -1
  308. package/dist/harnesses/engine/engine.d.ts +34 -1
  309. package/dist/harnesses/engine/engine.js +91 -11
  310. package/dist/harnesses/engine/engine.js.map +1 -1
  311. package/dist/harnesses/engine/packaging.js +5 -5
  312. package/dist/harnesses/engine/packaging.js.map +1 -1
  313. package/dist/harnesses/engine/persistence.d.ts +19 -61
  314. package/dist/harnesses/engine/persistence.js +28 -0
  315. package/dist/harnesses/engine/persistence.js.map +1 -1
  316. package/dist/harnesses/impls/_evaluator-base.d.ts +48 -0
  317. package/dist/harnesses/impls/_evaluator-base.js +35 -0
  318. package/dist/harnesses/impls/_evaluator-base.js.map +1 -0
  319. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +1 -1
  320. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js +1 -1
  321. package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -1
  322. package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +2 -3
  323. package/dist/harnesses/impls/claude-mcp-prediction/index.js +29 -99
  324. package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -1
  325. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +4 -21
  326. package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -1
  327. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +2 -0
  328. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +1 -1
  329. package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
  330. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +30 -79
  331. package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -1
  332. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +4 -19
  333. package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -1
  334. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +2 -0
  335. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +1 -1
  336. package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
  337. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.d.ts +39 -0
  338. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js +62 -0
  339. package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js.map +1 -0
  340. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.d.ts +40 -0
  341. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js +44 -0
  342. package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js.map +1 -0
  343. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.d.ts +56 -0
  344. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js +79 -0
  345. package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js.map +1 -0
  346. package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
  347. package/dist/harnesses/impls/hermes-agent/adapter.js +8 -5
  348. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  349. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
  350. package/dist/harnesses/impls/hermes-agent/bootstrap.js +6 -1
  351. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  352. package/dist/harnesses/impls/hermes-agent/harness.d.ts +25 -3
  353. package/dist/harnesses/impls/hermes-agent/harness.js +89 -5
  354. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  355. package/dist/harnesses/impls/index.d.ts +2 -0
  356. package/dist/harnesses/impls/index.js +10 -1
  357. package/dist/harnesses/impls/index.js.map +1 -1
  358. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.d.ts +34 -0
  359. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js +111 -0
  360. package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js.map +1 -0
  361. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.d.ts +24 -0
  362. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js +19 -0
  363. package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js.map +1 -0
  364. package/dist/harnesses/impls/jinn-repo-evaluator/harness.d.ts +64 -0
  365. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js +125 -0
  366. package/dist/harnesses/impls/jinn-repo-evaluator/harness.js.map +1 -0
  367. package/dist/harnesses/impls/jinn-repo-evaluator/repro.d.ts +32 -0
  368. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js +73 -0
  369. package/dist/harnesses/impls/jinn-repo-evaluator/repro.js.map +1 -0
  370. package/dist/harnesses/impls/learner/adapters/claude-code.js +5 -0
  371. package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
  372. package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +11 -1
  373. package/dist/harnesses/impls/learner/adapters/codex-code.js +130 -15
  374. package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
  375. package/dist/harnesses/impls/learner/harness.d.ts +29 -1
  376. package/dist/harnesses/impls/learner/harness.js +85 -1
  377. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  378. package/dist/harnesses/impls/learner/harvest.d.ts +2 -0
  379. package/dist/harnesses/impls/learner/harvest.js +51 -1
  380. package/dist/harnesses/impls/learner/harvest.js.map +1 -1
  381. package/dist/harnesses/impls/learner/plugin-path.js +1 -0
  382. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  383. package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +5 -15
  384. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +10 -29
  385. package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -1
  386. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +5 -15
  387. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +10 -23
  388. package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
  389. package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +5 -15
  390. package/dist/harnesses/impls/prediction-v0-evaluator/index.js +10 -25
  391. package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -1
  392. package/dist/harnesses/impls/stub.d.ts +2 -2
  393. package/dist/harnesses/impls/stub.js +2 -2
  394. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +8 -0
  395. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  396. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +3 -1
  397. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  398. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
  399. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
  400. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  401. package/dist/harnesses/readiness-registry.d.ts +16 -0
  402. package/dist/harnesses/readiness-registry.js +28 -6
  403. package/dist/harnesses/readiness-registry.js.map +1 -1
  404. package/dist/harnesses/types.d.ts +26 -0
  405. package/dist/learner/revert-decision.d.ts +16 -1
  406. package/dist/learner/revert-decision.js +38 -18
  407. package/dist/learner/revert-decision.js.map +1 -1
  408. package/dist/learner/revert-stats.d.ts +14 -0
  409. package/dist/learner/revert-stats.js +42 -0
  410. package/dist/learner/revert-stats.js.map +1 -1
  411. package/dist/learner/verification-gate.d.ts +53 -0
  412. package/dist/learner/verification-gate.js +80 -0
  413. package/dist/learner/verification-gate.js.map +1 -0
  414. package/dist/local-provider-url.d.ts +3 -0
  415. package/dist/local-provider-url.js +28 -0
  416. package/dist/local-provider-url.js.map +1 -0
  417. package/dist/main.js +188 -566
  418. package/dist/main.js.map +1 -1
  419. package/dist/mcp/acquire-artifact.d.ts +3 -3
  420. package/dist/mcp/acquire-artifact.js +3 -3
  421. package/dist/mcp/operator-server.js +1 -1
  422. package/dist/mcp/operator-server.js.map +1 -1
  423. package/dist/mcp/server.js +5 -6
  424. package/dist/mcp/server.js.map +1 -1
  425. package/dist/monitoring/net-liveness.d.ts +143 -0
  426. package/dist/monitoring/net-liveness.js +301 -0
  427. package/dist/monitoring/net-liveness.js.map +1 -0
  428. package/dist/observability/emit-event.d.ts +1 -1
  429. package/dist/observability/emit-event.js +0 -4
  430. package/dist/observability/emit-event.js.map +1 -1
  431. package/dist/observability/progress.d.ts +11 -0
  432. package/dist/observability/progress.js +16 -0
  433. package/dist/observability/progress.js.map +1 -0
  434. package/dist/pilot/cost.d.ts +19 -0
  435. package/dist/pilot/cost.js +31 -0
  436. package/dist/pilot/cost.js.map +1 -0
  437. package/dist/pilot/instance.d.ts +20 -0
  438. package/dist/pilot/instance.js +19 -0
  439. package/dist/pilot/instance.js.map +1 -0
  440. package/dist/pilot/repo.d.ts +31 -0
  441. package/dist/pilot/repo.js +42 -0
  442. package/dist/pilot/repo.js.map +1 -0
  443. package/dist/pilot/solve.d.ts +22 -0
  444. package/dist/pilot/solve.js +37 -0
  445. package/dist/pilot/solve.js.map +1 -0
  446. package/dist/pilot/tally.d.ts +35 -0
  447. package/dist/pilot/tally.js +61 -0
  448. package/dist/pilot/tally.js.map +1 -0
  449. package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
  450. package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
  451. package/dist/plugins/learner/hooks/session-start +30 -1
  452. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
  453. package/dist/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
  454. package/dist/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
  455. package/dist/plugins/local-trace-distiller/.mcp.json +8 -0
  456. package/dist/plugins/local-trace-distiller/README.md +27 -0
  457. package/dist/plugins/local-trace-distiller/jinn.plugin.json +36 -0
  458. package/dist/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
  459. package/dist/preflight/deployment-readiness.d.ts +127 -0
  460. package/dist/preflight/deployment-readiness.js +308 -0
  461. package/dist/preflight/deployment-readiness.js.map +1 -0
  462. package/dist/preflight/pidfile-liveness.d.ts +7 -1
  463. package/dist/preflight/pidfile-liveness.js +14 -0
  464. package/dist/preflight/pidfile-liveness.js.map +1 -1
  465. package/dist/preflight/rpc-network.d.ts +10 -3
  466. package/dist/preflight/rpc-network.js +46 -13
  467. package/dist/preflight/rpc-network.js.map +1 -1
  468. package/dist/preflight/stable-cwd.d.ts +29 -0
  469. package/dist/preflight/stable-cwd.js +98 -0
  470. package/dist/preflight/stable-cwd.js.map +1 -0
  471. package/dist/rpc/transport.d.ts +43 -5
  472. package/dist/rpc/transport.js +131 -30
  473. package/dist/rpc/transport.js.map +1 -1
  474. package/dist/scripts/swe-rebench-v2-seed-pool.json +2 -1
  475. package/dist/solver-nets/registry.d.ts +19 -0
  476. package/dist/solver-nets/registry.js +95 -66
  477. package/dist/solver-nets/registry.js.map +1 -1
  478. package/dist/solver-types/_jinn-repo-pool.d.ts +27 -0
  479. package/dist/solver-types/_jinn-repo-pool.js +27 -0
  480. package/dist/solver-types/_jinn-repo-pool.js.map +1 -0
  481. package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
  482. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
  483. package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
  484. package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
  485. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
  486. package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
  487. package/dist/solver-types/_swe-rebench-v2-state.d.ts +9 -0
  488. package/dist/solver-types/_swe-rebench-v2-state.js +14 -0
  489. package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
  490. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +30 -0
  491. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +40 -0
  492. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  493. package/dist/solver-types/index.js +2 -0
  494. package/dist/solver-types/index.js.map +1 -1
  495. package/dist/solver-types/jinn-repo-admit.d.ts +17 -0
  496. package/dist/solver-types/jinn-repo-admit.js +16 -0
  497. package/dist/solver-types/jinn-repo-admit.js.map +1 -0
  498. package/dist/solver-types/jinn-repo-auto.d.ts +60 -0
  499. package/dist/solver-types/jinn-repo-auto.js +163 -0
  500. package/dist/solver-types/jinn-repo-auto.js.map +1 -0
  501. package/dist/solver-types/jinn-repo-definition.d.ts +15 -0
  502. package/dist/solver-types/jinn-repo-definition.js +34 -0
  503. package/dist/solver-types/jinn-repo-definition.js.map +1 -0
  504. package/dist/solver-types/jinn-repo-extract.d.ts +16 -0
  505. package/dist/solver-types/jinn-repo-extract.js +32 -0
  506. package/dist/solver-types/jinn-repo-extract.js.map +1 -0
  507. package/dist/solver-types/jinn-repo.d.ts +21 -0
  508. package/dist/solver-types/jinn-repo.js +23 -0
  509. package/dist/solver-types/jinn-repo.js.map +1 -0
  510. package/dist/solver-types/learner-loop-test.js +1 -1
  511. package/dist/solver-types/learner-loop-test.js.map +1 -1
  512. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
  513. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
  514. package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
  515. package/dist/solver-types/solver-type.d.ts +8 -0
  516. package/dist/solver-types/swe-rebench-v2.d.ts +2 -0
  517. package/dist/solver-types/swe-rebench-v2.js +115 -10
  518. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  519. package/dist/solvernets/launched-record-dispatcher.d.ts +5 -0
  520. package/dist/solvernets/launched-record-dispatcher.js +14 -1
  521. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  522. package/dist/solvernets/registry-client-erc8004.js +29 -37
  523. package/dist/solvernets/registry-client-erc8004.js.map +1 -1
  524. package/dist/solvernets/registry-client.d.ts +6 -0
  525. package/dist/solvernets/store.d.ts +1 -1
  526. package/dist/solvernets/store.js +8 -3
  527. package/dist/solvernets/store.js.map +1 -1
  528. package/dist/spend/ai-units-config.d.ts +10 -0
  529. package/dist/spend/ai-units-config.js +7 -1
  530. package/dist/spend/ai-units-config.js.map +1 -1
  531. package/dist/spend/ai-units.d.ts +51 -0
  532. package/dist/spend/ai-units.js +73 -0
  533. package/dist/spend/ai-units.js.map +1 -1
  534. package/dist/spend/credential.d.ts +2 -2
  535. package/dist/spend/credential.js +9 -3
  536. package/dist/spend/credential.js.map +1 -1
  537. package/dist/spend/record.js +12 -5
  538. package/dist/spend/record.js.map +1 -1
  539. package/dist/spend/spend-cap.d.ts +10 -0
  540. package/dist/spend/spend-cap.js +13 -0
  541. package/dist/spend/spend-cap.js.map +1 -0
  542. package/dist/spend/usage.js +39 -3
  543. package/dist/spend/usage.js.map +1 -1
  544. package/dist/store/store.d.ts +106 -5
  545. package/dist/store/store.js +194 -8
  546. package/dist/store/store.js.map +1 -1
  547. package/dist/trajectory/emit.d.ts +6 -0
  548. package/dist/trajectory/emit.js +9 -1
  549. package/dist/trajectory/emit.js.map +1 -1
  550. package/dist/trajectory/harness-bundle-schema.d.ts +1 -1
  551. package/dist/trajectory/harness-bundle-schema.js +1 -1
  552. package/dist/trajectory/harness-bundle-schema.js.map +1 -1
  553. package/dist/trajectory/processors/identity-scrub.js +22 -3
  554. package/dist/trajectory/processors/identity-scrub.js.map +1 -1
  555. package/dist/trajectory/schema.d.ts +1 -1
  556. package/dist/trajectory/schema.js +1 -1
  557. package/dist/trajectory/schema.js.map +1 -1
  558. package/dist/trajectory/scrub/build.d.ts +46 -0
  559. package/dist/trajectory/scrub/build.js +76 -0
  560. package/dist/trajectory/scrub/build.js.map +1 -0
  561. package/dist/trajectory/scrub/emit-scrub.d.ts +41 -0
  562. package/dist/trajectory/scrub/emit-scrub.js +88 -0
  563. package/dist/trajectory/scrub/emit-scrub.js.map +1 -0
  564. package/dist/trajectory/scrub/key-policy.d.ts +20 -0
  565. package/dist/trajectory/scrub/key-policy.js +43 -0
  566. package/dist/trajectory/scrub/key-policy.js.map +1 -0
  567. package/dist/trajectory/scrub/layer2.d.ts +23 -0
  568. package/dist/trajectory/scrub/layer2.js +33 -0
  569. package/dist/trajectory/scrub/layer2.js.map +1 -0
  570. package/dist/trajectory/scrub/ml-pii-stage.d.ts +24 -0
  571. package/dist/trajectory/scrub/ml-pii-stage.js +43 -0
  572. package/dist/trajectory/scrub/ml-pii-stage.js.map +1 -0
  573. package/dist/trajectory/scrub/openredaction-stage.d.ts +178 -0
  574. package/dist/trajectory/scrub/openredaction-stage.js +269 -0
  575. package/dist/trajectory/scrub/openredaction-stage.js.map +1 -0
  576. package/dist/trajectory/scrub/pii-build.d.ts +31 -0
  577. package/dist/trajectory/scrub/pii-build.js +64 -0
  578. package/dist/trajectory/scrub/pii-build.js.map +1 -0
  579. package/dist/trajectory/scrub/pipeline.d.ts +37 -0
  580. package/dist/trajectory/scrub/pipeline.js +83 -0
  581. package/dist/trajectory/scrub/pipeline.js.map +1 -0
  582. package/dist/trajectory/scrub/plain-patterns-stage.d.ts +31 -0
  583. package/dist/trajectory/scrub/plain-patterns-stage.js +85 -0
  584. package/dist/trajectory/scrub/plain-patterns-stage.js.map +1 -0
  585. package/dist/trajectory/scrub/secretlint-stage.d.ts +35 -0
  586. package/dist/trajectory/scrub/secretlint-stage.js +250 -0
  587. package/dist/trajectory/scrub/secretlint-stage.js.map +1 -0
  588. package/dist/trajectory/scrub/transformers-detector.d.ts +35 -0
  589. package/dist/trajectory/scrub/transformers-detector.js +68 -0
  590. package/dist/trajectory/scrub/transformers-detector.js.map +1 -0
  591. package/dist/trajectory/scrub/types.d.ts +25 -0
  592. package/dist/trajectory/scrub/types.js +2 -0
  593. package/dist/trajectory/scrub/types.js.map +1 -0
  594. package/dist/trajectory/transcript-parsers/types.d.ts +1 -1
  595. package/dist/trajectory/transcript-parsers/types.js +1 -1
  596. package/dist/trajectory/transcript-parsers/types.js.map +1 -1
  597. package/dist/trajectory/transcript-watcher.d.ts +26 -0
  598. package/dist/trajectory/transcript-watcher.js +33 -0
  599. package/dist/trajectory/transcript-watcher.js.map +1 -1
  600. package/dist/tx-retry.d.ts +12 -0
  601. package/dist/tx-retry.js +41 -12
  602. package/dist/tx-retry.js.map +1 -1
  603. package/dist/types/envelope.d.ts +1 -1
  604. package/dist/types/envelope.js +1 -1
  605. package/dist/types/envelope.js.map +1 -1
  606. package/dist/types/payloads/index.d.ts +1 -1
  607. package/dist/types/payloads/index.js +7 -1
  608. package/dist/types/payloads/index.js.map +1 -1
  609. package/dist/types/payloads/portfolio-v0.d.ts +1 -1
  610. package/dist/types/payloads/portfolio-v0.js +1 -1
  611. package/dist/types/payloads/portfolio-v0.js.map +1 -1
  612. package/dist/types/payloads/prediction-apy-v0.d.ts +1 -1
  613. package/dist/types/payloads/prediction-apy-v0.js +1 -1
  614. package/dist/types/payloads/prediction-apy-v0.js.map +1 -1
  615. package/dist/types/payloads/prediction-v0.d.ts +1 -1
  616. package/dist/types/payloads/prediction-v0.js +1 -1
  617. package/dist/types/payloads/prediction-v0.js.map +1 -1
  618. package/dist/types/portfolio.d.ts +1 -1
  619. package/dist/types/portfolio.js +1 -1
  620. package/dist/types/portfolio.js.map +1 -1
  621. package/dist/types/prediction-apy.d.ts +1 -1
  622. package/dist/types/prediction-apy.js +1 -1
  623. package/dist/types/prediction-apy.js.map +1 -1
  624. package/dist/types/prediction.d.ts +1 -1
  625. package/dist/types/prediction.js +1 -1
  626. package/dist/types/prediction.js.map +1 -1
  627. package/dist/types/session-provenance.d.ts +1 -1
  628. package/dist/types/session-provenance.js +1 -1
  629. package/dist/types/session-provenance.js.map +1 -1
  630. package/dist/types/skill-artifact.d.ts +442 -0
  631. package/dist/types/skill-artifact.js +137 -0
  632. package/dist/types/skill-artifact.js.map +1 -0
  633. package/dist/types/task-document.d.ts +315 -1
  634. package/dist/types/task-document.js +9 -1
  635. package/dist/types/task-document.js.map +1 -1
  636. package/dist/types/task-run-read-model.d.ts +21 -0
  637. package/dist/types/task-run-read-model.js +2 -0
  638. package/dist/types/task-run-read-model.js.map +1 -0
  639. package/dist/types/task-run.d.ts +75 -0
  640. package/dist/types/task-run.js +2 -0
  641. package/dist/types/task-run.js.map +1 -0
  642. package/dist/types/task.d.ts +29 -1
  643. package/dist/types/task.js +1 -1
  644. package/dist/types/task.js.map +1 -1
  645. package/dist/types/window.d.ts +1 -1
  646. package/dist/types/window.js +1 -1
  647. package/dist/types/window.js.map +1 -1
  648. package/dist/util/redact-rpc-urls.d.ts +1 -1
  649. package/dist/util/redact-rpc-urls.js +57 -2
  650. package/dist/util/redact-rpc-urls.js.map +1 -1
  651. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +1 -1
  652. package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +1 -1
  653. package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +3 -2
  654. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +49 -0
  655. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.d.ts +44 -0
  656. package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.js +25 -0
  657. package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +1 -1
  658. package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +1 -1
  659. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.d.ts +38 -0
  660. package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.js +22 -0
  661. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +1 -1
  662. package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +1 -1
  663. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +1 -1
  664. package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +1 -1
  665. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +109 -2
  666. package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +26 -2
  667. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +1 -1
  668. package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +1 -1
  669. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.d.ts +4 -0
  670. package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.js +2 -0
  671. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +1 -1
  672. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -1
  673. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
  674. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
  675. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
  676. package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
  677. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +1 -1
  678. package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +1 -1
  679. package/dist/vendor/@jinn-network/sdk/package.json +9 -1
  680. package/docker-compose.yml +3 -2
  681. package/package.json +43 -28
  682. package/plugins/jinn-repo-runtime/.claude-plugin/plugin.json +5 -0
  683. package/plugins/jinn-repo-runtime/.codex-plugin/plugin.json +39 -0
  684. package/plugins/jinn-repo-runtime/README.md +27 -0
  685. package/plugins/jinn-repo-runtime/hooks/hooks.json +16 -0
  686. package/plugins/jinn-repo-runtime/hooks/session-start +73 -0
  687. package/plugins/jinn-repo-runtime/jinn.plugin.json +11 -0
  688. package/plugins/jinn-repo-runtime/skills/task/SKILL.md +92 -0
  689. package/plugins/learner/.claude-plugin/plugin.json +1 -1
  690. package/plugins/learner/.codex-plugin/plugin.json +1 -1
  691. package/plugins/learner/hooks/session-start +30 -1
  692. package/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
  693. package/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
  694. package/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
  695. package/plugins/local-trace-distiller/.mcp.json +8 -0
  696. package/plugins/local-trace-distiller/README.md +27 -0
  697. package/plugins/local-trace-distiller/jinn.plugin.json +36 -0
  698. package/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
  699. package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
  700. package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
  701. package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +0 -55
  702. package/deployments/deployment-jinn-mvi-l1-sepolia.json +0 -55
  703. package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +0 -13
  704. package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +0 -15
  705. package/dist/api/peers.js.map +0 -1
  706. package/dist/daemon/jinn-claim-loop-canonical.d.ts +0 -207
  707. package/dist/daemon/jinn-claim-loop-canonical.js +0 -296
  708. package/dist/daemon/jinn-claim-loop-canonical.js.map +0 -1
  709. package/dist/daemon/jinn-claim-loop-mock.d.ts +0 -61
  710. package/dist/daemon/jinn-claim-loop-mock.js +0 -122
  711. package/dist/daemon/jinn-claim-loop-mock.js.map +0 -1
  712. package/dist/daemon/jinn-claim-loop-wiring.d.ts +0 -33
  713. package/dist/daemon/jinn-claim-loop-wiring.js +0 -40
  714. package/dist/daemon/jinn-claim-loop-wiring.js.map +0 -1
  715. package/dist/daemon/jinn-claim-loop.d.ts +0 -130
  716. package/dist/daemon/jinn-claim-loop.js +0 -328
  717. package/dist/daemon/jinn-claim-loop.js.map +0 -1
  718. package/dist/dashboard/assets/index-CzKxvMcU.css +0 -32
  719. package/dist/dashboard/assets/index-yVemxHot.js +0 -351
  720. package/dist/earning/jinn-rewards.js.map +0 -1
  721. package/dist/scripts/donation-consumption-acceptance.d.ts +0 -85
  722. package/dist/scripts/donation-consumption-acceptance.js +0 -1382
  723. package/dist/scripts/donation-consumption-acceptance.js.map +0 -1
  724. package/dist/x402/acquire.d.ts +0 -17
  725. package/dist/x402/acquire.js +0 -49
  726. package/dist/x402/acquire.js.map +0 -1
  727. package/dist/x402/facilitator.d.ts +0 -11
  728. package/dist/x402/facilitator.js +0 -52
  729. package/dist/x402/facilitator.js.map +0 -1
  730. package/dist/x402/handler.d.ts +0 -27
  731. package/dist/x402/handler.js +0 -236
  732. package/dist/x402/handler.js.map +0 -1
  733. /package/dist/{api/peers.d.ts → daemon/peer-sync.d.ts} +0 -0
@@ -32,6 +32,28 @@ export interface ClaimableTaskCandidate {
32
32
  attemptCount: number;
33
33
  operatorAttemptCount: number;
34
34
  }
35
+ /**
36
+ * On-chain finalization status for a posted Task, as rendered in the Launcher
37
+ * "Recent posted Tasks" table. This is a DISPLAY/advisory signal — distinct
38
+ * from the generator-side local `LauncherTaskState` — sourced from the indexer
39
+ * `task` table. `'unknown'` is the safe degraded default whenever the status
40
+ * cannot be resolved (floor outage, not-yet-indexed task); callers MUST map
41
+ * absence to `'unknown'` and never guess `'open'`.
42
+ */
43
+ export type TaskOnchainStatus = 'open' | 'finalized' | 'expired' | 'unknown';
44
+ /**
45
+ * Per-task on-chain finalization snapshot, returned by `getTaskStatuses` keyed
46
+ * by on-chain taskId (decimal string). `claimWindowEnd` is unix seconds and MAY
47
+ * be null/undefined in the live indexer today (its call-trace decode is
48
+ * pending), so a missing/invalid window degrades to 'unknown' rather than
49
+ * guessing 'open'.
50
+ */
51
+ export interface TaskStatusSnapshot {
52
+ taskId: string;
53
+ finalized: boolean;
54
+ refunded: boolean;
55
+ claimWindowEnd?: number;
56
+ }
35
57
  /**
36
58
  * Per-on-chain-task claim-budget snapshot for a launched SolverNet. Returned by
37
59
  * `getInstanceClaimCounts`, keyed by **on-chain taskId** (decimal string) — NOT
@@ -137,6 +159,52 @@ export interface BuilderAttributedRun {
137
159
  * `actualPassed` is the source of truth (NOT the on-chain verdictCode, which
138
160
  * defaults to Pass — see verdictEnvelopeMeta JSDoc).
139
161
  */
162
+ /**
163
+ * Windowed on-chain task-post counts for one scope (chain-wide or a single
164
+ * SolverNet). Each window is a count of `TaskCreated` events whose block falls
165
+ * within the last 1h / 6h / 24h, computed backend-side as a block-window
166
+ * approximation (Base ~2s blocktime: 1h≈1800, 6h≈10800, 24h≈43200 blocks back
167
+ * from head). The windows nest: `h1 ⊆ h6 ⊆ h24`. Counts are approximate —
168
+ * blocktime drift and the per-call scan cap mean the 24h figure is a lower
169
+ * bound on a very high-volume SolverNet. See `DiscoveryAPI.getTaskPostCounts`.
170
+ */
171
+ export interface TaskPostCounts {
172
+ /** TaskCreated events in the last ~1h. */
173
+ h1: number;
174
+ /** TaskCreated events in the last ~6h (includes h1). */
175
+ h6: number;
176
+ /** TaskCreated events in the last ~24h (includes h6). */
177
+ h24: number;
178
+ /** Block at the head of the window (Number(getBlockNumber()) on-chain; the latest indexed task block on HTTP). */
179
+ windowEndBlock: number;
180
+ /** Unix seconds the window was computed. */
181
+ windowEndTs: number;
182
+ }
183
+ /**
184
+ * Block-window thresholds for `getTaskPostCounts`, from Base's ~2s blocktime:
185
+ * 1h≈1800, 6h≈10800, 24h≈43200 blocks back from the window head. Shared by the
186
+ * HTTP and on-chain backings so they bucket identically. The windows nest
187
+ * (h1 ⊆ h6 ⊆ h24); the 24h figure also bounds the on-chain scan range.
188
+ */
189
+ export declare const TASK_POST_WINDOW_BLOCKS: {
190
+ readonly h1: 1800;
191
+ readonly h6: 10800;
192
+ readonly h24: 43200;
193
+ };
194
+ /**
195
+ * Bucket a stream of TaskCreated events into chain-wide + per-cid
196
+ * `TaskPostCounts`, shared by both DiscoveryAPI backings. `events` carry a
197
+ * `block` (number) and lowercased manifest `digest`; `cidByDigest` maps each
198
+ * requested digest to its cid. Counts nest (h1 ⊆ h6 ⊆ h24); events older than
199
+ * the 24h cut are ignored.
200
+ */
201
+ export declare function bucketTaskPostCounts(windowEndBlock: number, windowEndTs: number, events: Array<{
202
+ block: number;
203
+ digest: string;
204
+ }>, cidByDigest: Map<string, string>): {
205
+ chain: TaskPostCounts;
206
+ byCid: Record<string, TaskPostCounts>;
207
+ };
140
208
  export interface CodeDigestRewardRow {
141
209
  /** The executor.codeDigest, e.g. "sha256:<hex>". */
142
210
  codeDigest: string;
@@ -148,6 +216,12 @@ export interface CodeDigestRewardRow {
148
216
  passRate: number;
149
217
  /** Mean of numeric actualScore over verdicts that carried one; 0 when none. */
150
218
  avgScore: number;
219
+ /**
220
+ * Per-attempt graded score (passedCount/totalCount) for in-window verdicts
221
+ * that carried v2 counts (totalCount > 0). Empty / short when verdicts predate
222
+ * verdict.v2. Consumed by the learner's Mann-Whitney sensitivity tier (#1019).
223
+ */
224
+ gradedScores: number[];
151
225
  }
152
226
  export interface DiscoveryAPI {
153
227
  /**
@@ -350,6 +424,81 @@ export interface DiscoveryAPI {
350
424
  getInstanceClaimCounts(args: {
351
425
  manifestCid: string;
352
426
  }): Promise<Map<string, InstanceClaimCount>>;
427
+ /**
428
+ * Returns windowed on-chain task-post counts (last 1h / 6h / 24h) sourced
429
+ * from `TaskCreated` events on the active chain's JinnRouter / TaskCoordinator.
430
+ * Always returns the `chain`-wide totals; when `manifestCids` is supplied, also
431
+ * returns per-SolverNet totals in `byCid` (keyed by manifest CID), joined via
432
+ * `manifestDigestForCid(cid)` against each event's `manifestDigest`.
433
+ *
434
+ * Windowing is a block-window approximation computed backend-side (Base ~2s
435
+ * blocktime — see `TaskPostCounts`); counts are approximate. Each backing caps
436
+ * its scan, so on a very high-volume chain the figures are a lower bound.
437
+ *
438
+ * This is a *supply signal*, not a correctness gate, so it is NOT
439
+ * abort-on-outage: like `getSolverNetOperatorCount`, the `withFallback` wrapper
440
+ * routes it to the on-chain floor when the indexer is unavailable rather than
441
+ * propagating `DiscoveryUnavailableError`. The on-chain floor reconstructs the
442
+ * counts directly from `TaskCreated` logs.
443
+ */
444
+ getTaskPostCounts(args?: {
445
+ manifestCids?: string[];
446
+ }): Promise<{
447
+ windowEndBlock: number;
448
+ windowEndTs: number;
449
+ /** Chain-wide totals (always present). */
450
+ chain: TaskPostCounts;
451
+ /** Per-SolverNet totals keyed by manifest CID; empty `{}` when no manifestCids given. */
452
+ byCid: Record<string, TaskPostCounts>;
453
+ }>;
454
+ /**
455
+ * Returns the most-recently-created task on the SolverNet identified by
456
+ * `manifestCid` — its on-chain `taskCidDigest` and decimal `taskId` — or
457
+ * `undefined` when no task has ever been posted for the SolverNet.
458
+ *
459
+ * The join key is the same `manifestDigest === keccak256(manifestCid)` used by
460
+ * `findClaimableTasks` / `getInstanceClaimCounts` (computed via
461
+ * `manifestDigestForCid`). "Most recent" is by creation order: the HTTP
462
+ * backing orders the `task` table by `createdAtBlock` desc, limit 1; the
463
+ * on-chain floor takes the highest-block `TaskCreated` log for the digest.
464
+ *
465
+ * This is a PURE indexer/chain read — it returns only the on-chain digest, NOT
466
+ * any IPFS body. The caller reconstructs the IPFS task CID
467
+ * (`f01551220 + digestHexWithout0x`, see `adapters/mech/adapter.ts`) and fetches
468
+ * the body itself. It is the read primitive behind the swe-rebench-v2 fresh-
469
+ * volume pool recovery (#957): an operator with an empty disk reads a recent
470
+ * task's eligibility `vettedPoolRef` to re-fetch the published vetted pool.
471
+ *
472
+ * This is a *recovery signal*, not a correctness gate, so it is NOT
473
+ * abort-on-outage: like `getSolverNetOperatorCount` / `getTaskPostCounts`, the
474
+ * `withFallback` wrapper routes it to the on-chain floor when the indexer is
475
+ * unavailable rather than propagating `DiscoveryUnavailableError`.
476
+ */
477
+ getMostRecentTaskCidDigest(manifestCid: string): Promise<{
478
+ taskCidDigest: `0x${string}`;
479
+ taskId: string;
480
+ } | undefined>;
481
+ /**
482
+ * Returns the on-chain finalization snapshot for every task posted on the
483
+ * SolverNet identified by `manifestCid`, keyed by on-chain taskId (decimal
484
+ * string). Backed by the indexer `task` table (`finalized`, `refunded`,
485
+ * `claimWindowEnd`), joined via `manifestDigest === keccak256(manifestCid)`.
486
+ *
487
+ * This is a DISPLAY/advisory signal (the Launcher "Recent posted Tasks"
488
+ * status chip), NOT a correctness gate, so it is *tolerant*: like
489
+ * `getTaskPostCounts`, the `withFallback` wrapper routes it to the on-chain
490
+ * floor on an indexer outage rather than propagating
491
+ * `DiscoveryUnavailableError`. The on-chain floor returns an empty Map (it
492
+ * cannot cheaply reconstruct finalized state); callers map absence /
493
+ * floor-empty to `'unknown'` and MUST NEVER guess `'open'`.
494
+ *
495
+ * `claimWindowEnd` (unix seconds) may be null/undefined in the live indexer
496
+ * today (call-trace decode pending), so callers must treat a missing/invalid
497
+ * window as `'unknown'` rather than guessing `'open'`.
498
+ */
499
+ getTaskStatuses(args: {
500
+ manifestCid: string;
501
+ }): Promise<Map<string, TaskStatusSnapshot>>;
353
502
  }
354
503
  /**
355
504
  * Thrown by a DiscoveryAPI implementation when it is temporarily unable to
@@ -9,6 +9,46 @@
9
9
  *
10
10
  * Spec: spec/2026-05-11-discovery-api-and-shared-indexer.md §5.
11
11
  */
12
+ /**
13
+ * Block-window thresholds for `getTaskPostCounts`, from Base's ~2s blocktime:
14
+ * 1h≈1800, 6h≈10800, 24h≈43200 blocks back from the window head. Shared by the
15
+ * HTTP and on-chain backings so they bucket identically. The windows nest
16
+ * (h1 ⊆ h6 ⊆ h24); the 24h figure also bounds the on-chain scan range.
17
+ */
18
+ export const TASK_POST_WINDOW_BLOCKS = { h1: 1_800, h6: 10_800, h24: 43_200 };
19
+ /**
20
+ * Bucket a stream of TaskCreated events into chain-wide + per-cid
21
+ * `TaskPostCounts`, shared by both DiscoveryAPI backings. `events` carry a
22
+ * `block` (number) and lowercased manifest `digest`; `cidByDigest` maps each
23
+ * requested digest to its cid. Counts nest (h1 ⊆ h6 ⊆ h24); events older than
24
+ * the 24h cut are ignored.
25
+ */
26
+ export function bucketTaskPostCounts(windowEndBlock, windowEndTs, events, cidByDigest) {
27
+ const h1Cut = windowEndBlock - TASK_POST_WINDOW_BLOCKS.h1;
28
+ const h6Cut = windowEndBlock - TASK_POST_WINDOW_BLOCKS.h6;
29
+ const h24Cut = windowEndBlock - TASK_POST_WINDOW_BLOCKS.h24;
30
+ const blank = () => ({ h1: 0, h6: 0, h24: 0, windowEndBlock, windowEndTs });
31
+ const chain = blank();
32
+ const byCid = {};
33
+ for (const cid of cidByDigest.values())
34
+ byCid[cid] = blank();
35
+ const bucket = (target, block) => {
36
+ if (block < h24Cut)
37
+ return;
38
+ target.h24 += 1;
39
+ if (block >= h6Cut)
40
+ target.h6 += 1;
41
+ if (block >= h1Cut)
42
+ target.h1 += 1;
43
+ };
44
+ for (const e of events) {
45
+ bucket(chain, e.block);
46
+ const cid = cidByDigest.get(e.digest);
47
+ if (cid)
48
+ bucket(byCid[cid], e.block);
49
+ }
50
+ return { chain, byCid };
51
+ }
12
52
  export class DiscoveryUnavailableError extends Error {
13
53
  cause;
14
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyZH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAChC,KAAK,CAAW;IAClC;;;;OAIG;IACM,IAAI,CAA4B;IAEzC,YAAY,OAAe,EAAE,KAAe,EAAE,IAA+B;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkNH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAW,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,cAAsB,EACtB,WAAmB,EACnB,MAAgD,EAChD,WAAgC;IAEhC,MAAM,KAAK,GAAG,cAAc,GAAG,uBAAuB,CAAC,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,cAAc,GAAG,uBAAuB,CAAC,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC;IAE5D,MAAM,KAAK,GAAG,GAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;IACtB,MAAM,KAAK,GAAmC,EAAE,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;IAE7D,MAAM,MAAM,GAAG,CAAC,MAAsB,EAAE,KAAa,EAAQ,EAAE;QAC7D,IAAI,KAAK,GAAG,MAAM;YAAE,OAAO;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK;YAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,KAAK;YAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,GAAG;YAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAuUD,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAChC,KAAK,CAAW;IAClC;;;;OAIG;IACM,IAAI,CAA4B;IAEzC,YAAY,OAAe,EAAE,KAAe,EAAE,IAA+B;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -194,6 +194,30 @@ export function withFallback(primary, floor, opts = {}) {
194
194
  // its tick rather than treating absent data as truth.
195
195
  return primary.getInstanceClaimCounts(args);
196
196
  },
197
+ getTaskPostCounts(args) {
198
+ // Supply signal (not a correctness gate): fall through to the floor on an
199
+ // indexer outage like getSolverNetOperatorCount. The on-chain floor
200
+ // reconstructs the windowed counts directly from TaskCreated logs, so a
201
+ // floor result is meaningful (unlike the abort-on-outage methods above).
202
+ return dispatch(() => primary.getTaskPostCounts(args), () => floor.getTaskPostCounts(args));
203
+ },
204
+ getMostRecentTaskCidDigest(manifestCid) {
205
+ // Recovery signal (not a correctness gate): fall through to the floor on
206
+ // an indexer outage like getTaskPostCounts. The on-chain floor reads the
207
+ // newest TaskCreated log for the manifest directly, so a floor result is
208
+ // meaningful (#957).
209
+ return dispatch(() => primary.getMostRecentTaskCidDigest(manifestCid), () => floor.getMostRecentTaskCidDigest(manifestCid));
210
+ },
211
+ getTaskStatuses(args) {
212
+ // DISPLAY/advisory signal (not a correctness gate): fall through to the
213
+ // floor on an indexer outage — the OPPOSITE of getInstanceClaimCounts.
214
+ // The floor's empty Map is the intended degraded result: the caller maps
215
+ // absence to 'unknown' (never guesses 'open'), so a tolerant fall-through
216
+ // is honest, not masking. Propagating the error here would needlessly
217
+ // break the launcher table's status column on a transient indexer blip
218
+ // (#579).
219
+ return dispatch(() => primary.getTaskStatuses(args), () => floor.getTaskStatuses(args));
220
+ },
197
221
  };
198
222
  }
199
223
  //# sourceMappingURL=with-fallback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"with-fallback.js","sourceRoot":"","sources":["../../src/discovery/with-fallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"with-fallback.js","sourceRoot":"","sources":["../../src/discovery/with-fallback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { JinnConfig } from '../config.js';
2
+ import type { ProgressEnvelope } from '../observability/progress.js';
3
+ import { type ErrorEnvelope } from '../errors/envelope.js';
4
+ export declare class SetupBootstrapHalted extends Error {
5
+ readonly envelope: ErrorEnvelope;
6
+ constructor(envelope: ErrorEnvelope);
7
+ }
8
+ export declare function runFleetBootstrap(deps: {
9
+ config: JinnConfig;
10
+ password: string;
11
+ network: 'base' | 'base-sepolia';
12
+ emitProgress: (envelope: ProgressEnvelope) => void;
13
+ }): Promise<{
14
+ masterAddress: `0x${string}`;
15
+ serviceIndex: number;
16
+ serviceId: number | null;
17
+ stakingAddress: `0x${string}` | null;
18
+ agentPrivateKey: `0x${string}`;
19
+ safeAddress: `0x${string}`;
20
+ mechAddress?: `0x${string}`;
21
+ /** ERC-8004 agent NFT id (decimal string). null if bootstrap mint not yet complete. */
22
+ agentId: string | null;
23
+ /** ERC-8004 IdentityRegistry contract used for the mint. null if unknown. */
24
+ identityRegistryAddress: `0x${string}` | null;
25
+ }>;
@@ -0,0 +1,315 @@
1
+ import { mkdirSync, unlinkSync, writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { FleetBootstrapper } from './bootstrap.js';
4
+ import { runLegacyAgentIdMigration } from './migrate-agent-id.js';
5
+ import { FleetStateStore } from './store.js';
6
+ import { isOperationalServiceStep, } from './types.js';
7
+ import { decryptMnemonic, walletPrivateKeyAtIndex } from './wallet.js';
8
+ import { buildEnvelope, emitEnvelope } from '../errors/envelope.js';
9
+ import { clearBootstrapError, persistBootstrapError } from '../errors/persisted-bootstrap-error.js';
10
+ import { emitStructured } from '../events/emitter.js';
11
+ import { keepSetupUiOnBootstrapError } from '../setup/halt-mode.js';
12
+ const STANDARD_SERVICE_PROGRESSION = [
13
+ 'awaiting_stake',
14
+ 'staked',
15
+ 'mech_deployed',
16
+ 'agent_registered',
17
+ 'safe_binding_pending',
18
+ 'complete',
19
+ ];
20
+ const SELF_BOND_SERVICE_PROGRESSION = [
21
+ 'awaiting_stake',
22
+ 'service_created',
23
+ 'service_activated',
24
+ 'agents_registered',
25
+ 'service_deployed',
26
+ 'service_staked',
27
+ 'mech_deployed',
28
+ 'agent_registered',
29
+ 'safe_binding_pending',
30
+ 'complete',
31
+ ];
32
+ /** §6.2 `bootstrap_incomplete` — `{ currentStep, nextStep }` from persisted fleet state. */
33
+ function bootstrapIncompleteSteps(state) {
34
+ const progression = state.staking_mode === 'self-bond'
35
+ ? SELF_BOND_SERVICE_PROGRESSION
36
+ : STANDARD_SERVICE_PROGRESSION;
37
+ const byIndex = [...state.services].sort((a, b) => a.index - b.index);
38
+ const focus = byIndex.find(s => isOperationalServiceStep(s.step) && !s.safe_address) ??
39
+ byIndex.find(s => !isOperationalServiceStep(s.step)) ??
40
+ byIndex.find(s => s.step === 'safe_binding_pending') ??
41
+ byIndex[0];
42
+ if (!focus) {
43
+ return { currentStep: 'awaiting_service', nextStep: 'awaiting_stake' };
44
+ }
45
+ if (isOperationalServiceStep(focus.step) && !focus.safe_address) {
46
+ return { currentStep: 'complete', nextStep: 'bootstrap' };
47
+ }
48
+ const i = progression.indexOf(focus.step);
49
+ if (i === -1) {
50
+ return { currentStep: focus.step, nextStep: 'bootstrap' };
51
+ }
52
+ if (i < progression.length - 1) {
53
+ return { currentStep: focus.step, nextStep: progression[i + 1] };
54
+ }
55
+ return { currentStep: focus.step, nextStep: 'bootstrap' };
56
+ }
57
+ export class SetupBootstrapHalted extends Error {
58
+ envelope;
59
+ constructor(envelope) {
60
+ super(envelope.message);
61
+ this.envelope = envelope;
62
+ this.name = 'SetupBootstrapHalted';
63
+ }
64
+ }
65
+ // ── Bootstrap ───────────────────────────────────────────────────────────────
66
+ export async function runFleetBootstrap(deps) {
67
+ const { config, password: PASSWORD, network: NETWORK_CHAIN, emitProgress } = deps;
68
+ console.log('[main] Running fleet bootstrap...');
69
+ // A fresh bootstrap attempt clears any stale error breadcrumb. If this run
70
+ // hits the same failure, it'll be re-persisted below; if it succeeds (or
71
+ // proceeds past the previously-failed step), the panel returns to a clean
72
+ // state on the next /v1/bootstrap poll.
73
+ clearBootstrapError(config.earningDir);
74
+ // Persist the envelope to disk before emitEnvelope's process.exit fires,
75
+ // so /v1/bootstrap can surface it to the panel after the daemon has
76
+ // exited (operator restart → panel reload → error visible).
77
+ function failBootstrap(input) {
78
+ const envelope = buildEnvelope(input);
79
+ persistBootstrapError(envelope, config.earningDir);
80
+ if (keepSetupUiOnBootstrapError()) {
81
+ emitStructured({
82
+ kind: 'error',
83
+ message: envelope.message,
84
+ errorCode: envelope.code,
85
+ details: {
86
+ phase: 'bootstrap',
87
+ exitCode: envelope.exitCode,
88
+ ...(envelope.details ?? {}),
89
+ },
90
+ });
91
+ console.error(`[main] Bootstrap halted (${envelope.code}); setup UI remains available. ` +
92
+ `Resolve the issue and run jinn run again.`);
93
+ throw new SetupBootstrapHalted(envelope);
94
+ }
95
+ emitEnvelope(input);
96
+ // Unreachable in production (emitEnvelope exits); satisfies `never`.
97
+ throw new Error('unreachable');
98
+ }
99
+ const bootstrapper = new FleetBootstrapper({
100
+ earningDir: config.earningDir,
101
+ chain: NETWORK_CHAIN,
102
+ rpcUrl: config.rpcUrl,
103
+ stakingMode: config.stakingMode,
104
+ targetServices: config.targetServices,
105
+ testnetL2DeploymentPath: config.testnetL2DeploymentPath,
106
+ testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
107
+ testnetMechDeploymentPath: config.testnetMechDeploymentPath,
108
+ testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
109
+ debug: config.debug,
110
+ masterEthDailyEstimateWei: config.masterEthDailyEstimateWei,
111
+ minEoaGasWei: config.minEoaGasWei,
112
+ minSafeEthWei: config.minSafeEthWei,
113
+ pollIntervalMs: config.pollIntervalMs,
114
+ autoTestnetFaucet: process.env['JINN_AUTO_TESTNET_FAUCET'] === '1',
115
+ });
116
+ // Funding poll: stay up while waiting for the operator to fund the wallet.
117
+ // The setup-mode API server is already running; the panel renders the
118
+ // funding card and auto-advances when funds land. Daemon-side, we poll
119
+ // bootstrap on a 15s tick and only escalate (exit) if a non-funding error
120
+ // occurs or the configured timeout elapses. Each tick re-runs the full
121
+ // bootstrap state machine — completed steps are no-ops, so this is safe.
122
+ // Testnet faucet funding is panel-driven: bootstrap reports the funding gate,
123
+ // and the operator clicks the funding action before this loop can advance.
124
+ const FUNDING_POLL_INTERVAL_MS = 15_000;
125
+ const fundingTimeoutMs = (() => {
126
+ const raw = process.env['JINN_FUNDING_TIMEOUT_MS'];
127
+ if (!raw)
128
+ return Number.POSITIVE_INFINITY;
129
+ const n = Number.parseInt(raw, 10);
130
+ return Number.isFinite(n) && n > 0 ? n : Number.POSITIVE_INFINITY;
131
+ })();
132
+ emitProgress({
133
+ type: 'progress',
134
+ phase: 'bootstrap',
135
+ step: 'advance_state_machine',
136
+ estimatedWaitMs: 60_000,
137
+ });
138
+ const fundingStartedAt = Date.now();
139
+ let result;
140
+ let lastFundingMessage = '';
141
+ const fundingGatePath = join(config.earningDir, 'bootstrap-funding.json');
142
+ const persistFundingGate = (funding) => {
143
+ mkdirSync(config.earningDir, { recursive: true, mode: 0o700 });
144
+ writeFileSync(fundingGatePath, `${JSON.stringify({
145
+ schemaVersion: 1,
146
+ generatedAt: new Date().toISOString(),
147
+ ...funding,
148
+ }, null, 2)}\n`, { mode: 0o600 });
149
+ };
150
+ const clearFundingGate = () => {
151
+ try {
152
+ unlinkSync(fundingGatePath);
153
+ }
154
+ catch {
155
+ // best-effort: absent/stale funding gate should not affect bootstrap
156
+ }
157
+ };
158
+ // eslint-disable-next-line no-constant-condition
159
+ while (true) {
160
+ result = await bootstrapper.ensureStage1And2(PASSWORD);
161
+ if (!result.funding) {
162
+ clearFundingGate();
163
+ break;
164
+ }
165
+ persistFundingGate(result.funding);
166
+ // Emit a structured event so the panel's Visibility region shows the gate.
167
+ // Dedupe by message to avoid spamming the ring buffer on each poll.
168
+ const fundingMsg = result.message ?? 'awaiting funding';
169
+ if (fundingMsg !== lastFundingMessage) {
170
+ emitStructured({
171
+ kind: 'fleet',
172
+ message: fundingMsg,
173
+ details: {
174
+ phase: 'awaiting_funding',
175
+ role: 'master',
176
+ address: result.funding.master_address,
177
+ asset: 'native',
178
+ needWei: result.funding.eth_required,
179
+ haveWei: result.funding.eth_balance,
180
+ },
181
+ });
182
+ // Mirror the structured event to NDJSON progress for --json-progress
183
+ // consumers (CI, agents). Same dedup gate so we don't spam stdout.
184
+ emitProgress({
185
+ type: 'progress',
186
+ phase: 'bootstrap',
187
+ step: 'awaiting_funding',
188
+ blocking: true,
189
+ nextAction: 'Fund the address shown in addresses.fundingAddress, then wait for automatic retry.',
190
+ addresses: { fundingAddress: result.funding.master_address },
191
+ estimatedWaitMs: 1_800_000,
192
+ });
193
+ lastFundingMessage = fundingMsg;
194
+ }
195
+ const elapsed = Date.now() - fundingStartedAt;
196
+ if (elapsed >= fundingTimeoutMs) {
197
+ failBootstrap({
198
+ code: 'funding_required',
199
+ message: `${result.message} (timeout after ${Math.round(elapsed / 1000)}s)`,
200
+ hint: 'Fund the listed address and re-run this command.',
201
+ exampleCli: 'jinn fund-requirements --json',
202
+ details: {
203
+ // jinn-mono-hjex.6: structured envelope so SPA can render the
204
+ // specific address + amount instead of a prose disjunction.
205
+ category: 'insufficient_funds',
206
+ step: 'awaiting_funding',
207
+ address: result.funding.master_address,
208
+ requiredWei: result.funding.eth_required,
209
+ haveWei: result.funding.eth_balance,
210
+ // Legacy aliases kept for any external consumers that read these.
211
+ role: 'master',
212
+ asset: 'native',
213
+ needWei: result.funding.eth_required,
214
+ },
215
+ });
216
+ }
217
+ console.log(`[main] Awaiting funding... (${Math.round(elapsed / 1000)}s elapsed; ` +
218
+ `will retry in ${FUNDING_POLL_INTERVAL_MS / 1000}s)`);
219
+ await new Promise((r) => setTimeout(r, FUNDING_POLL_INTERVAL_MS));
220
+ }
221
+ if (!result.ok) {
222
+ failBootstrap({
223
+ code: 'fatal',
224
+ message: result.message,
225
+ hint: 'Bootstrap failed before the fleet reached a runnable state.',
226
+ details: {
227
+ cause: result.message,
228
+ // jinn-mono-hjex.6: propagate structured category from the bootstrapper
229
+ // so the SPA can render category-specific UI (e.g. funding shortfall).
230
+ ...(result.errorCategory !== undefined ? { category: result.errorCategory } : {}),
231
+ // Preserve the raw underlying error so a misclassified summary can
232
+ // be diagnosed without re-running with JINN_DEBUG. See jinn-mono-jz9f.
233
+ ...(result.rawErrorMessage && result.rawErrorMessage !== result.message
234
+ ? { rawErrorMessage: result.rawErrorMessage }
235
+ : {}),
236
+ // jinn-mono-hjex reviewer fix: propagate tx hash so the SPA can render
237
+ // a block-explorer link for failed on-chain revert transactions.
238
+ ...(result.txHash != null ? { txHash: result.txHash } : {}),
239
+ },
240
+ });
241
+ }
242
+ // Legacy migration (jinn-mono-jgp): backfill `agent_id` on `complete`
243
+ // services that pre-date j07. Idempotent + per-service failure-isolated;
244
+ // a failure here does not abort daemon startup, but we surface counts so
245
+ // operators notice. Disabled via `runLegacyMigrations: false` /
246
+ // JINN_RUN_LEGACY_MIGRATIONS=0 — operators can run `jinn migrate-agent-id`
247
+ // explicitly instead.
248
+ let state = result.fleet_state;
249
+ if (config.runLegacyMigrations) {
250
+ try {
251
+ const migration = await runLegacyAgentIdMigration({
252
+ earningDir: config.earningDir,
253
+ network: NETWORK_CHAIN,
254
+ rpcUrl: config.rpcUrl,
255
+ password: PASSWORD,
256
+ testnetL2DeploymentPath: config.testnetL2DeploymentPath,
257
+ testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
258
+ testnetMechDeploymentPath: config.testnetMechDeploymentPath,
259
+ testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
260
+ });
261
+ if (migration.migrated.length > 0 || migration.failed.length > 0) {
262
+ console.log(`[main] Legacy agent_id migration: migrated=${migration.migrated.length} ` +
263
+ `skipped=${migration.skipped.length} failed=${migration.failed.length}`);
264
+ for (const f of migration.failed) {
265
+ console.log(`[main] service ${f.service.index} (agent ${f.service.agent_address}): ${f.error}`);
266
+ }
267
+ // Reload state so downstream wiring (agent_id, identityRegistry)
268
+ // sees the migrated rows.
269
+ state = await new FleetStateStore(config.earningDir).load(NETWORK_CHAIN);
270
+ }
271
+ }
272
+ catch (err) {
273
+ const message = err instanceof Error ? err.message : String(err);
274
+ console.error(`[main] Legacy agent_id migration failed (non-fatal): ${message}`);
275
+ }
276
+ }
277
+ // Use the first operational service for the daemon. `safe_binding_pending`
278
+ // means staking/mech are live; only the ERC-8004 Safe→agent metadata bind
279
+ // is still retrying.
280
+ const firstComplete = state.services.find(s => isOperationalServiceStep(s.step));
281
+ if (!firstComplete || !firstComplete.safe_address) {
282
+ failBootstrap({
283
+ code: 'bootstrap_incomplete',
284
+ message: 'Bootstrap completed but no service is ready.',
285
+ hint: 'Re-run to continue the state machine toward a running fleet.',
286
+ exampleCli: 'jinn bootstrap --json',
287
+ details: bootstrapIncompleteSteps(state),
288
+ });
289
+ }
290
+ // Derive agent private key from mnemonic
291
+ const store = new FleetStateStore(config.earningDir);
292
+ const mnemonic = await decryptMnemonic(await store.loadMnemonicKeystore(), PASSWORD);
293
+ const agentPrivateKey = walletPrivateKeyAtIndex(mnemonic, firstComplete.index);
294
+ console.log(`[main] Fleet bootstrap complete.`);
295
+ console.log(` Master: ${state.master_address}`);
296
+ console.log(` Services: ${state.services.filter(s => isOperationalServiceStep(s.step)).length}/${config.targetServices}`);
297
+ console.log(` Active: service ${firstComplete.service_id} (agent ${firstComplete.agent_address})`);
298
+ if (firstComplete.mech_address) {
299
+ console.log(` Mech: ${firstComplete.mech_address}`);
300
+ }
301
+ return {
302
+ masterAddress: state.master_address,
303
+ serviceIndex: firstComplete.index,
304
+ serviceId: firstComplete.service_id ?? null,
305
+ stakingAddress: firstComplete.staking_address ? firstComplete.staking_address : null,
306
+ agentPrivateKey: agentPrivateKey,
307
+ safeAddress: firstComplete.safe_address,
308
+ mechAddress: firstComplete.mech_address ? firstComplete.mech_address : undefined,
309
+ agentId: firstComplete.agent_id ?? null,
310
+ identityRegistryAddress: firstComplete.identity_registry_address
311
+ ? firstComplete.identity_registry_address
312
+ : null,
313
+ };
314
+ }
315
+ //# sourceMappingURL=bootstrap-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-run.js","sourceRoot":"","sources":["../../src/earning/bootstrap-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,wBAAwB,GAIzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAsC,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,4BAA4B,GAA2B;IAC3D,gBAAgB;IAChB,QAAQ;IACR,eAAe;IACf,kBAAkB;IAClB,sBAAsB;IACtB,UAAU;CACX,CAAC;AAEF,MAAM,6BAA6B,GAA2B;IAC5D,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,sBAAsB;IACtB,UAAU;CACX,CAAC;AAEF,4FAA4F;AAC5F,SAAS,wBAAwB,CAAC,KAAiB;IACjD,MAAM,WAAW,GACf,KAAK,CAAC,YAAY,KAAK,WAAW;QAChC,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,4BAA4B,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC;QACpD,OAAO,CAAC,CAAC,CAAC,CAAC;IAEb,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAChE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC5D,CAAC;IACD,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACxB;IAArB,YAAqB,QAAuB;QAC1C,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QADL,aAAQ,GAAR,QAAQ,CAAe;QAE1C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAKvC;IAaC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,wCAAwC;IACxC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEvC,yEAAyE;IACzE,oEAAoE;IACpE,4DAA4D;IAC5D,SAAS,aAAa,CAAC,KAMtB;QACC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,2BAA2B,EAAE,EAAE,CAAC;YAClC,cAAc,CAAC;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,IAAI;gBACxB,OAAO,EAAE;oBACP,KAAK,EAAE,WAAW;oBAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;iBAC5B;aACF,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CACX,4BAA4B,QAAQ,CAAC,IAAI,iCAAiC;gBACxE,2CAA2C,CAC9C,CAAC;YACF,MAAM,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,qEAAqE;QACrE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC;QACzC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;QACjE,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;QAC3D,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;QAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;QAC3D,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,KAAK,GAAG;KACnE,CAAC,CAAC;IAEH,2EAA2E;IAC3E,sEAAsE;IACtE,uEAAuE;IACvE,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,8EAA8E;IAC9E,2EAA2E;IAC3E,MAAM,wBAAwB,GAAG,MAAM,CAAC;IACxC,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG;YAAE,OAAO,MAAM,CAAC,iBAAiB,CAAC;QAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACpE,CAAC,CAAC,EAAE,CAAC;IAEL,YAAY,CAAC;QACX,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,uBAAuB;QAC7B,eAAe,EAAE,MAAM;KACxB,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,IAAI,MAAiE,CAAC;IACtE,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,CAAC,OAA0F,EAAQ,EAAE;QAC9H,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,aAAa,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/C,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,GAAG,OAAO;SACX,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,GAAS,EAAE;QAClC,IAAI,CAAC;YACH,UAAU,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;QACvE,CAAC;IACH,CAAC,CAAC;IAEF,iDAAiD;IACjD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,gBAAgB,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QACD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnC,2EAA2E;QAC3E,oEAAoE;QACpE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC;QACxD,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;YACtC,cAAc,CAAC;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE;oBACP,KAAK,EAAE,kBAAkB;oBACzB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc;oBACtC,KAAK,EAAE,QAAQ;oBACf,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;oBACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;iBACpC;aACF,CAAC,CAAC;YACH,qEAAqE;YACrE,mEAAmE;YACnE,YAAY,CAAC;gBACX,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,IAAI;gBACd,UAAU,EACR,oFAAoF;gBACtF,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC5D,eAAe,EAAE,SAAS;aAC3B,CAAC,CAAC;YACH,kBAAkB,GAAG,UAAU,CAAC;QAClC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;QAC9C,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAC;YAChC,aAAa,CAAC;gBACZ,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,mBAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI;gBAC3E,IAAI,EAAE,kDAAkD;gBACxD,UAAU,EAAE,+BAA+B;gBAC3C,OAAO,EAAE;oBACP,8DAA8D;oBAC9D,4DAA4D;oBAC5D,QAAQ,EAAE,oBAAoB;oBAC9B,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc;oBACtC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;oBACxC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;oBACnC,kEAAkE;oBAClE,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,QAAQ;oBACf,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;iBACrC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CACT,+BAA+B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa;YACtE,iBAAiB,wBAAwB,GAAG,IAAI,IAAI,CACrD,CAAC;QACF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,aAAa,CAAC;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,6DAA6D;YACnE,OAAO,EAAE;gBACP,KAAK,EAAE,MAAM,CAAC,OAAO;gBACrB,wEAAwE;gBACxE,uEAAuE;gBACvE,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,mEAAmE;gBACnE,uEAAuE;gBACvE,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,OAAO;oBACrE,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE;oBAC7C,CAAC,CAAC,EAAE,CAAC;gBACP,uEAAuE;gBACvE,iEAAiE;gBACjE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D;SACF,CAAC,CAAC;IACL,CAAC;IAED,sEAAsE;IACtE,yEAAyE;IACzE,yEAAyE;IACzE,gEAAgE;IAChE,2EAA2E;IAC3E,sBAAsB;IACtB,IAAI,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;IAC/B,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC;gBAChD,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,QAAQ;gBAClB,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;gBACjE,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;gBAC3D,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;aAChE,CAAC,CAAC;YACH,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,OAAO,CAAC,GAAG,CACT,8CAA8C,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG;oBAC1E,WAAW,SAAS,CAAC,OAAO,CAAC,MAAM,WAAW,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CACxE,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CACT,oBAAoB,CAAC,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,MAAM,CAAC,CAAC,KAAK,EAAE,CACrF,CAAC;gBACJ,CAAC;gBACD,iEAAiE;gBACjE,0BAA0B;gBAC1B,KAAK,GAAG,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,wDAAwD,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,qBAAqB;IACrB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAClD,aAAa,CAAC;YACZ,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,8CAA8C;YACvD,IAAI,EAAE,8DAA8D;YACpE,UAAU,EAAE,uBAAuB;YACnC,OAAO,EAAE,wBAAwB,CAAC,KAAK,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,MAAM,KAAK,CAAC,oBAAoB,EAAE,EAClC,QAAQ,CACT,CAAC;IACF,MAAM,eAAe,GAAG,uBAAuB,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAE/E,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3H,OAAO,CAAC,GAAG,CAAC,sBAAsB,aAAa,CAAC,UAAU,WAAW,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC;IACrG,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,cAAc,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,cAA+B;QACpD,YAAY,EAAE,aAAa,CAAC,KAAK;QACjC,SAAS,EAAE,aAAa,CAAC,UAAU,IAAI,IAAI;QAC3C,cAAc,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC,CAAE,aAAa,CAAC,eAAiC,CAAC,CAAC,CAAC,IAAI;QACvG,eAAe,EAAE,eAAgC;QACjD,WAAW,EAAE,aAAa,CAAC,YAA6B;QACxD,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAE,aAAa,CAAC,YAA8B,CAAC,CAAC,CAAC,SAAS;QACnG,OAAO,EAAE,aAAa,CAAC,QAAQ,IAAI,IAAI;QACvC,uBAAuB,EAAE,aAAa,CAAC,yBAAyB;YAC9D,CAAC,CAAE,aAAa,CAAC,yBAA2C;YAC5D,CAAC,CAAC,IAAI;KACT,CAAC;AACJ,CAAC"}