@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.
- package/CHANGELOG.md +33 -0
- package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +23 -4
- package/deployments/deployment-jinn-mvi-l1-sepolia.json +23 -4
- package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +5 -4
- package/dist/adapters/mech/adapter.d.ts +38 -1
- package/dist/adapters/mech/adapter.js +241 -54
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +17 -4
- package/dist/adapters/mech/contracts.js +8 -2
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/safe-revert.d.ts +20 -0
- package/dist/adapters/mech/safe-revert.js +12 -4
- package/dist/adapters/mech/safe-revert.js.map +1 -1
- package/dist/adapters/mech/safe.d.ts +5 -1
- package/dist/adapters/mech/safe.js +27 -8
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/verdict-code.d.ts +1 -0
- package/dist/adapters/mech/verdict-code.js +18 -0
- package/dist/adapters/mech/verdict-code.js.map +1 -1
- package/dist/api/admin-endpoint.d.ts +15 -3
- package/dist/api/admin-endpoint.js +24 -2
- package/dist/api/admin-endpoint.js.map +1 -1
- package/dist/api/bootstrap-endpoint.js +49 -0
- package/dist/api/bootstrap-endpoint.js.map +1 -1
- package/dist/api/codex-doctor-endpoint.d.ts +73 -0
- package/dist/api/codex-doctor-endpoint.js +177 -0
- package/dist/api/codex-doctor-endpoint.js.map +1 -0
- package/dist/api/discovery-endpoint.d.ts +1 -0
- package/dist/api/discovery-endpoint.js +26 -0
- package/dist/api/discovery-endpoint.js.map +1 -1
- package/dist/api/fleet-build.d.ts +1 -0
- package/dist/api/fleet-build.js +2 -1
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.d.ts +11 -0
- package/dist/api/gather-status.js +400 -4
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/hermes-doctor-endpoint.d.ts +117 -0
- package/dist/api/hermes-doctor-endpoint.js +229 -23
- package/dist/api/hermes-doctor-endpoint.js.map +1 -1
- package/dist/api/launcher-status.d.ts +21 -16
- package/dist/api/launcher-status.js +2 -1
- package/dist/api/launcher-status.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +10 -0
- package/dist/api/portfolio-v0-build.js +24 -5
- package/dist/api/portfolio-v0-build.js.map +1 -1
- package/dist/api/prediction-v1-build.d.ts +10 -0
- package/dist/api/prediction-v1-build.js +7 -1
- package/dist/api/prediction-v1-build.js.map +1 -1
- package/dist/api/server.d.ts +31 -1
- package/dist/api/server.js +68 -1
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +16 -0
- package/dist/api/setup-endpoints.js +78 -4
- package/dist/api/setup-endpoints.js.map +1 -1
- package/dist/api/setup-retry-endpoint.d.ts +19 -0
- package/dist/api/setup-retry-endpoint.js +32 -0
- package/dist/api/setup-retry-endpoint.js.map +1 -0
- package/dist/api/solvernets-endpoints.d.ts +8 -0
- package/dist/api/solvernets-endpoints.js +71 -43
- package/dist/api/solvernets-endpoints.js.map +1 -1
- package/dist/api/status-build.d.ts +72 -0
- package/dist/api/status-build.js +73 -18
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/task-run-routing.d.ts +7 -0
- package/dist/api/task-run-routing.js +12 -0
- package/dist/api/task-run-routing.js.map +1 -0
- package/dist/api/task-runs-build.d.ts +21 -0
- package/dist/api/task-runs-build.js +14 -1
- package/dist/api/task-runs-build.js.map +1 -1
- package/dist/build-info.json +4 -4
- package/dist/build-meta.json +1 -1
- package/dist/chain-read-errors.d.ts +10 -0
- package/dist/chain-read-errors.js +15 -0
- package/dist/chain-read-errors.js.map +1 -1
- package/dist/cli/commands/auth.js +1 -1
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/create.js +3 -2
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.js +2 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/rewards.js +11 -7
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/solver-nets.js +24 -9
- package/dist/cli/commands/solver-nets.js.map +1 -1
- package/dist/cli/commands/status.js +1 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/tasks.js +86 -9
- package/dist/cli/commands/tasks.js.map +1 -1
- package/dist/cli/commands/update.d.ts +10 -0
- package/dist/cli/commands/update.js +36 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/introspection-context.js +5 -0
- package/dist/cli/introspection-context.js.map +1 -1
- package/dist/cli/task-native-readiness.d.ts +3 -1
- package/dist/cli/task-native-readiness.js +28 -6
- package/dist/cli/task-native-readiness.js.map +1 -1
- package/dist/config.d.ts +106 -5
- package/dist/config.js +97 -18
- package/dist/config.js.map +1 -1
- package/dist/daemon/checkpoint-loop.d.ts +48 -0
- package/dist/daemon/checkpoint-loop.js +76 -0
- package/dist/daemon/checkpoint-loop.js.map +1 -0
- package/dist/daemon/creator.d.ts +1 -1
- package/dist/daemon/creator.js +7 -3
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +19 -0
- package/dist/daemon/daemon.js +68 -1
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/eviction-loop.d.ts +40 -0
- package/dist/daemon/eviction-loop.js +67 -0
- package/dist/daemon/eviction-loop.js.map +1 -0
- package/dist/daemon/jinn-claim-loop-wiring.d.ts +33 -0
- package/dist/daemon/jinn-claim-loop-wiring.js +40 -0
- package/dist/daemon/jinn-claim-loop-wiring.js.map +1 -0
- package/dist/daemon/jinn-claim-loop.d.ts +24 -17
- package/dist/daemon/jinn-claim-loop.js +77 -23
- package/dist/daemon/jinn-claim-loop.js.map +1 -1
- package/dist/daemon/skip-log-dedup.d.ts +69 -0
- package/dist/daemon/skip-log-dedup.js +106 -0
- package/dist/daemon/skip-log-dedup.js.map +1 -0
- package/dist/dashboard/assets/index-BUlE8F3Y.js +330 -0
- package/dist/dashboard/assets/index-blqc7eqq.css +32 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/discovery/factory.d.ts +17 -5
- package/dist/discovery/factory.js +46 -18
- package/dist/discovery/factory.js.map +1 -1
- package/dist/discovery/http.js +142 -3
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.d.ts +5 -0
- package/dist/discovery/onchain.js +407 -15
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +45 -1
- package/dist/discovery/types.js +8 -10
- package/dist/discovery/types.js.map +1 -1
- package/dist/discovery/with-fallback.d.ts +7 -0
- package/dist/discovery/with-fallback.js +10 -0
- package/dist/discovery/with-fallback.js.map +1 -1
- package/dist/earning/bootstrap.d.ts +92 -1
- package/dist/earning/bootstrap.js +203 -63
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +14 -0
- package/dist/earning/contracts.js +17 -5
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/funding-plan.js +27 -18
- package/dist/earning/funding-plan.js.map +1 -1
- package/dist/earning/jinn-rewards.d.ts +46 -0
- package/dist/earning/jinn-rewards.js +32 -0
- package/dist/earning/jinn-rewards.js.map +1 -1
- package/dist/earning/safe-adapter.d.ts +2 -0
- package/dist/earning/safe-adapter.js +26 -12
- package/dist/earning/safe-adapter.js.map +1 -1
- package/dist/earning/store.d.ts +8 -0
- package/dist/earning/store.js.map +1 -1
- package/dist/earning/testnet-setup-migration.d.ts +12 -0
- package/dist/earning/testnet-setup-migration.js +27 -1
- package/dist/earning/testnet-setup-migration.js.map +1 -1
- package/dist/earning/types.d.ts +15 -0
- package/dist/erc8004/reputation.d.ts +8 -0
- package/dist/erc8004/reputation.js +22 -3
- package/dist/erc8004/reputation.js.map +1 -1
- package/dist/harnesses/cost-estimates.d.ts +145 -0
- package/dist/harnesses/cost-estimates.js +297 -0
- package/dist/harnesses/cost-estimates.js.map +1 -0
- package/dist/harnesses/engine/engine.d.ts +72 -0
- package/dist/harnesses/engine/engine.js +105 -8
- package/dist/harnesses/engine/engine.js.map +1 -1
- package/dist/harnesses/engine/persistence.d.ts +51 -1
- package/dist/harnesses/engine/persistence.js +118 -5
- package/dist/harnesses/engine/persistence.js.map +1 -1
- package/dist/harnesses/engine/work-dir-reaper.d.ts +65 -0
- package/dist/harnesses/engine/work-dir-reaper.js +100 -0
- package/dist/harnesses/engine/work-dir-reaper.js.map +1 -0
- package/dist/harnesses/impls/hermes-agent/adapter.js +40 -0
- package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +20 -0
- package/dist/harnesses/impls/hermes-agent/bootstrap.js +40 -6
- package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/harness.d.ts +59 -1
- package/dist/harnesses/impls/hermes-agent/harness.js +104 -0
- package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
- package/dist/harnesses/impls/index.d.ts +7 -0
- package/dist/harnesses/impls/index.js +16 -1
- package/dist/harnesses/impls/index.js.map +1 -1
- package/dist/harnesses/impls/learner/harness.d.ts +38 -4
- package/dist/harnesses/impls/learner/harness.js +96 -2
- package/dist/harnesses/impls/learner/harness.js.map +1 -1
- package/dist/harnesses/impls/learner/plugin-path.d.ts +0 -13
- package/dist/harnesses/impls/learner/plugin-path.js +35 -15
- package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
- package/dist/harnesses/impls/learner/types.d.ts +11 -0
- package/dist/harnesses/impls/stub.d.ts +58 -0
- package/dist/harnesses/impls/stub.js +89 -0
- package/dist/harnesses/impls/stub.js.map +1 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.d.ts +69 -50
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +178 -93
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +12 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +121 -7
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +15 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +54 -4
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +6 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
- package/dist/harnesses/readiness-registry.js +9 -1
- package/dist/harnesses/readiness-registry.js.map +1 -1
- package/dist/main.js +371 -82
- package/dist/main.js.map +1 -1
- package/dist/observability/emit-event.d.ts +1 -1
- package/dist/observability/emit-event.js.map +1 -1
- package/dist/operator-errors.d.ts +7 -0
- package/dist/operator-errors.js +13 -1
- package/dist/operator-errors.js.map +1 -1
- package/dist/plugins/learner/.claude-plugin/plugin.json +9 -0
- package/dist/plugins/learner/.codex-plugin/plugin.json +39 -0
- package/dist/plugins/learner/AGENTS.md +40 -0
- package/dist/plugins/learner/CLAUDE.md +33 -0
- package/dist/plugins/learner/README.md +59 -0
- package/dist/plugins/learner/hooks/hooks.json +16 -0
- package/dist/plugins/learner/hooks/session-start +38 -0
- package/dist/plugins/learner/skills/learn/SKILL.md +412 -0
- package/dist/plugins/learner/skills/learn/analyst-prompt.md +68 -0
- package/dist/plugins/learner/skills/learn/consolidator-prompt.md +94 -0
- package/dist/plugins/learner/skills/learn/explorer-prompt.md +53 -0
- package/dist/plugins/learner/skills/learn/planner-prompt.md +87 -0
- package/dist/plugins/learner/skills/learn/promoter-prompt.md +113 -0
- package/dist/plugins/learner/skills/learn/step-worker-prompt.md +47 -0
- package/dist/plugins/learner/skills/learn/strategist-prompt.md +85 -0
- package/dist/restart-daemon.d.ts +90 -0
- package/dist/restart-daemon.js +95 -0
- package/dist/restart-daemon.js.map +1 -0
- package/dist/setup/halt-mode.d.ts +14 -0
- package/dist/setup/halt-mode.js +17 -0
- package/dist/setup/halt-mode.js.map +1 -0
- package/dist/solver-nets/prediction-operator-ux.js +43 -3
- package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
- package/dist/solver-nets/registry.d.ts +1 -0
- package/dist/solver-nets/registry.js +1 -1
- package/dist/solver-nets/registry.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-pool-cache.d.ts +58 -0
- package/dist/solver-types/_swe-rebench-v2-pool-cache.js +87 -0
- package/dist/solver-types/_swe-rebench-v2-pool-cache.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-substrate.d.ts +1 -0
- package/dist/solver-types/_swe-rebench-v2-substrate.js +10 -0
- package/dist/solver-types/_swe-rebench-v2-substrate.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +65 -0
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +243 -26
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2-auto.d.ts +22 -7
- package/dist/solver-types/swe-rebench-v2-auto.js +45 -20
- package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2.d.ts +13 -2
- package/dist/solver-types/swe-rebench-v2.js +233 -94
- package/dist/solver-types/swe-rebench-v2.js.map +1 -1
- package/dist/solvernets/daemon-init.d.ts +10 -2
- package/dist/solvernets/daemon-init.js +22 -2
- package/dist/solvernets/daemon-init.js.map +1 -1
- package/dist/solvernets/launched-record-dispatcher.js +35 -7
- package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
- package/dist/solvernets/store.d.ts +5 -0
- package/dist/solvernets/store.js +1 -0
- package/dist/solvernets/store.js.map +1 -1
- package/dist/store/store.d.ts +15 -0
- package/dist/store/store.js +118 -3
- package/dist/store/store.js.map +1 -1
- package/dist/tasks/sources.d.ts +18 -1
- package/dist/tasks/sources.js +33 -5
- package/dist/tasks/sources.js.map +1 -1
- package/dist/tx-retry.d.ts +151 -19
- package/dist/tx-retry.js +286 -32
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/payloads/prediction-apy-v0.d.ts +5 -5
- package/dist/types/payloads/prediction-v0.d.ts +5 -5
- package/dist/types/task-document.d.ts +392 -0
- package/dist/types/task-document.js +10 -0
- package/dist/types/task-document.js.map +1 -1
- package/dist/types/task.d.ts +28 -0
- package/dist/util/extract-tx-hash.d.ts +14 -0
- package/dist/util/extract-tx-hash.js +19 -0
- package/dist/util/extract-tx-hash.js.map +1 -0
- package/dist/vendor/@jinn-network/sdk/dist/contracts.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +3 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -0
- package/package.json +29 -12
- package/dist/dashboard/assets/index-DOlzFN8a.css +0 -32
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
// ──
|
|
535
|
-
//
|
|
536
|
-
// on-chain
|
|
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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"}
|