@jinn-network/client 0.1.6 → 0.1.7-canary.17a8ecb8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/README.md +67 -1
- 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 +268 -57
- 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 +6 -2
- package/dist/adapters/mech/safe.js +32 -11
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +6 -1
- package/dist/adapters/mech/types.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/activity-events-endpoint.d.ts +14 -0
- package/dist/api/activity-events-endpoint.js +59 -0
- package/dist/api/activity-events-endpoint.js.map +1 -0
- 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.d.ts +1 -2
- package/dist/api/bootstrap-endpoint.js +49 -1
- 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 +14 -0
- package/dist/api/gather-status.js +494 -19
- 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 +22 -17
- package/dist/api/launcher-status.js +13 -11
- package/dist/api/launcher-status.js.map +1 -1
- package/dist/api/launcher-tasks.d.ts +1 -1
- package/dist/api/launcher-tasks.js +12 -8
- package/dist/api/launcher-tasks.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 +72 -1
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +16 -0
- package/dist/api/setup-endpoints.js +89 -135
- 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 +112 -0
- package/dist/api/status-build.js +98 -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 +101 -15
- package/dist/cli/commands/solver-nets.js.map +1 -1
- package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
- package/dist/cli/commands/solver-plugins-block.js +118 -0
- package/dist/cli/commands/solver-plugins-block.js.map +1 -0
- package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
- package/dist/cli/commands/solver-plugins-feedback.js +262 -0
- package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
- package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
- package/dist/cli/commands/solver-plugins-read.js +259 -0
- package/dist/cli/commands/solver-plugins-read.js.map +1 -0
- package/dist/cli/commands/solver-plugins.d.ts +35 -0
- package/dist/cli/commands/solver-plugins.js +399 -2
- package/dist/cli/commands/solver-plugins.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 +101 -11
- 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 +10 -1
- package/dist/cli/task-native-readiness.js +30 -6
- package/dist/cli/task-native-readiness.js.map +1 -1
- package/dist/config.d.ts +273 -235
- package/dist/config.js +305 -114
- 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 +22 -0
- package/dist/daemon/daemon.js +156 -23
- 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/gate-logger.d.ts +9 -0
- package/dist/daemon/gate-logger.js +2 -0
- package/dist/daemon/gate-logger.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/readiness-gate.d.ts +1 -4
- package/dist/daemon/readiness-gate.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/daemon/spend-cap-gate.d.ts +40 -0
- package/dist/daemon/spend-cap-gate.js +46 -0
- package/dist/daemon/spend-cap-gate.js.map +1 -0
- package/dist/dashboard/assets/index-8yHQgi7p.js +345 -0
- package/dist/dashboard/assets/index-BOBhJ76-.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 +37 -11
- 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 +21 -6
- package/dist/earning/viem-clients.d.ts +11 -4
- package/dist/earning/viem-clients.js +14 -5
- package/dist/earning/viem-clients.js.map +1 -1
- 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/events/types.d.ts +2 -2
- 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 +118 -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 +88 -4
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +143 -22
- 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 +413 -111
- package/dist/main.js.map +1 -1
- package/dist/observability/emit-event.d.ts +3 -2
- package/dist/observability/emit-event.js +22 -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/preflight/rpc-network.d.ts +40 -0
- package/dist/preflight/rpc-network.js +67 -1
- package/dist/preflight/rpc-network.js.map +1 -1
- 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/rpc/transport.d.ts +109 -0
- package/dist/rpc/transport.js +220 -0
- package/dist/rpc/transport.js.map +1 -0
- package/dist/scripts/donation-consumption-acceptance.js +7 -28
- package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
- 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.d.ts +1 -2
- package/dist/solver-nets/prediction-operator-ux.js +90 -47
- package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
- package/dist/solver-nets/registry.d.ts +20 -1
- package/dist/solver-nets/registry.js +38 -25
- 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-pool.d.ts +9 -2
- package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
- package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
- 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 +94 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +305 -39
- 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 +237 -95
- 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/spend/credential.d.ts +8 -0
- package/dist/spend/credential.js +30 -0
- package/dist/spend/credential.js.map +1 -0
- package/dist/spend/daemon-config.d.ts +13 -0
- package/dist/spend/daemon-config.js +24 -0
- package/dist/spend/daemon-config.js.map +1 -0
- package/dist/spend/pricing.d.ts +16 -0
- package/dist/spend/pricing.js +26 -0
- package/dist/spend/pricing.js.map +1 -0
- package/dist/spend/record.d.ts +13 -0
- package/dist/spend/record.js +30 -0
- package/dist/spend/record.js.map +1 -0
- package/dist/spend/usage.d.ts +27 -0
- package/dist/spend/usage.js +113 -0
- package/dist/spend/usage.js.map +1 -0
- package/dist/store/store.d.ts +43 -0
- package/dist/store/store.js +236 -7
- 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/trajectory/transcript-parsers/types.d.ts +8 -8
- package/dist/tx-retry.d.ts +166 -19
- package/dist/tx-retry.js +310 -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 +30 -12
- package/dist/dashboard/assets/index-DOlzFN8a.css +0 -32
- package/dist/dashboard/assets/index-NkZ7CTAT.js +0 -140
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
### Embedded agent surface hidden by default (issue #326)
|
|
6
|
+
|
|
7
|
+
- **The embedded Claude agent chat surface no longer renders in the operator
|
|
8
|
+
app by default.** The right-rail agent panel (running mode) and the
|
|
9
|
+
"Ask Claude" panel (onboarding) are hidden. The 2026-05-19 v0.1.6 dogfood
|
|
10
|
+
found the surface isn't robust enough for first-time operators — it is the
|
|
11
|
+
only daemon-side surface that strictly requires Claude auth, and its
|
|
12
|
+
action-authority / plugin-scope shape is still in design (#177 / #178).
|
|
13
|
+
- **Feature flag: `JINN_ENABLE_EMBEDDED_AGENT`.** Set
|
|
14
|
+
`JINN_ENABLE_EMBEDDED_AGENT=1` (also accepts `true`) to re-enable the
|
|
15
|
+
surface for development. Default is off. When off, the daemon does not
|
|
16
|
+
mount the `/api/agent/ws` bridge and the SPA renders no agent panel; when
|
|
17
|
+
on, the dev-time path works end-to-end as before. (Issue #367: the SPA now
|
|
18
|
+
reads this flag through the injected `window.__JINN_FEATURES__`, the same
|
|
19
|
+
channel as the plug-in builder UI flag — no behaviour change for operators.)
|
|
20
|
+
- **Claude-Code-as-a-solver-harness is unaffected.** Operators can still pick
|
|
21
|
+
Claude Code as their SolverNet harness — that path is independent of the
|
|
22
|
+
embedded chat surface and its WebSocket bridge.
|
|
23
|
+
|
|
24
|
+
### Operator app
|
|
25
|
+
|
|
26
|
+
- **Plug-in builder UI surfaces hidden by default (issue #327).** The `/build`
|
|
27
|
+
route and the Build top-tab no longer appear in the operator app. Hitting
|
|
28
|
+
`/build` by direct URL redirects to `/overview`. The plug-in substrate stays
|
|
29
|
+
fully live — `jinn solver-plugins publish` / `revoke`, the Ponder indexer,
|
|
30
|
+
the Discovery API endpoints, and the `client/docs/build/` tree are
|
|
31
|
+
unchanged, so direct-CLI builders following the docs are not blocked. The
|
|
32
|
+
surfaces are gated to keep the operator-app first-run UX focused; they will
|
|
33
|
+
be re-promoted once that UX is solid and plug-in indexing is end-to-end
|
|
34
|
+
populated. Set `JINN_ENABLE_PLUGIN_BUILDER_UI=1` on the daemon to re-enable
|
|
35
|
+
the full builder surface for development and design work — the daemon injects
|
|
36
|
+
the flag into the SPA via `window.__JINN_FEATURES__`.
|
|
37
|
+
|
|
5
38
|
### SWE-rebench v2 admission
|
|
6
39
|
|
|
7
40
|
- **Admission semantics bumped from `'2'` → `'3'`.** Operators running the
|
package/README.md
CHANGED
|
@@ -312,7 +312,7 @@ JINN_PASSWORD=secret jinn run --config ./my-config.json
|
|
|
312
312
|
| Config key | Env override | Default |
|
|
313
313
|
|---|---|---|
|
|
314
314
|
| network | JINN_NETWORK | `testnet` (Phase 1b default; flips to `mainnet` at Phase 2 launch) |
|
|
315
|
-
| rpcUrl | BASE_RPC_URL / JINN_RPC_URL |
|
|
315
|
+
| rpcUrl | BASE_RPC_URL / JINN_RPC_URL | testnet: two-provider fallback chain `[publicnode, sepolia.base.org]`; mainnet: single `mainnet.base.org`. Accepts string OR array; env values split on commas. See "RPC fallback chain" below. |
|
|
316
316
|
| claudeModel | JINN_CLAUDE_MODEL | claude-haiku-4-5-20251001 |
|
|
317
317
|
| claudePath | JINN_CLAUDE_PATH | claude |
|
|
318
318
|
| pollIntervalMs | JINN_POLL_INTERVAL_MS | 5000 |
|
|
@@ -325,6 +325,72 @@ JINN_PASSWORD=secret jinn run --config ./my-config.json
|
|
|
325
325
|
|
|
326
326
|
`JINN_PASSWORD` is env-only (keystore encryption, never in config files). Alternatively, use `--password-fd <N>` to read from a file descriptor.
|
|
327
327
|
|
|
328
|
+
### RPC fallback chain
|
|
329
|
+
|
|
330
|
+
Out of the box on testnet, `jinn run` uses a two-provider fallback chain —
|
|
331
|
+
no key required, zero config:
|
|
332
|
+
|
|
333
|
+
```text
|
|
334
|
+
slot 0 https://base-sepolia.publicnode.com (no-auth, 50k-block getLogs cap)
|
|
335
|
+
slot 1 https://sepolia.base.org (free public Coinbase, 2k cap)
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
If the primary returns a network error or HTTP 429 / 5xx, viem
|
|
339
|
+
transparently falls through to the next slot. When every slot fails the
|
|
340
|
+
daemon throws `AllRpcsFailedError` (visible in the dashboard's NetworkSection
|
|
341
|
+
and in stderr).
|
|
342
|
+
|
|
343
|
+
#### Bring your own paid primary
|
|
344
|
+
|
|
345
|
+
Operators with a paid Alchemy / Tenderly / QuickNode endpoint should
|
|
346
|
+
**prepend** their URL — the public free chain stays as automatic backup:
|
|
347
|
+
|
|
348
|
+
```json
|
|
349
|
+
{
|
|
350
|
+
"rpcUrl": [
|
|
351
|
+
"https://my-alchemy-key.example",
|
|
352
|
+
"https://base-sepolia.publicnode.com",
|
|
353
|
+
"https://sepolia.base.org"
|
|
354
|
+
]
|
|
355
|
+
}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
Or via env (comma-separated, same chain capped at 4 providers):
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
JINN_RPC_URL='https://my-alchemy-key.example,https://base-sepolia.publicnode.com,https://sepolia.base.org' jinn run
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
The chain is built with viem's `fallback({ rank: false })` so operator slot
|
|
365
|
+
order is preserved (no latency-based reshuffling).
|
|
366
|
+
|
|
367
|
+
#### Automatic failure modes
|
|
368
|
+
|
|
369
|
+
| Failure | What used to happen | What now happens |
|
|
370
|
+
|---------------------------------------------|--------------------------------|-------------------------------------------------|
|
|
371
|
+
| Primary RPC returns HTTP 429 (rate limit) | Daemon hot-loops on every call | viem falls through to slot 1; daemon continues |
|
|
372
|
+
| Primary RPC unreachable | Daemon errors silently | viem falls through to slot 1; daemon continues |
|
|
373
|
+
| Primary's API key quota exhausted | Daemon silently degraded | viem falls through to slot 1; daemon continues |
|
|
374
|
+
| Every slot fails (rare) | Daemon errors silently | `AllRpcsFailedError` thrown with masked host list — surfaces as a state message in the operator app |
|
|
375
|
+
|
|
376
|
+
On boot the daemon emits one log line per slot followed by the canonical
|
|
377
|
+
summary line:
|
|
378
|
+
|
|
379
|
+
```text
|
|
380
|
+
[rpc] L2 base-sepolia.publicnode.com ok latency=87ms
|
|
381
|
+
[rpc] L2 sepolia.base.org ok latency=141ms
|
|
382
|
+
[rpc] L2 transport: fallback chain (2 providers) — primary=base-sepolia.publicnode.com
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
The probe is **log-only** — secondary-slot 429s warn but never gate
|
|
386
|
+
startup. Only chain-id mismatch against the head URL is fail-loud
|
|
387
|
+
(`checkRpcNetwork`).
|
|
388
|
+
|
|
389
|
+
Note this is the JSON-RPC transport layer. It is distinct from
|
|
390
|
+
`discovery.fallbackToOnchain`, which is a separate flag at the read-API
|
|
391
|
+
layer (Ponder indexer → direct `eth_getLogs` floor). The RPC fallback chain
|
|
392
|
+
operates beneath both.
|
|
393
|
+
|
|
328
394
|
## Tokens
|
|
329
395
|
|
|
330
396
|
| Role | Phase 1b (testnet, Base Sepolia) | Phase 2 (mainnet, Base) |
|
|
@@ -20,8 +20,13 @@
|
|
|
20
20
|
},
|
|
21
21
|
"messenger": {
|
|
22
22
|
"mode": "mock",
|
|
23
|
-
"address": "
|
|
24
|
-
"owner": "
|
|
23
|
+
"address": "0xd229A2C20333B747675090Ce38B8a1Fb2dafe6AC",
|
|
24
|
+
"owner": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
25
|
+
"previousAddress": "0x30E2f1A5691a999053A54e8DAf9496CD7ccF2DFD",
|
|
26
|
+
"rotatedAt": "2026-05-20T17:14:48.591Z",
|
|
27
|
+
"deployTxHash": "0x44c0fc6f92e1c8247304dceb195b8cfa1ae114a79e7a6ce1305e4305de45b9af",
|
|
28
|
+
"setMessengerTxHash": "0x13313c9cc29ae9d7ce1e13ca78472359fdb6213b5d1d936d73f89ca051867c00",
|
|
29
|
+
"rotationBlockNumber": 10886858
|
|
25
30
|
},
|
|
26
31
|
"handover": {
|
|
27
32
|
"renounceAdmin": false
|
|
@@ -31,6 +36,20 @@
|
|
|
31
36
|
"TimelockController": "0x5CE9c7E24f0509490a91a1cD285DDFF70A9C058D",
|
|
32
37
|
"JinnGovernor": "0xbbc43A1B5AC699de09577dAE4A1007a3bA704D9E",
|
|
33
38
|
"JinnDistributor": "0xaC9CD847660d05e77D82A3684aFC4EbFd94fBfe6",
|
|
34
|
-
"Messenger": "
|
|
35
|
-
|
|
39
|
+
"Messenger": "0xd229A2C20333B747675090Ce38B8a1Fb2dafe6AC",
|
|
40
|
+
"MockMessenger": "0xd229A2C20333B747675090Ce38B8a1Fb2dafe6AC"
|
|
41
|
+
},
|
|
42
|
+
"rotations": [
|
|
43
|
+
{
|
|
44
|
+
"type": "mock-messenger",
|
|
45
|
+
"previousMessenger": "0x30E2f1A5691a999053A54e8DAf9496CD7ccF2DFD",
|
|
46
|
+
"newMessenger": "0xd229A2C20333B747675090Ce38B8a1Fb2dafe6AC",
|
|
47
|
+
"owner": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
48
|
+
"distributor": "0xaC9CD847660d05e77D82A3684aFC4EbFd94fBfe6",
|
|
49
|
+
"deployTxHash": "0x44c0fc6f92e1c8247304dceb195b8cfa1ae114a79e7a6ce1305e4305de45b9af",
|
|
50
|
+
"setMessengerTxHash": "0x13313c9cc29ae9d7ce1e13ca78472359fdb6213b5d1d936d73f89ca051867c00",
|
|
51
|
+
"blockNumber": 10886858,
|
|
52
|
+
"rotatedAt": "2026-05-20T17:14:48.591Z"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
36
55
|
}
|
|
@@ -20,8 +20,13 @@
|
|
|
20
20
|
},
|
|
21
21
|
"messenger": {
|
|
22
22
|
"mode": "mock",
|
|
23
|
-
"address": "
|
|
24
|
-
"owner": "
|
|
23
|
+
"address": "0xd229A2C20333B747675090Ce38B8a1Fb2dafe6AC",
|
|
24
|
+
"owner": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
25
|
+
"previousAddress": "0x30E2f1A5691a999053A54e8DAf9496CD7ccF2DFD",
|
|
26
|
+
"rotatedAt": "2026-05-20T17:14:48.591Z",
|
|
27
|
+
"deployTxHash": "0x44c0fc6f92e1c8247304dceb195b8cfa1ae114a79e7a6ce1305e4305de45b9af",
|
|
28
|
+
"setMessengerTxHash": "0x13313c9cc29ae9d7ce1e13ca78472359fdb6213b5d1d936d73f89ca051867c00",
|
|
29
|
+
"rotationBlockNumber": 10886858
|
|
25
30
|
},
|
|
26
31
|
"handover": {
|
|
27
32
|
"renounceAdmin": false
|
|
@@ -31,6 +36,20 @@
|
|
|
31
36
|
"TimelockController": "0x5CE9c7E24f0509490a91a1cD285DDFF70A9C058D",
|
|
32
37
|
"JinnGovernor": "0xbbc43A1B5AC699de09577dAE4A1007a3bA704D9E",
|
|
33
38
|
"JinnDistributor": "0xaC9CD847660d05e77D82A3684aFC4EbFd94fBfe6",
|
|
34
|
-
"Messenger": "
|
|
35
|
-
|
|
39
|
+
"Messenger": "0xd229A2C20333B747675090Ce38B8a1Fb2dafe6AC",
|
|
40
|
+
"MockMessenger": "0xd229A2C20333B747675090Ce38B8a1Fb2dafe6AC"
|
|
41
|
+
},
|
|
42
|
+
"rotations": [
|
|
43
|
+
{
|
|
44
|
+
"type": "mock-messenger",
|
|
45
|
+
"previousMessenger": "0x30E2f1A5691a999053A54e8DAf9496CD7ccF2DFD",
|
|
46
|
+
"newMessenger": "0xd229A2C20333B747675090Ce38B8a1Fb2dafe6AC",
|
|
47
|
+
"owner": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
48
|
+
"distributor": "0xaC9CD847660d05e77D82A3684aFC4EbFd94fBfe6",
|
|
49
|
+
"deployTxHash": "0x44c0fc6f92e1c8247304dceb195b8cfa1ae114a79e7a6ce1305e4305de45b9af",
|
|
50
|
+
"setMessengerTxHash": "0x13313c9cc29ae9d7ce1e13ca78472359fdb6213b5d1d936d73f89ca051867c00",
|
|
51
|
+
"blockNumber": 10886858,
|
|
52
|
+
"rotatedAt": "2026-05-20T17:14:48.591Z"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
36
55
|
}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
"network": "baseSepolia",
|
|
3
3
|
"chainId": 84532,
|
|
4
4
|
"deployer": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
5
|
-
"deployedAt": "2026-
|
|
5
|
+
"deployedAt": "2026-05-20T15:23:10.000Z",
|
|
6
|
+
"deployBlock": 41761151,
|
|
7
|
+
"txHash": "0x97524384c024a2bcfe11b3699bad53e8533bc25f43e64101ce1e0e4170491f9b",
|
|
6
8
|
"contracts": {
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"JinnRouterV2": "0x13dae57a54A7DF862113BcA8Ee2fd3dEf6a6A94A",
|
|
9
|
+
"TaskClaimEmitter": "0xF60055534E377F4020eEA80356C0643E02f4f307",
|
|
10
|
+
"TaskActivityCheckerV3": "0x0e1B5f264F4FAdcFAA950fb00c58d9A39C040f70",
|
|
10
11
|
"ServiceRegistry": "0x31D3202d8744B16A120117A053459DDFAE93c855"
|
|
11
12
|
}
|
|
12
13
|
}
|
|
@@ -33,6 +33,17 @@ export declare class MechAdapter implements ExecutionAdapter {
|
|
|
33
33
|
private deliveryBlockCursor;
|
|
34
34
|
private pendingEvaluations;
|
|
35
35
|
private observedTasks;
|
|
36
|
+
/**
|
|
37
|
+
* Read-through cache for `restorationAnnouncementForTaskId` — the restoration
|
|
38
|
+
* task body looked up *while building an evaluation opportunity*. Kept
|
|
39
|
+
* SEPARATE from `observedTasks` (the `watchForTasks` discovery dedup set) on
|
|
40
|
+
* purpose: writing the restoration body into `observedTasks` made the
|
|
41
|
+
* TaskCreated scan skip that taskId as a *restoration* opportunity just
|
|
42
|
+
* because the daemon had built an *evaluation* opportunity for someone
|
|
43
|
+
* else's attempt on it. That blocked the creator's own daemon from claiming
|
|
44
|
+
* its own attempt on a multi-attempt (`maxClaims > 1`) task it posted.
|
|
45
|
+
*/
|
|
46
|
+
private restorationBodyCache;
|
|
36
47
|
private requestKinds;
|
|
37
48
|
private claimedRestorationTaskIds;
|
|
38
49
|
private evaluationOpportunities;
|
|
@@ -51,6 +62,9 @@ export declare class MechAdapter implements ExecutionAdapter {
|
|
|
51
62
|
private persistPendingEvaluationSolutions;
|
|
52
63
|
private rememberPendingEvaluationSolution;
|
|
53
64
|
private forgetPendingEvaluationSolution;
|
|
65
|
+
private clearPendingDeliveryRecoveryState;
|
|
66
|
+
private recoveryDeliveryExpirySeconds;
|
|
67
|
+
private shouldSkipExpiredRecoveryDelivery;
|
|
54
68
|
postTask(state: Task): Promise<PostedTask>;
|
|
55
69
|
private signTaskDocument;
|
|
56
70
|
private contractPolicyForTask;
|
|
@@ -58,6 +72,17 @@ export declare class MechAdapter implements ExecutionAdapter {
|
|
|
58
72
|
private restorationAnnouncementForTaskId;
|
|
59
73
|
private restorationAnnouncementFromDigest;
|
|
60
74
|
private discoverSubgraphRestorationTasks;
|
|
75
|
+
/**
|
|
76
|
+
* Look up the Deliver-event envelope CID for a pending evaluation solution.
|
|
77
|
+
*
|
|
78
|
+
* Returns `null` when the Deliver event is not present in the configured
|
|
79
|
+
* lookback window. This is a terminal signal for the caller — re-running the
|
|
80
|
+
* same lookup later is deterministically futile when `solution.blockNumber`
|
|
81
|
+
* is set (toBlock is fixed at the SolutionDeliveryClaimed block), and is
|
|
82
|
+
* monotonically less likely to find the event when toBlock follows chain head
|
|
83
|
+
* (the window slides forward, away from any older Deliver event). Callers
|
|
84
|
+
* should prune the pending solution on `null` rather than retry — see #553.
|
|
85
|
+
*/
|
|
61
86
|
private deliveryEnvelopeCidForSolution;
|
|
62
87
|
private evaluationAnnouncementForSolution;
|
|
63
88
|
private retryPendingEvaluationSolutions;
|
|
@@ -74,8 +99,20 @@ export declare class MechAdapter implements ExecutionAdapter {
|
|
|
74
99
|
}>;
|
|
75
100
|
submitSolutionDelivery(requestId: RequestId, solutionDigest: Hex): Promise<void>;
|
|
76
101
|
submitVerdictDelivery(requestId: RequestId, verdictDigest: Hex, verdictCode: VerdictCode): Promise<void>;
|
|
77
|
-
private
|
|
102
|
+
private deliveryClaimForDelivery;
|
|
78
103
|
private ensureDeliveryClaimed;
|
|
104
|
+
/**
|
|
105
|
+
* Paginate `getLogs` over `[deliveryBlockCursor+1, currentBlock]` chunked by
|
|
106
|
+
* `DEFAULT_ROUTER_LOG_CHUNK_BLOCKS` to honor RPC provider block-range limits
|
|
107
|
+
* (Tenderly base-sepolia caps at 100k; sepolia.base.org ~1k). Advances +
|
|
108
|
+
* persists `deliveryBlockCursor` per chunk so a mid-scan RPC failure on a
|
|
109
|
+
* later chunk does not strand the cursor at the pre-poll value (#552).
|
|
110
|
+
*
|
|
111
|
+
* Yields each chunk's decoded Deliver entries so the consumer can process
|
|
112
|
+
* them with the live "current block" context (needed for the recovery-
|
|
113
|
+
* delivery timestamp cache).
|
|
114
|
+
*/
|
|
115
|
+
private scanDeliveryLogChunks;
|
|
79
116
|
watchForDeliveries(): AsyncIterable<DeliveredResult>;
|
|
80
117
|
stop(): Promise<void>;
|
|
81
118
|
}
|