@jinn-network/client 0.1.6 → 0.1.7

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 (288) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +23 -4
  3. package/deployments/deployment-jinn-mvi-l1-sepolia.json +23 -4
  4. package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +5 -4
  5. package/dist/adapters/mech/adapter.d.ts +38 -1
  6. package/dist/adapters/mech/adapter.js +241 -54
  7. package/dist/adapters/mech/adapter.js.map +1 -1
  8. package/dist/adapters/mech/contracts.d.ts +17 -4
  9. package/dist/adapters/mech/contracts.js +8 -2
  10. package/dist/adapters/mech/contracts.js.map +1 -1
  11. package/dist/adapters/mech/safe-revert.d.ts +20 -0
  12. package/dist/adapters/mech/safe-revert.js +12 -4
  13. package/dist/adapters/mech/safe-revert.js.map +1 -1
  14. package/dist/adapters/mech/safe.d.ts +5 -1
  15. package/dist/adapters/mech/safe.js +27 -8
  16. package/dist/adapters/mech/safe.js.map +1 -1
  17. package/dist/adapters/mech/verdict-code.d.ts +1 -0
  18. package/dist/adapters/mech/verdict-code.js +18 -0
  19. package/dist/adapters/mech/verdict-code.js.map +1 -1
  20. package/dist/api/admin-endpoint.d.ts +15 -3
  21. package/dist/api/admin-endpoint.js +24 -2
  22. package/dist/api/admin-endpoint.js.map +1 -1
  23. package/dist/api/bootstrap-endpoint.js +49 -0
  24. package/dist/api/bootstrap-endpoint.js.map +1 -1
  25. package/dist/api/codex-doctor-endpoint.d.ts +73 -0
  26. package/dist/api/codex-doctor-endpoint.js +177 -0
  27. package/dist/api/codex-doctor-endpoint.js.map +1 -0
  28. package/dist/api/discovery-endpoint.d.ts +1 -0
  29. package/dist/api/discovery-endpoint.js +26 -0
  30. package/dist/api/discovery-endpoint.js.map +1 -1
  31. package/dist/api/fleet-build.d.ts +1 -0
  32. package/dist/api/fleet-build.js +2 -1
  33. package/dist/api/fleet-build.js.map +1 -1
  34. package/dist/api/gather-status.d.ts +11 -0
  35. package/dist/api/gather-status.js +400 -4
  36. package/dist/api/gather-status.js.map +1 -1
  37. package/dist/api/hermes-doctor-endpoint.d.ts +117 -0
  38. package/dist/api/hermes-doctor-endpoint.js +229 -23
  39. package/dist/api/hermes-doctor-endpoint.js.map +1 -1
  40. package/dist/api/launcher-status.d.ts +21 -16
  41. package/dist/api/launcher-status.js +2 -1
  42. package/dist/api/launcher-status.js.map +1 -1
  43. package/dist/api/portfolio-v0-build.d.ts +10 -0
  44. package/dist/api/portfolio-v0-build.js +24 -5
  45. package/dist/api/portfolio-v0-build.js.map +1 -1
  46. package/dist/api/prediction-v1-build.d.ts +10 -0
  47. package/dist/api/prediction-v1-build.js +7 -1
  48. package/dist/api/prediction-v1-build.js.map +1 -1
  49. package/dist/api/server.d.ts +31 -1
  50. package/dist/api/server.js +68 -1
  51. package/dist/api/server.js.map +1 -1
  52. package/dist/api/setup-endpoints.d.ts +16 -0
  53. package/dist/api/setup-endpoints.js +78 -4
  54. package/dist/api/setup-endpoints.js.map +1 -1
  55. package/dist/api/setup-retry-endpoint.d.ts +19 -0
  56. package/dist/api/setup-retry-endpoint.js +32 -0
  57. package/dist/api/setup-retry-endpoint.js.map +1 -0
  58. package/dist/api/solvernets-endpoints.d.ts +8 -0
  59. package/dist/api/solvernets-endpoints.js +71 -43
  60. package/dist/api/solvernets-endpoints.js.map +1 -1
  61. package/dist/api/status-build.d.ts +72 -0
  62. package/dist/api/status-build.js +73 -18
  63. package/dist/api/status-build.js.map +1 -1
  64. package/dist/api/task-run-routing.d.ts +7 -0
  65. package/dist/api/task-run-routing.js +12 -0
  66. package/dist/api/task-run-routing.js.map +1 -0
  67. package/dist/api/task-runs-build.d.ts +21 -0
  68. package/dist/api/task-runs-build.js +14 -1
  69. package/dist/api/task-runs-build.js.map +1 -1
  70. package/dist/build-info.json +4 -4
  71. package/dist/build-meta.json +1 -1
  72. package/dist/chain-read-errors.d.ts +10 -0
  73. package/dist/chain-read-errors.js +15 -0
  74. package/dist/chain-read-errors.js.map +1 -1
  75. package/dist/cli/commands/auth.js +1 -1
  76. package/dist/cli/commands/auth.js.map +1 -1
  77. package/dist/cli/commands/create.js +3 -2
  78. package/dist/cli/commands/create.js.map +1 -1
  79. package/dist/cli/commands/doctor.d.ts +2 -0
  80. package/dist/cli/commands/doctor.js +2 -0
  81. package/dist/cli/commands/doctor.js.map +1 -1
  82. package/dist/cli/commands/rewards.js +11 -7
  83. package/dist/cli/commands/rewards.js.map +1 -1
  84. package/dist/cli/commands/solver-nets.js +24 -9
  85. package/dist/cli/commands/solver-nets.js.map +1 -1
  86. package/dist/cli/commands/status.js +1 -1
  87. package/dist/cli/commands/status.js.map +1 -1
  88. package/dist/cli/commands/tasks.js +86 -9
  89. package/dist/cli/commands/tasks.js.map +1 -1
  90. package/dist/cli/commands/update.d.ts +10 -0
  91. package/dist/cli/commands/update.js +36 -0
  92. package/dist/cli/commands/update.js.map +1 -1
  93. package/dist/cli/introspection-context.js +5 -0
  94. package/dist/cli/introspection-context.js.map +1 -1
  95. package/dist/cli/task-native-readiness.d.ts +3 -1
  96. package/dist/cli/task-native-readiness.js +28 -6
  97. package/dist/cli/task-native-readiness.js.map +1 -1
  98. package/dist/config.d.ts +106 -5
  99. package/dist/config.js +97 -18
  100. package/dist/config.js.map +1 -1
  101. package/dist/daemon/checkpoint-loop.d.ts +48 -0
  102. package/dist/daemon/checkpoint-loop.js +76 -0
  103. package/dist/daemon/checkpoint-loop.js.map +1 -0
  104. package/dist/daemon/creator.d.ts +1 -1
  105. package/dist/daemon/creator.js +7 -3
  106. package/dist/daemon/creator.js.map +1 -1
  107. package/dist/daemon/daemon.d.ts +19 -0
  108. package/dist/daemon/daemon.js +68 -1
  109. package/dist/daemon/daemon.js.map +1 -1
  110. package/dist/daemon/eviction-loop.d.ts +40 -0
  111. package/dist/daemon/eviction-loop.js +67 -0
  112. package/dist/daemon/eviction-loop.js.map +1 -0
  113. package/dist/daemon/jinn-claim-loop-wiring.d.ts +33 -0
  114. package/dist/daemon/jinn-claim-loop-wiring.js +40 -0
  115. package/dist/daemon/jinn-claim-loop-wiring.js.map +1 -0
  116. package/dist/daemon/jinn-claim-loop.d.ts +24 -17
  117. package/dist/daemon/jinn-claim-loop.js +77 -23
  118. package/dist/daemon/jinn-claim-loop.js.map +1 -1
  119. package/dist/daemon/skip-log-dedup.d.ts +69 -0
  120. package/dist/daemon/skip-log-dedup.js +106 -0
  121. package/dist/daemon/skip-log-dedup.js.map +1 -0
  122. package/dist/dashboard/assets/index-BUlE8F3Y.js +330 -0
  123. package/dist/dashboard/assets/index-blqc7eqq.css +32 -0
  124. package/dist/dashboard/index.html +2 -2
  125. package/dist/discovery/factory.d.ts +17 -5
  126. package/dist/discovery/factory.js +46 -18
  127. package/dist/discovery/factory.js.map +1 -1
  128. package/dist/discovery/http.js +142 -3
  129. package/dist/discovery/http.js.map +1 -1
  130. package/dist/discovery/onchain.d.ts +5 -0
  131. package/dist/discovery/onchain.js +407 -15
  132. package/dist/discovery/onchain.js.map +1 -1
  133. package/dist/discovery/types.d.ts +45 -1
  134. package/dist/discovery/types.js +8 -10
  135. package/dist/discovery/types.js.map +1 -1
  136. package/dist/discovery/with-fallback.d.ts +7 -0
  137. package/dist/discovery/with-fallback.js +10 -0
  138. package/dist/discovery/with-fallback.js.map +1 -1
  139. package/dist/earning/bootstrap.d.ts +92 -1
  140. package/dist/earning/bootstrap.js +203 -63
  141. package/dist/earning/bootstrap.js.map +1 -1
  142. package/dist/earning/contracts.d.ts +14 -0
  143. package/dist/earning/contracts.js +17 -5
  144. package/dist/earning/contracts.js.map +1 -1
  145. package/dist/earning/funding-plan.js +27 -18
  146. package/dist/earning/funding-plan.js.map +1 -1
  147. package/dist/earning/jinn-rewards.d.ts +46 -0
  148. package/dist/earning/jinn-rewards.js +32 -0
  149. package/dist/earning/jinn-rewards.js.map +1 -1
  150. package/dist/earning/safe-adapter.d.ts +2 -0
  151. package/dist/earning/safe-adapter.js +26 -12
  152. package/dist/earning/safe-adapter.js.map +1 -1
  153. package/dist/earning/store.d.ts +8 -0
  154. package/dist/earning/store.js.map +1 -1
  155. package/dist/earning/testnet-setup-migration.d.ts +12 -0
  156. package/dist/earning/testnet-setup-migration.js +27 -1
  157. package/dist/earning/testnet-setup-migration.js.map +1 -1
  158. package/dist/earning/types.d.ts +15 -0
  159. package/dist/erc8004/reputation.d.ts +8 -0
  160. package/dist/erc8004/reputation.js +22 -3
  161. package/dist/erc8004/reputation.js.map +1 -1
  162. package/dist/harnesses/cost-estimates.d.ts +145 -0
  163. package/dist/harnesses/cost-estimates.js +297 -0
  164. package/dist/harnesses/cost-estimates.js.map +1 -0
  165. package/dist/harnesses/engine/engine.d.ts +72 -0
  166. package/dist/harnesses/engine/engine.js +105 -8
  167. package/dist/harnesses/engine/engine.js.map +1 -1
  168. package/dist/harnesses/engine/persistence.d.ts +51 -1
  169. package/dist/harnesses/engine/persistence.js +118 -5
  170. package/dist/harnesses/engine/persistence.js.map +1 -1
  171. package/dist/harnesses/engine/work-dir-reaper.d.ts +65 -0
  172. package/dist/harnesses/engine/work-dir-reaper.js +100 -0
  173. package/dist/harnesses/engine/work-dir-reaper.js.map +1 -0
  174. package/dist/harnesses/impls/hermes-agent/adapter.js +40 -0
  175. package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
  176. package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +20 -0
  177. package/dist/harnesses/impls/hermes-agent/bootstrap.js +40 -6
  178. package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
  179. package/dist/harnesses/impls/hermes-agent/harness.d.ts +59 -1
  180. package/dist/harnesses/impls/hermes-agent/harness.js +104 -0
  181. package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
  182. package/dist/harnesses/impls/index.d.ts +7 -0
  183. package/dist/harnesses/impls/index.js +16 -1
  184. package/dist/harnesses/impls/index.js.map +1 -1
  185. package/dist/harnesses/impls/learner/harness.d.ts +38 -4
  186. package/dist/harnesses/impls/learner/harness.js +96 -2
  187. package/dist/harnesses/impls/learner/harness.js.map +1 -1
  188. package/dist/harnesses/impls/learner/plugin-path.d.ts +0 -13
  189. package/dist/harnesses/impls/learner/plugin-path.js +35 -15
  190. package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
  191. package/dist/harnesses/impls/learner/types.d.ts +11 -0
  192. package/dist/harnesses/impls/stub.d.ts +58 -0
  193. package/dist/harnesses/impls/stub.js +89 -0
  194. package/dist/harnesses/impls/stub.js.map +1 -0
  195. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.d.ts +69 -50
  196. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +178 -93
  197. package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
  198. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +12 -1
  199. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +121 -7
  200. package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
  201. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +15 -0
  202. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +54 -4
  203. package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
  204. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +6 -0
  205. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +1 -1
  206. package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
  207. package/dist/harnesses/readiness-registry.js +9 -1
  208. package/dist/harnesses/readiness-registry.js.map +1 -1
  209. package/dist/main.js +371 -82
  210. package/dist/main.js.map +1 -1
  211. package/dist/observability/emit-event.d.ts +1 -1
  212. package/dist/observability/emit-event.js.map +1 -1
  213. package/dist/operator-errors.d.ts +7 -0
  214. package/dist/operator-errors.js +13 -1
  215. package/dist/operator-errors.js.map +1 -1
  216. package/dist/plugins/learner/.claude-plugin/plugin.json +9 -0
  217. package/dist/plugins/learner/.codex-plugin/plugin.json +39 -0
  218. package/dist/plugins/learner/AGENTS.md +40 -0
  219. package/dist/plugins/learner/CLAUDE.md +33 -0
  220. package/dist/plugins/learner/README.md +59 -0
  221. package/dist/plugins/learner/hooks/hooks.json +16 -0
  222. package/dist/plugins/learner/hooks/session-start +38 -0
  223. package/dist/plugins/learner/skills/learn/SKILL.md +412 -0
  224. package/dist/plugins/learner/skills/learn/analyst-prompt.md +68 -0
  225. package/dist/plugins/learner/skills/learn/consolidator-prompt.md +94 -0
  226. package/dist/plugins/learner/skills/learn/explorer-prompt.md +53 -0
  227. package/dist/plugins/learner/skills/learn/planner-prompt.md +87 -0
  228. package/dist/plugins/learner/skills/learn/promoter-prompt.md +113 -0
  229. package/dist/plugins/learner/skills/learn/step-worker-prompt.md +47 -0
  230. package/dist/plugins/learner/skills/learn/strategist-prompt.md +85 -0
  231. package/dist/restart-daemon.d.ts +90 -0
  232. package/dist/restart-daemon.js +95 -0
  233. package/dist/restart-daemon.js.map +1 -0
  234. package/dist/setup/halt-mode.d.ts +14 -0
  235. package/dist/setup/halt-mode.js +17 -0
  236. package/dist/setup/halt-mode.js.map +1 -0
  237. package/dist/solver-nets/prediction-operator-ux.js +43 -3
  238. package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
  239. package/dist/solver-nets/registry.d.ts +1 -0
  240. package/dist/solver-nets/registry.js +1 -1
  241. package/dist/solver-nets/registry.js.map +1 -1
  242. package/dist/solver-types/_swe-rebench-v2-pool-cache.d.ts +58 -0
  243. package/dist/solver-types/_swe-rebench-v2-pool-cache.js +87 -0
  244. package/dist/solver-types/_swe-rebench-v2-pool-cache.js.map +1 -0
  245. package/dist/solver-types/_swe-rebench-v2-substrate.d.ts +1 -0
  246. package/dist/solver-types/_swe-rebench-v2-substrate.js +10 -0
  247. package/dist/solver-types/_swe-rebench-v2-substrate.js.map +1 -1
  248. package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +65 -0
  249. package/dist/solver-types/_swe-rebench-v2-validated-pool.js +243 -26
  250. package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
  251. package/dist/solver-types/swe-rebench-v2-auto.d.ts +22 -7
  252. package/dist/solver-types/swe-rebench-v2-auto.js +45 -20
  253. package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
  254. package/dist/solver-types/swe-rebench-v2.d.ts +13 -2
  255. package/dist/solver-types/swe-rebench-v2.js +233 -94
  256. package/dist/solver-types/swe-rebench-v2.js.map +1 -1
  257. package/dist/solvernets/daemon-init.d.ts +10 -2
  258. package/dist/solvernets/daemon-init.js +22 -2
  259. package/dist/solvernets/daemon-init.js.map +1 -1
  260. package/dist/solvernets/launched-record-dispatcher.js +35 -7
  261. package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
  262. package/dist/solvernets/store.d.ts +5 -0
  263. package/dist/solvernets/store.js +1 -0
  264. package/dist/solvernets/store.js.map +1 -1
  265. package/dist/store/store.d.ts +15 -0
  266. package/dist/store/store.js +118 -3
  267. package/dist/store/store.js.map +1 -1
  268. package/dist/tasks/sources.d.ts +18 -1
  269. package/dist/tasks/sources.js +33 -5
  270. package/dist/tasks/sources.js.map +1 -1
  271. package/dist/tx-retry.d.ts +151 -19
  272. package/dist/tx-retry.js +286 -32
  273. package/dist/tx-retry.js.map +1 -1
  274. package/dist/types/payloads/prediction-apy-v0.d.ts +5 -5
  275. package/dist/types/payloads/prediction-v0.d.ts +5 -5
  276. package/dist/types/task-document.d.ts +392 -0
  277. package/dist/types/task-document.js +10 -0
  278. package/dist/types/task-document.js.map +1 -1
  279. package/dist/types/task.d.ts +28 -0
  280. package/dist/util/extract-tx-hash.d.ts +14 -0
  281. package/dist/util/extract-tx-hash.js +19 -0
  282. package/dist/util/extract-tx-hash.js.map +1 -0
  283. package/dist/vendor/@jinn-network/sdk/dist/contracts.js +1 -1
  284. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +3 -0
  285. package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -0
  286. package/package.json +29 -12
  287. package/dist/dashboard/assets/index-DOlzFN8a.css +0 -32
  288. package/dist/dashboard/assets/index-NkZ7CTAT.js +0 -140
@@ -16,6 +16,11 @@
16
16
  * from IdentityRegistry (key prefix `solvernet-manifest:`) and fold via the
17
17
  * existing `resolveMostRecentWins` helper.
18
18
  *
19
+ * - `listPluginPublications` / `listBuilderArtifacts` read `MetadataSet` events
20
+ * (key prefix `plugin:`), decode the on-chain PLUGIN_PAYLOAD_TUPLE /
21
+ * REVOCATION_PAYLOAD_TUPLE, and fold most-recent-wins so the operator app's
22
+ * /build registry panels keep rendering during an indexer outage (gh#290).
23
+ *
19
24
  * - `queryEnvelopes` delegates to the existing `runOnchainCorpusQuery`.
20
25
  *
21
26
  * - `cursorCache` is an optional injection point: when provided, the start
@@ -24,7 +29,7 @@
24
29
  *
25
30
  * Spec: spec/2026-05-11-discovery-api-and-shared-indexer.md §6.3.
26
31
  */
27
- import { createPublicClient, decodeEventLog, http, } from 'viem';
32
+ import { createPublicClient, decodeAbiParameters, decodeEventLog, http, } from 'viem';
28
33
  import { base, baseSepolia } from 'viem/chains';
29
34
  import { DiscoveryUnavailableError } from './types.js';
30
35
  import { runOnchainCorpusQuery, DEFAULT_EXECUTION_DISCOVERY_FROM_BLOCK, DEFAULT_IDENTITY_REGISTRY_BY_CHAIN_ID } from '../corpus/onchain-query.js';
@@ -32,6 +37,19 @@ import { JINN_ROUTER_ABI } from '../adapters/mech/types.js';
32
37
  import { canClaimTask } from '../adapters/mech/contracts.js';
33
38
  import { manifestDigestForCid } from '../adapters/mech/digest.js';
34
39
  import { resolveMostRecentWins } from '../solvernets/most-recent-wins.js';
40
+ import { isRateLimitedEthReadError } from '../chain-read-errors.js';
41
+ import { PLUGIN_PAYLOAD_TUPLE, REVOCATION_PAYLOAD_TUPLE } from '../erc8004/abis.js';
42
+ import { PLUGIN_METADATA_KEY_PREFIX } from '../erc8004/plugin-registry.js';
43
+ /**
44
+ * Wrap an RPC read failure into a `DiscoveryUnavailableError`, preserving a
45
+ * typed `rpc_rate_limited` code when the underlying error is a 429 / "too many
46
+ * requests". The shared default RPC throttles the whole operator pool; without
47
+ * this signal a throttle is indistinguishable from any other transport failure
48
+ * and the operator UI cannot tell them to add their own key. See jinn-mono #325.
49
+ */
50
+ function discoveryUnavailableFromReadError(message, cause) {
51
+ return new DiscoveryUnavailableError(message, cause, isRateLimitedEthReadError(cause) ? 'rpc_rate_limited' : undefined);
52
+ }
35
53
  // ── Constants ────────────────────────────────────────────────────────────────
36
54
  const DEFAULT_PAGE_SIZE = 100;
37
55
  const DEFAULT_MAX_PAGES = 5;
@@ -47,6 +65,14 @@ const DEFAULT_ROUTER_BY_CHAIN_ID = {
47
65
  };
48
66
  /** Concurrency cap for parallel canClaimTask calls. */
49
67
  const CLAIM_CHECK_CONCURRENCY = 8;
68
+ /**
69
+ * Hard cap on the number of getLogs chunks `getSolverNetOperatorCount` scans
70
+ * per pass. Bounds the dashboard's recurring operator-count poll so it cannot
71
+ * walk unbounded chain history; past the cap the count is a lower bound. See
72
+ * `DiscoveryAPI.getSolverNetOperatorCount`. The HTTP backing's sibling cap is
73
+ * `MAX_OPERATOR_COUNT_TASK_PAGES` in `http.ts`.
74
+ */
75
+ const MAX_OPERATOR_COUNT_TASK_PAGES = 50;
50
76
  const SOLVERNET_MANIFEST_KEY_PREFIX = 'solvernet-manifest:';
51
77
  // ── ABI fragments ─────────────────────────────────────────────────────────────
52
78
  const IDENTITY_METADATA_ABI = [
@@ -88,6 +114,20 @@ function resolveFromBlock(opts, cursorLabel, currentBlock) {
88
114
  const defaultFromBlock = DEFAULT_EXECUTION_DISCOVERY_FROM_BLOCK[opts.chainId] ?? currentBlock;
89
115
  return toBigInt(opts.taskDiscoveryFromBlock, defaultFromBlock);
90
116
  }
117
+ /**
118
+ * Resolve the start block for a scan that must always see full history,
119
+ * deliberately ignoring `cursorCache`. Used by `scanPluginMetadataEvents`:
120
+ * `foldPluginPublications` re-folds from scratch each call, so a cursor would
121
+ * cause latent data-loss (every publication before the cursor would vanish).
122
+ * Priority order:
123
+ * 1. opts.taskDiscoveryFromBlock — explicit override
124
+ * 2. DEFAULT_EXECUTION_DISCOVERY_FROM_BLOCK[chainId] — chain default
125
+ * 3. currentBlock (no history)
126
+ */
127
+ function resolveScanFromBlock(opts, currentBlock) {
128
+ const defaultFromBlock = DEFAULT_EXECUTION_DISCOVERY_FROM_BLOCK[opts.chainId] ?? currentBlock;
129
+ return toBigInt(opts.taskDiscoveryFromBlock, defaultFromBlock);
130
+ }
91
131
  /** Decode a MetadataSet log into a SetMetadataEvent or null if not a solvernet-manifest event. */
92
132
  function decodeSolvernetMetadataLog(log) {
93
133
  let decoded;
@@ -124,14 +164,157 @@ function decodeSolvernetMetadataLog(log) {
124
164
  transactionIndex: log.transactionIndex ?? 0,
125
165
  };
126
166
  }
167
+ /**
168
+ * Decode a MetadataSet log into a PluginMetadataEvent, or null if the key is
169
+ * not a `plugin:` key or the payload decodes to neither a v1-publish nor a
170
+ * v2-revocation tuple. Mirrors `decodeSolvernetMetadataLog`.
171
+ */
172
+ function decodePluginMetadataLog(log) {
173
+ let decoded;
174
+ try {
175
+ decoded = decodeEventLog({
176
+ abi: IDENTITY_METADATA_ABI,
177
+ data: log.data,
178
+ topics: log.topics,
179
+ });
180
+ }
181
+ catch {
182
+ return null;
183
+ }
184
+ if (decoded.eventName !== 'MetadataSet')
185
+ return null;
186
+ if (!decoded.args.metadataKey.startsWith(PLUGIN_METADATA_KEY_PREFIX))
187
+ return null;
188
+ const pluginCid = decoded.args.metadataKey.slice(PLUGIN_METADATA_KEY_PREFIX.length);
189
+ if (pluginCid.length === 0)
190
+ return null;
191
+ const base = {
192
+ agentId: decoded.args.agentId.toString(),
193
+ pluginCid,
194
+ blockNumber: log.blockNumber ?? 0n,
195
+ transactionIndex: log.transactionIndex ?? 0,
196
+ logIndex: log.logIndex ?? 0,
197
+ };
198
+ // Try v1 publish first; on failure fall back to v2 revocation. Garbage
199
+ // payloads decode to neither and are dropped (return null).
200
+ try {
201
+ const d = decodeAbiParameters(PLUGIN_PAYLOAD_TUPLE, decoded.args.metadataValue);
202
+ if (Number(d[0]) === 1) {
203
+ return {
204
+ ...base,
205
+ kind: 'publish',
206
+ publish: {
207
+ pluginName: d[1],
208
+ pluginVersion: d[2],
209
+ pluginSha256: d[3],
210
+ supports: d[4],
211
+ publishedAt: Number(d[5]),
212
+ },
213
+ };
214
+ }
215
+ }
216
+ catch {
217
+ // not a v1 payload — try v2 below
218
+ }
219
+ try {
220
+ const d = decodeAbiParameters(REVOCATION_PAYLOAD_TUPLE, decoded.args.metadataValue);
221
+ if (Number(d[0]) === 2 && d[1] === true) {
222
+ return { ...base, kind: 'revoke', revokedReason: d[2] };
223
+ }
224
+ }
225
+ catch {
226
+ // not a v2 payload either
227
+ }
228
+ return null;
229
+ }
230
+ /**
231
+ * Fold a stream of plug-in MetadataSet events into the latest state per
232
+ * `<agentId>:<pluginCid>` key, most-recent-wins by
233
+ * (blockNumber, transactionIndex, logIndex). A v2 revocation only mutates the
234
+ * `revoked` / `revokedReason` fields of an existing publish; a revocation with
235
+ * no prior publish is meaningless and dropped (no row materialised).
236
+ *
237
+ * Returns the materialised rows plus an `anchors` map keyed by row identity,
238
+ * so callers can sort by the chain-attested anchor.
239
+ */
240
+ function foldPluginPublications(events) {
241
+ const byKey = new Map();
242
+ const isNewer = (e, row) => e.blockNumber > row.blockNumber ||
243
+ (e.blockNumber === row.blockNumber && e.transactionIndex > row.transactionIndex) ||
244
+ (e.blockNumber === row.blockNumber &&
245
+ e.transactionIndex === row.transactionIndex &&
246
+ e.logIndex > row.logIndex);
247
+ for (const e of events) {
248
+ const key = `${e.agentId}:${e.pluginCid}`;
249
+ const existing = byKey.get(key);
250
+ if (e.kind === 'publish' && e.publish) {
251
+ // A republish un-revokes (revoked resets to false), matching the
252
+ // indexer's handleMetadataSet v1 path.
253
+ if (!existing || isNewer(e, existing)) {
254
+ byKey.set(key, {
255
+ agentId: e.agentId,
256
+ pluginCid: e.pluginCid,
257
+ blockNumber: e.blockNumber,
258
+ transactionIndex: e.transactionIndex,
259
+ logIndex: e.logIndex,
260
+ pluginName: e.publish.pluginName,
261
+ pluginVersion: e.publish.pluginVersion,
262
+ pluginSha256: e.publish.pluginSha256,
263
+ supports: e.publish.supports,
264
+ publishedAt: e.publish.publishedAt,
265
+ revoked: false,
266
+ revokedReason: undefined,
267
+ });
268
+ }
269
+ continue;
270
+ }
271
+ // revoke — only valid against an existing publish, and only if newer.
272
+ if (e.kind === 'revoke' && existing && isNewer(e, existing)) {
273
+ existing.revoked = true;
274
+ existing.revokedReason = e.revokedReason;
275
+ existing.blockNumber = e.blockNumber;
276
+ existing.transactionIndex = e.transactionIndex;
277
+ existing.logIndex = e.logIndex;
278
+ }
279
+ }
280
+ const rows = [];
281
+ const anchors = new Map();
282
+ for (const row of byKey.values()) {
283
+ const out = {
284
+ artifactType: 'plugin',
285
+ builderAgentId: row.agentId,
286
+ cid: row.pluginCid,
287
+ name: row.pluginName,
288
+ version: row.pluginVersion,
289
+ supports: row.supports,
290
+ publishedAt: row.publishedAt,
291
+ pluginSha256: row.pluginSha256,
292
+ revoked: row.revoked,
293
+ };
294
+ if (row.revokedReason !== undefined)
295
+ out.revokedReason = row.revokedReason;
296
+ rows.push(out);
297
+ anchors.set(out, {
298
+ blockNumber: row.blockNumber,
299
+ transactionIndex: row.transactionIndex,
300
+ logIndex: row.logIndex,
301
+ });
302
+ }
303
+ return { rows, anchors };
304
+ }
127
305
  /**
128
306
  * Scan logs in chunks. When `maxResults` is provided, scans newest-first
129
307
  * (from `toBlock` down to `fromBlock`) and stops as soon as `maxResults`
130
308
  * items have been accumulated — avoiding scanning the entire history when
131
309
  * only a bounded result set is needed. Without `maxResults`, scans
132
310
  * oldest-first (standard order).
311
+ *
312
+ * When `maxChunks` is provided, the oldest-first scan stops after at most
313
+ * `maxChunks` getLogs round-trips. This bounds a recurring caller (e.g. the
314
+ * dashboard's operator-count poll) so it cannot walk unbounded history; past
315
+ * the cap the result set is a prefix of the full range.
133
316
  */
134
- async function scanLogsInChunks(getLogs, fromBlock, toBlock, chunkBlocks, maxResults) {
317
+ async function scanLogsInChunks(getLogs, fromBlock, toBlock, chunkBlocks, maxResults, maxChunks) {
135
318
  const results = [];
136
319
  if (maxResults !== undefined) {
137
320
  // Newest-first scan with early exit. Each chunk is [start, end] inclusive,
@@ -154,10 +337,14 @@ async function scanLogsInChunks(getLogs, fromBlock, toBlock, chunkBlocks, maxRes
154
337
  // Oldest-first scan. Each chunk is [start, start + chunkBlocks] inclusive,
155
338
  // and the next iteration starts at `start + chunkBlocks + 1n` — no overlap,
156
339
  // no gap.
340
+ let chunksScanned = 0;
157
341
  for (let start = fromBlock; start <= toBlock; start += chunkBlocks + 1n) {
342
+ if (maxChunks !== undefined && chunksScanned >= maxChunks)
343
+ break;
158
344
  const end = start + chunkBlocks > toBlock ? toBlock : start + chunkBlocks;
159
345
  const chunk = await getLogs(start, end);
160
346
  results.push(...chunk);
347
+ chunksScanned += 1;
161
348
  }
162
349
  }
163
350
  return results;
@@ -229,7 +416,7 @@ export function createOnchainDiscoveryAPI(opts) {
229
416
  currentBlock = await client.getBlockNumber();
230
417
  }
231
418
  catch (err) {
232
- throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI.findClaimableTasks: failed to get block number`, err);
419
+ throw discoveryUnavailableFromReadError(`OnchainDiscoveryAPI.findClaimableTasks: failed to get block number`, err);
233
420
  }
234
421
  const fromBlock = resolveFromBlock(opts, 'tasks', currentBlock);
235
422
  // Compute manifest digests for each CID
@@ -280,7 +467,7 @@ export function createOnchainDiscoveryAPI(opts) {
280
467
  catch (err) {
281
468
  if (err instanceof DiscoveryUnavailableError)
282
469
  throw err;
283
- throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI.findClaimableTasks: getLogs for TaskCreated failed`, err);
470
+ throw discoveryUnavailableFromReadError(`OnchainDiscoveryAPI.findClaimableTasks: getLogs for TaskCreated failed`, err);
284
471
  }
285
472
  // De-duplicate by taskId (keep first occurrence)
286
473
  const seen = new Set();
@@ -356,7 +543,7 @@ export function createOnchainDiscoveryAPI(opts) {
356
543
  catch (err) {
357
544
  if (err instanceof DiscoveryUnavailableError)
358
545
  throw err;
359
- throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI.findClaimableTasks: getLogs for TaskAttemptCreated failed`, err);
546
+ throw discoveryUnavailableFromReadError(`OnchainDiscoveryAPI.findClaimableTasks: getLogs for TaskAttemptCreated failed`, err);
360
547
  }
361
548
  // Group attempt counts
362
549
  const attemptCountByTaskId = new Map();
@@ -403,7 +590,7 @@ export function createOnchainDiscoveryAPI(opts) {
403
590
  currentBlock = await client.getBlockNumber();
404
591
  }
405
592
  catch (err) {
406
- throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI: failed to get block number`, err);
593
+ throw discoveryUnavailableFromReadError(`OnchainDiscoveryAPI: failed to get block number`, err);
407
594
  }
408
595
  const fromBlock = resolveFromBlock(opts, 'solvernets', currentBlock);
409
596
  let events;
@@ -426,7 +613,7 @@ export function createOnchainDiscoveryAPI(opts) {
426
613
  catch (err) {
427
614
  if (err instanceof DiscoveryUnavailableError)
428
615
  throw err;
429
- throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI: getLogs for MetadataSet failed`, err);
616
+ throw discoveryUnavailableFromReadError(`OnchainDiscoveryAPI: getLogs for MetadataSet failed`, err);
430
617
  }
431
618
  // Update cursor cache on success so both listLaunchedSolverNets and
432
619
  // getLifecycleStatus advance the scan window after every successful call.
@@ -513,6 +700,106 @@ export function createOnchainDiscoveryAPI(opts) {
513
700
  manifestHash: latest.manifestHash,
514
701
  };
515
702
  }
703
+ // ── getSolverNetOperatorCount ──────────────────────────────────────────────
704
+ async function getSolverNetOperatorCount(manifestCid) {
705
+ if (!routerAddress) {
706
+ throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI: no routerAddress configured for chainId=${opts.chainId}`);
707
+ }
708
+ const client = getClient();
709
+ let currentBlock;
710
+ try {
711
+ currentBlock = await client.getBlockNumber();
712
+ }
713
+ catch (err) {
714
+ throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI.getSolverNetOperatorCount: failed to get block number`, err);
715
+ }
716
+ // Scan from the execution-discovery floor (not the cursor cache): like
717
+ // listPluginPublications this is a complete-recount call with no
718
+ // accumulator, so it must always see every TaskCreated / TaskAttemptCreated
719
+ // event for the SolverNet. Both passes are capped at
720
+ // MAX_OPERATOR_COUNT_TASK_PAGES getLogs chunks so this recurring poll
721
+ // cannot walk unbounded history; past the cap the count is a lower bound.
722
+ const fromBlock = resolveScanFromBlock(opts, currentBlock);
723
+ const targetDigest = manifestDigestForCid(manifestCid).toLowerCase();
724
+ // Pass 1: TaskCreated → the set of task ids belonging to this SolverNet.
725
+ let solverNetTaskIds;
726
+ try {
727
+ const taskIdLists = await scanLogsInChunks(async (start, end) => {
728
+ const logs = await client.getLogs({
729
+ address: routerAddress,
730
+ fromBlock: start,
731
+ toBlock: end,
732
+ });
733
+ const decoded = [];
734
+ for (const log of logs) {
735
+ try {
736
+ const event = decodeEventLog({
737
+ abi: JINN_ROUTER_ABI,
738
+ data: log.data,
739
+ topics: log.topics,
740
+ });
741
+ if (event.eventName !== 'TaskCreated')
742
+ continue;
743
+ const evArgs = event.args;
744
+ if (evArgs.manifestDigest.toLowerCase() !== targetDigest)
745
+ continue;
746
+ decoded.push(String(evArgs.taskId));
747
+ }
748
+ catch {
749
+ // Not a TaskCreated event — skip.
750
+ }
751
+ }
752
+ return decoded;
753
+ }, fromBlock, currentBlock, chunk, undefined, MAX_OPERATOR_COUNT_TASK_PAGES);
754
+ solverNetTaskIds = new Set(taskIdLists);
755
+ }
756
+ catch (err) {
757
+ if (err instanceof DiscoveryUnavailableError)
758
+ throw err;
759
+ throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI.getSolverNetOperatorCount: getLogs for TaskCreated failed`, err);
760
+ }
761
+ // No tasks → no attempts → no participating operators.
762
+ if (solverNetTaskIds.size === 0)
763
+ return 0;
764
+ // Pass 2: TaskAttemptCreated → distinct operators across those tasks.
765
+ let operators;
766
+ try {
767
+ const operatorLists = await scanLogsInChunks(async (start, end) => {
768
+ const logs = await client.getLogs({
769
+ address: routerAddress,
770
+ fromBlock: start,
771
+ toBlock: end,
772
+ });
773
+ const decoded = [];
774
+ for (const log of logs) {
775
+ try {
776
+ const event = decodeEventLog({
777
+ abi: JINN_ROUTER_ABI,
778
+ data: log.data,
779
+ topics: log.topics,
780
+ });
781
+ if (event.eventName !== 'TaskAttemptCreated')
782
+ continue;
783
+ const evArgs = event.args;
784
+ if (!solverNetTaskIds.has(String(evArgs.taskId)))
785
+ continue;
786
+ decoded.push(evArgs.operator.toLowerCase());
787
+ }
788
+ catch {
789
+ // Not a TaskAttemptCreated event — skip.
790
+ }
791
+ }
792
+ return decoded;
793
+ }, fromBlock, currentBlock, chunk, undefined, MAX_OPERATOR_COUNT_TASK_PAGES);
794
+ operators = new Set(operatorLists);
795
+ }
796
+ catch (err) {
797
+ if (err instanceof DiscoveryUnavailableError)
798
+ throw err;
799
+ throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI.getSolverNetOperatorCount: getLogs for TaskAttemptCreated failed`, err);
800
+ }
801
+ return operators.size;
802
+ }
516
803
  // ── queryEnvelopes ─────────────────────────────────────────────────────────
517
804
  async function queryEnvelopes(query) {
518
805
  try {
@@ -528,21 +815,126 @@ export function createOnchainDiscoveryAPI(opts) {
528
815
  catch (err) {
529
816
  if (err instanceof DiscoveryUnavailableError)
530
817
  throw err;
531
- throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI.queryEnvelopes: onchain query failed`, err);
818
+ throw discoveryUnavailableFromReadError(`OnchainDiscoveryAPI.queryEnvelopes: onchain query failed`, err);
819
+ }
820
+ }
821
+ // ── listPluginPublications (gh#290) ───────────────────────────────────────
822
+ // The on-chain floor enumerates `plugin:<cid>` MetadataSet events directly so
823
+ // the operator app's /build registry panels keep rendering during an indexer
824
+ // outage. Unlike the indexer's `pluginPublication` entity, the floor does NOT
825
+ // IPFS-enrich — but the rich fields (name, version, supports, sha256,
826
+ // publishedAt) are all in the on-chain PLUGIN_PAYLOAD_TUPLE, so the floor
827
+ // serves complete rows without an IPFS hop.
828
+ async function scanPluginMetadataEvents() {
829
+ if (!identityRegistryAddress)
830
+ return [];
831
+ const client = getClient();
832
+ let currentBlock;
833
+ try {
834
+ currentBlock = await client.getBlockNumber();
835
+ }
836
+ catch (err) {
837
+ throw discoveryUnavailableFromReadError(`OnchainDiscoveryAPI.listPluginPublications: failed to get block number`, err);
838
+ }
839
+ // No cursor here. `listPluginPublications` must return the *complete*
840
+ // catalog from a single call: `foldPluginPublications` re-folds from
841
+ // scratch every call, so it must see *all* events. A cursor would scan
842
+ // only `[cachedBlock, head]` on the second call and silently drop every
843
+ // publication before the cursor — unlike `findClaimableTasks`, whose
844
+ // caller accumulates across calls, this method has no accumulator.
845
+ // Always scan from the chain default, ignoring any injected cursorCache.
846
+ const fromBlock = resolveScanFromBlock(opts, currentBlock);
847
+ let events;
848
+ try {
849
+ events = await scanLogsInChunks(async (start, end) => {
850
+ const logs = await client.getLogs({
851
+ address: identityRegistryAddress,
852
+ fromBlock: start,
853
+ toBlock: end,
854
+ });
855
+ const decoded = [];
856
+ for (const log of logs) {
857
+ const event = decodePluginMetadataLog(log);
858
+ if (event)
859
+ decoded.push(event);
860
+ }
861
+ return decoded;
862
+ }, fromBlock, currentBlock, chunk);
863
+ }
864
+ catch (err) {
865
+ if (err instanceof DiscoveryUnavailableError)
866
+ throw err;
867
+ throw discoveryUnavailableFromReadError(`OnchainDiscoveryAPI.listPluginPublications: getLogs for MetadataSet failed`, err);
532
868
  }
869
+ // Intentionally no cursorCache.write here — see resolveScanFromBlock.
870
+ return events;
871
+ }
872
+ async function listPluginPublications(args) {
873
+ let events;
874
+ try {
875
+ events = await scanPluginMetadataEvents();
876
+ }
877
+ catch (err) {
878
+ if (err instanceof DiscoveryUnavailableError)
879
+ throw err;
880
+ throw new DiscoveryUnavailableError(`OnchainDiscoveryAPI.listPluginPublications: scan failed`, err);
881
+ }
882
+ const { rows: foldedRows, anchors: foldedAnchors } = foldPluginPublications(events);
883
+ let rows = foldedRows;
884
+ // Apply the same filters the HTTP layer pushes into its `where` clause.
885
+ if (args?.builderAgentId !== undefined) {
886
+ rows = rows.filter((r) => r.builderAgentId === args.builderAgentId);
887
+ }
888
+ if (args?.solverType !== undefined) {
889
+ rows = rows.filter((r) => r.supports.includes(args.solverType));
890
+ }
891
+ // Revoked rows are included by default; drop them only when asked.
892
+ if (args?.includeRevoked === false) {
893
+ rows = rows.filter((r) => !r.revoked);
894
+ }
895
+ // Newest-first by the fold's chain-attested anchor
896
+ // (blockNumber, transactionIndex, logIndex) desc — true parity with the
897
+ // HTTP layer's `orderBy: "blockNumber", orderDirection: "desc"`. Sorting
898
+ // by the builder-supplied `publishedAt` would diverge: that value is not
899
+ // chain-attested. `foldedAnchors` carries the anchor alongside each row so
900
+ // the public `PluginPublication` shape stays unchanged.
901
+ rows.sort((a, b) => {
902
+ const aa = foldedAnchors.get(a);
903
+ const ba = foldedAnchors.get(b);
904
+ if (!aa || !ba)
905
+ return 0;
906
+ if (aa.blockNumber !== ba.blockNumber) {
907
+ return aa.blockNumber > ba.blockNumber ? -1 : 1;
908
+ }
909
+ if (aa.transactionIndex !== ba.transactionIndex) {
910
+ return ba.transactionIndex - aa.transactionIndex;
911
+ }
912
+ return ba.logIndex - aa.logIndex;
913
+ });
914
+ // Clamp `limit` to `[1, 500]` (default 100), mirroring the HTTP layer for
915
+ // drop-in `with-fallback` parity.
916
+ const limit = Math.min(500, Math.max(1, args?.limit ?? 100));
917
+ return rows.slice(0, limit);
918
+ }
919
+ // ── listBuilderArtifacts (gh#290) ─────────────────────────────────────────
920
+ // Today only plug-ins are published; mirror the HTTP layer and delegate to
921
+ // listPluginPublications so the "Your published plug-ins" panel populates on
922
+ // the floor too. The harness variant is added when Path 2 ships.
923
+ async function listBuilderArtifacts(args) {
924
+ return listPluginPublications({
925
+ builderAgentId: args.builderAgentId,
926
+ limit: args.limit,
927
+ });
533
928
  }
534
- // ── Builder discovery stubs (attd) ────────────────────────────────────────
535
- // Builder discovery requires the indexer's `pluginPublication` entity; the
536
- // on-chain RPC floor does not enumerate it (would require a getLogs sweep +
537
- // payload decode that the floor is not designed for). When falling back to the
538
- // on-chain floor, builder browsing is unavailable until the indexer recovers.
539
- async function listPluginPublications() { return []; }
929
+ // ── getPluginScores stub (ebu7 dependency) ────────────────────────────────
930
+ // Score history needs the indexer's `attemptEnvelopeMeta` + `verdict`
931
+ // enrichment join, which the on-chain floor cannot reconstruct. Stays a stub.
540
932
  async function getPluginScores() { return []; }
541
- async function listBuilderArtifacts() { return []; }
542
933
  return {
543
934
  findClaimableTasks,
544
935
  listLaunchedSolverNets,
545
936
  getLifecycleStatus,
937
+ getSolverNetOperatorCount,
546
938
  queryEnvelopes,
547
939
  listPluginPublications,
548
940
  getPluginScores,
@@ -1 +1 @@
1
- {"version":3,"file":"onchain.js","sourceRoot":"","sources":["../../src/discovery/onchain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onchain.js","sourceRoot":"","sources":["../../src/discovery/onchain.ts"],"names":[],"mappings":"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"}