@jinn-network/client 0.1.8 → 0.1.9-canary.023faefb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +2 -2
- package/README.md +6 -0
- package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
- package/deployments/deployment-stolas-l2-baseSepolia-fast.json +23 -3
- package/deployments/deployment-task-coordinator-router-v3-baseSepolia-fast.json +34 -6
- package/dist/adapters/mech/adapter.d.ts +31 -1
- package/dist/adapters/mech/adapter.js +126 -53
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +174 -13
- package/dist/adapters/mech/contracts.js +99 -49
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/safe-revert.d.ts +4 -0
- package/dist/adapters/mech/safe-revert.js +5 -1
- package/dist/adapters/mech/safe-revert.js.map +1 -1
- package/dist/adapters/mech/safe.js +77 -1
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +5 -130
- package/dist/adapters/mech/types.js +9 -65
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/adapters/mech/verdict-code.js +1 -1
- package/dist/adapters/mech/verdict-code.js.map +1 -1
- package/dist/api/bootstrap-endpoint.d.ts +19 -3
- package/dist/api/bootstrap-endpoint.js +4 -0
- package/dist/api/bootstrap-endpoint.js.map +1 -1
- package/dist/api/discovery-endpoint.d.ts +1 -0
- package/dist/api/discovery-endpoint.js +24 -0
- package/dist/api/discovery-endpoint.js.map +1 -1
- package/dist/api/fleet-build.d.ts +1 -7
- package/dist/api/fleet-build.js +0 -7
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.d.ts +26 -17
- package/dist/api/gather-status.js +62 -520
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/harness-auth-status-endpoint.d.ts +21 -0
- package/dist/api/harness-auth-status-endpoint.js +17 -0
- package/dist/api/harness-auth-status-endpoint.js.map +1 -0
- package/dist/api/launcher-endpoints.js +6 -1
- package/dist/api/launcher-endpoints.js.map +1 -1
- package/dist/api/launcher-status.d.ts +2 -0
- package/dist/api/launcher-status.js.map +1 -1
- package/dist/api/launcher-tasks.d.ts +47 -0
- package/dist/api/launcher-tasks.js +88 -3
- package/dist/api/launcher-tasks.js.map +1 -1
- package/dist/api/loop-completion-build.d.ts +79 -0
- package/dist/api/loop-completion-build.js +154 -0
- package/dist/api/loop-completion-build.js.map +1 -0
- package/dist/api/operator-artifacts-endpoint.js +1 -1
- package/dist/api/operator-artifacts-endpoint.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +2 -1
- package/dist/api/portfolio-v0-build.js +5 -7
- package/dist/api/portfolio-v0-build.js.map +1 -1
- package/dist/api/prediction-v1-build.d.ts +2 -2
- package/dist/api/prediction-v1-build.js +5 -7
- package/dist/api/prediction-v1-build.js.map +1 -1
- package/dist/api/rewards-build.d.ts +8 -1
- package/dist/api/rewards-build.js +32 -4
- package/dist/api/rewards-build.js.map +1 -1
- package/dist/api/rewards-endpoint.d.ts +12 -0
- package/dist/api/rewards-endpoint.js +46 -0
- package/dist/api/rewards-endpoint.js.map +1 -0
- package/dist/api/server.d.ts +6 -16
- package/dist/api/server.js +29 -26
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +45 -0
- package/dist/api/setup-endpoints.js +271 -52
- package/dist/api/setup-endpoints.js.map +1 -1
- package/dist/api/solvernets-endpoints.js +4 -1
- package/dist/api/solvernets-endpoints.js.map +1 -1
- package/dist/api/status-build.d.ts +71 -94
- package/dist/api/status-build.js +11 -77
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +0 -4
- package/dist/api/status-rollup-build.js +0 -4
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/api/stop-hook.d.ts +1 -1
- package/dist/api/stop-hook.js +1 -1
- package/dist/api/stop-hook.js.map +1 -1
- package/dist/api/task-run-routing.d.ts +1 -1
- package/dist/api/task-runs-build.d.ts +2 -2
- package/dist/api/task-runs-build.js +5 -7
- package/dist/api/task-runs-build.js.map +1 -1
- package/dist/bin/jinn-distil-mcp.js +813 -0
- package/dist/bin/jinn-layer.js +12568 -0
- package/dist/build-info.json +4 -4
- package/dist/build-meta.json +1 -1
- package/dist/captures/distil-export.d.ts +54 -0
- package/dist/captures/distil-export.js +135 -0
- package/dist/captures/distil-export.js.map +1 -0
- package/dist/captures/ingest.d.ts +21 -0
- package/dist/captures/ingest.js +144 -0
- package/dist/captures/ingest.js.map +1 -0
- package/dist/captures/live-publisher.d.ts +9 -0
- package/dist/captures/live-publisher.js +5 -3
- package/dist/captures/live-publisher.js.map +1 -1
- package/dist/captures/publish.d.ts +15 -0
- package/dist/captures/publish.js +17 -7
- package/dist/captures/publish.js.map +1 -1
- package/dist/cli/commands/codedigest-revert-check.js +6 -2
- package/dist/cli/commands/codedigest-revert-check.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.js +36 -4
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/eval.d.ts +87 -0
- package/dist/cli/commands/eval.js +481 -0
- package/dist/cli/commands/eval.js.map +1 -0
- package/dist/cli/commands/rewards.d.ts +2 -0
- package/dist/cli/commands/rewards.js +39 -10
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/solver-nets.js +68 -0
- package/dist/cli/commands/solver-nets.js.map +1 -1
- package/dist/cli/commands/status.js +0 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/update.js +8 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/version.js +4 -0
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/execution-context.js +2 -1
- package/dist/cli/execution-context.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/introspection-context.js +0 -3
- package/dist/cli/introspection-context.js.map +1 -1
- package/dist/config.d.ts +158 -541
- package/dist/config.js +190 -197
- package/dist/config.js.map +1 -1
- package/dist/contracts/abis.d.ts +100 -0
- package/dist/contracts/abis.js +58 -0
- package/dist/contracts/abis.js.map +1 -0
- package/dist/contracts/addresses.d.ts +36 -0
- package/dist/contracts/addresses.js +60 -0
- package/dist/contracts/addresses.js.map +1 -0
- package/dist/corpus/acquire.d.ts +7 -6
- package/dist/corpus/acquire.js +10 -10
- package/dist/corpus/acquire.js.map +1 -1
- package/dist/corpus/fetch-artifact.d.ts +21 -0
- package/dist/corpus/fetch-artifact.js +33 -0
- package/dist/corpus/fetch-artifact.js.map +1 -0
- package/dist/corpus/index.d.ts +2 -2
- package/dist/corpus/onchain-query.d.ts +0 -1
- package/dist/corpus/onchain-query.js +2 -5
- package/dist/corpus/onchain-query.js.map +1 -1
- package/dist/corpus/route-resolver.d.ts +3 -3
- package/dist/corpus/route-resolver.js +3 -3
- package/dist/daemon/ai-units-gate.d.ts +6 -6
- package/dist/daemon/ai-units-gate.js +11 -10
- package/dist/daemon/ai-units-gate.js.map +1 -1
- package/dist/daemon/balance-topup-loop.js +27 -9
- package/dist/daemon/balance-topup-loop.js.map +1 -1
- package/dist/daemon/checkpoint-loop.js +2 -2
- package/dist/daemon/creator.d.ts +1 -0
- package/dist/daemon/creator.js +39 -25
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +15 -10
- package/dist/daemon/daemon.js +95 -41
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/delivery-watcher.d.ts +9 -0
- package/dist/daemon/delivery-watcher.js +24 -1
- package/dist/daemon/delivery-watcher.js.map +1 -1
- package/dist/daemon/eviction-loop.d.ts +7 -0
- package/dist/daemon/eviction-loop.js +19 -3
- package/dist/daemon/eviction-loop.js.map +1 -1
- package/dist/daemon/join-applier.d.ts +35 -0
- package/dist/daemon/join-applier.js +49 -0
- package/dist/daemon/join-applier.js.map +1 -0
- package/dist/daemon/loop-heartbeat.d.ts +89 -0
- package/dist/daemon/loop-heartbeat.js +75 -0
- package/dist/daemon/loop-heartbeat.js.map +1 -0
- package/dist/{api/peers.js → daemon/peer-sync.js} +3 -1
- package/dist/daemon/peer-sync.js.map +1 -0
- package/dist/daemon/reward-claim-loop.js +28 -10
- package/dist/daemon/reward-claim-loop.js.map +1 -1
- package/dist/daemon/skip-log-dedup.d.ts +1 -1
- package/dist/daemon/skip-log-dedup.js +3 -0
- package/dist/daemon/skip-log-dedup.js.map +1 -1
- package/dist/daemon/spend-cap-gate.d.ts +0 -6
- package/dist/daemon/spend-cap-gate.js +1 -8
- package/dist/daemon/spend-cap-gate.js.map +1 -1
- package/dist/daemon/watchdog-loop.d.ts +84 -0
- package/dist/daemon/watchdog-loop.js +91 -0
- package/dist/daemon/watchdog-loop.js.map +1 -0
- package/dist/dashboard/assets/index-B_5Cb-ZH.js +161 -0
- package/dist/dashboard/assets/index-D7rvJRNa.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/discovery/http.d.ts +17 -0
- package/dist/discovery/http.js +378 -26
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.js +174 -10
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +149 -0
- package/dist/discovery/types.js +40 -0
- package/dist/discovery/types.js.map +1 -1
- package/dist/discovery/with-fallback.js +24 -0
- package/dist/discovery/with-fallback.js.map +1 -1
- package/dist/earning/bootstrap-run.d.ts +25 -0
- package/dist/earning/bootstrap-run.js +315 -0
- package/dist/earning/bootstrap-run.js.map +1 -0
- package/dist/earning/bootstrap.d.ts +31 -11
- package/dist/earning/bootstrap.js +123 -212
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +2 -232
- package/dist/earning/contracts.js +16 -205
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/faucet-topup-store.d.ts +41 -0
- package/dist/earning/faucet-topup-store.js +89 -0
- package/dist/earning/faucet-topup-store.js.map +1 -0
- package/dist/earning/faucet.d.ts +1 -1
- package/dist/earning/faucet.js +2 -2
- package/dist/earning/faucet.js.map +1 -1
- package/dist/earning/safe-adapter.js +12 -45
- package/dist/earning/safe-adapter.js.map +1 -1
- package/dist/earning/steps/context.d.ts +42 -0
- package/dist/earning/steps/context.js +4 -0
- package/dist/earning/steps/context.js.map +1 -0
- package/dist/earning/steps/fleet-identity-register.d.ts +4 -0
- package/dist/earning/steps/fleet-identity-register.js +65 -0
- package/dist/earning/steps/fleet-identity-register.js.map +1 -0
- package/dist/earning/steps/fleet-safe-deploy.d.ts +4 -0
- package/dist/earning/steps/fleet-safe-deploy.js +62 -0
- package/dist/earning/steps/fleet-safe-deploy.js.map +1 -0
- package/dist/earning/steps/fleet-safe-predict.d.ts +4 -0
- package/dist/earning/steps/fleet-safe-predict.js +18 -0
- package/dist/earning/steps/fleet-safe-predict.js.map +1 -0
- package/dist/earning/steps/receipt-parsing.d.ts +12 -0
- package/dist/earning/steps/receipt-parsing.js +71 -0
- package/dist/earning/steps/receipt-parsing.js.map +1 -0
- package/dist/earning/stolas-claim.js +8 -8
- package/dist/earning/stolas-claim.js.map +1 -1
- package/dist/earning/{jinn-rewards.d.ts → stolas-staking.d.ts} +4 -8
- package/dist/earning/{jinn-rewards.js → stolas-staking.js} +6 -10
- package/dist/earning/stolas-staking.js.map +1 -0
- package/dist/earning/testnet-setup-migration.d.ts +1 -0
- package/dist/earning/testnet-setup-migration.js +7 -2
- package/dist/earning/testnet-setup-migration.js.map +1 -1
- package/dist/earning/types.d.ts +1 -1
- package/dist/earning/types.js +1 -1
- package/dist/earning/types.js.map +1 -1
- package/dist/earning/viem-clients.d.ts +3 -19
- package/dist/earning/viem-clients.js +4 -31
- package/dist/earning/viem-clients.js.map +1 -1
- package/dist/erc8004/addresses.d.ts +6 -5
- package/dist/erc8004/addresses.js +7 -5
- package/dist/erc8004/addresses.js.map +1 -1
- package/dist/erc8004/identity.d.ts +12 -1
- package/dist/erc8004/identity.js +31 -0
- package/dist/erc8004/identity.js.map +1 -1
- package/dist/erc8004/index.d.ts +1 -1
- package/dist/erc8004/index.js +1 -1
- package/dist/erc8004/index.js.map +1 -1
- package/dist/eval/capability-slate.d.ts +54 -0
- package/dist/eval/capability-slate.js +116 -0
- package/dist/eval/capability-slate.js.map +1 -0
- package/dist/eval/capability-stats.d.ts +39 -0
- package/dist/eval/capability-stats.js +123 -0
- package/dist/eval/capability-stats.js.map +1 -0
- package/dist/eval/contested-band.d.ts +18 -0
- package/dist/eval/contested-band.js +19 -0
- package/dist/eval/contested-band.js.map +1 -0
- package/dist/eval/corpus-index.d.ts +21 -0
- package/dist/eval/corpus-index.js +55 -0
- package/dist/eval/corpus-index.js.map +1 -0
- package/dist/eval/disjointness.d.ts +26 -0
- package/dist/eval/disjointness.js +67 -0
- package/dist/eval/disjointness.js.map +1 -0
- package/dist/eval/eval-harness-run.d.ts +63 -0
- package/dist/eval/eval-harness-run.js +123 -0
- package/dist/eval/eval-harness-run.js.map +1 -0
- package/dist/eval/mcnemar-power.d.ts +14 -0
- package/dist/eval/mcnemar-power.js +40 -0
- package/dist/eval/mcnemar-power.js.map +1 -0
- package/dist/eval/orchestrator.d.ts +224 -0
- package/dist/eval/orchestrator.js +250 -0
- package/dist/eval/orchestrator.js.map +1 -0
- package/dist/eval/paired.d.ts +68 -0
- package/dist/eval/paired.js +93 -0
- package/dist/eval/paired.js.map +1 -0
- package/dist/eval/resolve-slate-tasks.d.ts +35 -0
- package/dist/eval/resolve-slate-tasks.js +56 -0
- package/dist/eval/resolve-slate-tasks.js.map +1 -0
- package/dist/eval/screen-discovery.d.ts +22 -0
- package/dist/eval/screen-discovery.js +71 -0
- package/dist/eval/screen-discovery.js.map +1 -0
- package/dist/eval/screen-progress.d.ts +41 -0
- package/dist/eval/screen-progress.js +60 -0
- package/dist/eval/screen-progress.js.map +1 -0
- package/dist/eval/screen-runner.d.ts +30 -0
- package/dist/eval/screen-runner.js +289 -0
- package/dist/eval/screen-runner.js.map +1 -0
- package/dist/eval/screen.d.ts +107 -0
- package/dist/eval/screen.js +159 -0
- package/dist/eval/screen.js.map +1 -0
- package/dist/eval/slope.d.ts +29 -0
- package/dist/eval/slope.js +46 -0
- package/dist/eval/slope.js.map +1 -0
- package/dist/eval/train-sequence.d.ts +35 -0
- package/dist/eval/train-sequence.js +59 -0
- package/dist/eval/train-sequence.js.map +1 -0
- package/dist/eval/wilson.d.ts +45 -0
- package/dist/eval/wilson.js +48 -0
- package/dist/eval/wilson.js.map +1 -0
- package/dist/events/types.d.ts +1 -1
- package/dist/events/types.js +1 -1
- package/dist/events/types.js.map +1 -1
- package/dist/harnesses/auth-source.d.ts +51 -0
- package/dist/harnesses/auth-source.js +155 -0
- package/dist/harnesses/auth-source.js.map +1 -0
- package/dist/harnesses/engine/canonical-json.js +5 -3
- package/dist/harnesses/engine/canonical-json.js.map +1 -1
- package/dist/harnesses/engine/engine.d.ts +34 -1
- package/dist/harnesses/engine/engine.js +91 -11
- package/dist/harnesses/engine/engine.js.map +1 -1
- package/dist/harnesses/engine/packaging.js +5 -5
- package/dist/harnesses/engine/packaging.js.map +1 -1
- package/dist/harnesses/engine/persistence.d.ts +19 -61
- package/dist/harnesses/engine/persistence.js +28 -0
- package/dist/harnesses/engine/persistence.js.map +1 -1
- package/dist/harnesses/impls/_evaluator-base.d.ts +48 -0
- package/dist/harnesses/impls/_evaluator-base.js +35 -0
- package/dist/harnesses/impls/_evaluator-base.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +1 -1
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js +1 -1
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +2 -3
- package/dist/harnesses/impls/claude-mcp-prediction/index.js +29 -99
- package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +4 -21
- package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +2 -0
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +30 -79
- package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +4 -19
- package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +2 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.d.ts +39 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js +62 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server.d.ts +40 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js +44 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.d.ts +56 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js +79 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js.map +1 -0
- package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
- package/dist/harnesses/impls/hermes-agent/adapter.js +8 -5
- package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
- package/dist/harnesses/impls/hermes-agent/bootstrap.js +6 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/harness.d.ts +25 -3
- package/dist/harnesses/impls/hermes-agent/harness.js +89 -5
- package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
- package/dist/harnesses/impls/index.d.ts +2 -0
- package/dist/harnesses/impls/index.js +10 -1
- package/dist/harnesses/impls/index.js.map +1 -1
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.d.ts +34 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js +111 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.d.ts +24 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js +19 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.d.ts +64 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.js +125 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.d.ts +32 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.js +73 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.js.map +1 -0
- package/dist/harnesses/impls/learner/adapters/claude-code.js +5 -0
- package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
- package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +11 -1
- package/dist/harnesses/impls/learner/adapters/codex-code.js +130 -15
- package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
- package/dist/harnesses/impls/learner/harness.d.ts +29 -1
- package/dist/harnesses/impls/learner/harness.js +85 -1
- package/dist/harnesses/impls/learner/harness.js.map +1 -1
- package/dist/harnesses/impls/learner/harvest.d.ts +2 -0
- package/dist/harnesses/impls/learner/harvest.js +51 -1
- package/dist/harnesses/impls/learner/harvest.js.map +1 -1
- package/dist/harnesses/impls/learner/plugin-path.js +1 -0
- package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +5 -15
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +10 -29
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -1
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +5 -15
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +10 -23
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
- package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +5 -15
- package/dist/harnesses/impls/prediction-v0-evaluator/index.js +10 -25
- package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -1
- package/dist/harnesses/impls/stub.d.ts +2 -2
- package/dist/harnesses/impls/stub.js +2 -2
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +8 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +3 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
- package/dist/harnesses/readiness-registry.d.ts +16 -0
- package/dist/harnesses/readiness-registry.js +28 -6
- package/dist/harnesses/readiness-registry.js.map +1 -1
- package/dist/harnesses/types.d.ts +26 -0
- package/dist/learner/revert-decision.d.ts +16 -1
- package/dist/learner/revert-decision.js +38 -18
- package/dist/learner/revert-decision.js.map +1 -1
- package/dist/learner/revert-stats.d.ts +14 -0
- package/dist/learner/revert-stats.js +42 -0
- package/dist/learner/revert-stats.js.map +1 -1
- package/dist/learner/verification-gate.d.ts +53 -0
- package/dist/learner/verification-gate.js +80 -0
- package/dist/learner/verification-gate.js.map +1 -0
- package/dist/local-provider-url.d.ts +3 -0
- package/dist/local-provider-url.js +28 -0
- package/dist/local-provider-url.js.map +1 -0
- package/dist/main.js +188 -566
- package/dist/main.js.map +1 -1
- package/dist/mcp/acquire-artifact.d.ts +3 -3
- package/dist/mcp/acquire-artifact.js +3 -3
- package/dist/mcp/operator-server.js +1 -1
- package/dist/mcp/operator-server.js.map +1 -1
- package/dist/mcp/server.js +5 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/monitoring/net-liveness.d.ts +143 -0
- package/dist/monitoring/net-liveness.js +301 -0
- package/dist/monitoring/net-liveness.js.map +1 -0
- package/dist/observability/emit-event.d.ts +1 -1
- package/dist/observability/emit-event.js +0 -4
- package/dist/observability/emit-event.js.map +1 -1
- package/dist/observability/progress.d.ts +11 -0
- package/dist/observability/progress.js +16 -0
- package/dist/observability/progress.js.map +1 -0
- package/dist/pilot/cost.d.ts +19 -0
- package/dist/pilot/cost.js +31 -0
- package/dist/pilot/cost.js.map +1 -0
- package/dist/pilot/instance.d.ts +20 -0
- package/dist/pilot/instance.js +19 -0
- package/dist/pilot/instance.js.map +1 -0
- package/dist/pilot/repo.d.ts +31 -0
- package/dist/pilot/repo.js +42 -0
- package/dist/pilot/repo.js.map +1 -0
- package/dist/pilot/solve.d.ts +22 -0
- package/dist/pilot/solve.js +37 -0
- package/dist/pilot/solve.js.map +1 -0
- package/dist/pilot/tally.d.ts +35 -0
- package/dist/pilot/tally.js +61 -0
- package/dist/pilot/tally.js.map +1 -0
- package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
- package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
- package/dist/plugins/learner/hooks/session-start +30 -1
- package/dist/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
- package/dist/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
- package/dist/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
- package/dist/plugins/local-trace-distiller/.mcp.json +8 -0
- package/dist/plugins/local-trace-distiller/README.md +27 -0
- package/dist/plugins/local-trace-distiller/jinn.plugin.json +36 -0
- package/dist/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
- package/dist/preflight/deployment-readiness.d.ts +127 -0
- package/dist/preflight/deployment-readiness.js +308 -0
- package/dist/preflight/deployment-readiness.js.map +1 -0
- package/dist/preflight/pidfile-liveness.d.ts +7 -1
- package/dist/preflight/pidfile-liveness.js +14 -0
- package/dist/preflight/pidfile-liveness.js.map +1 -1
- package/dist/preflight/rpc-network.d.ts +10 -3
- package/dist/preflight/rpc-network.js +46 -13
- package/dist/preflight/rpc-network.js.map +1 -1
- package/dist/preflight/stable-cwd.d.ts +29 -0
- package/dist/preflight/stable-cwd.js +98 -0
- package/dist/preflight/stable-cwd.js.map +1 -0
- package/dist/rpc/transport.d.ts +43 -5
- package/dist/rpc/transport.js +131 -30
- package/dist/rpc/transport.js.map +1 -1
- package/dist/scripts/swe-rebench-v2-seed-pool.json +2 -1
- package/dist/solver-nets/registry.d.ts +19 -0
- package/dist/solver-nets/registry.js +95 -66
- package/dist/solver-nets/registry.js.map +1 -1
- package/dist/solver-types/_jinn-repo-pool.d.ts +27 -0
- package/dist/solver-types/_jinn-repo-pool.js +27 -0
- package/dist/solver-types/_jinn-repo-pool.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-state.d.ts +9 -0
- package/dist/solver-types/_swe-rebench-v2-state.js +14 -0
- package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +30 -0
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +40 -0
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
- package/dist/solver-types/index.js +2 -0
- package/dist/solver-types/index.js.map +1 -1
- package/dist/solver-types/jinn-repo-admit.d.ts +17 -0
- package/dist/solver-types/jinn-repo-admit.js +16 -0
- package/dist/solver-types/jinn-repo-admit.js.map +1 -0
- package/dist/solver-types/jinn-repo-auto.d.ts +60 -0
- package/dist/solver-types/jinn-repo-auto.js +163 -0
- package/dist/solver-types/jinn-repo-auto.js.map +1 -0
- package/dist/solver-types/jinn-repo-definition.d.ts +15 -0
- package/dist/solver-types/jinn-repo-definition.js +34 -0
- package/dist/solver-types/jinn-repo-definition.js.map +1 -0
- package/dist/solver-types/jinn-repo-extract.d.ts +16 -0
- package/dist/solver-types/jinn-repo-extract.js +32 -0
- package/dist/solver-types/jinn-repo-extract.js.map +1 -0
- package/dist/solver-types/jinn-repo.d.ts +21 -0
- package/dist/solver-types/jinn-repo.js +23 -0
- package/dist/solver-types/jinn-repo.js.map +1 -0
- package/dist/solver-types/learner-loop-test.js +1 -1
- package/dist/solver-types/learner-loop-test.js.map +1 -1
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
- package/dist/solver-types/solver-type.d.ts +8 -0
- package/dist/solver-types/swe-rebench-v2.d.ts +2 -0
- package/dist/solver-types/swe-rebench-v2.js +115 -10
- package/dist/solver-types/swe-rebench-v2.js.map +1 -1
- package/dist/solvernets/launched-record-dispatcher.d.ts +5 -0
- package/dist/solvernets/launched-record-dispatcher.js +14 -1
- package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
- package/dist/solvernets/registry-client-erc8004.js +29 -37
- package/dist/solvernets/registry-client-erc8004.js.map +1 -1
- package/dist/solvernets/registry-client.d.ts +6 -0
- package/dist/solvernets/store.d.ts +1 -1
- package/dist/solvernets/store.js +8 -3
- package/dist/solvernets/store.js.map +1 -1
- package/dist/spend/ai-units-config.d.ts +10 -0
- package/dist/spend/ai-units-config.js +7 -1
- package/dist/spend/ai-units-config.js.map +1 -1
- package/dist/spend/ai-units.d.ts +51 -0
- package/dist/spend/ai-units.js +73 -0
- package/dist/spend/ai-units.js.map +1 -1
- package/dist/spend/credential.d.ts +2 -2
- package/dist/spend/credential.js +9 -3
- package/dist/spend/credential.js.map +1 -1
- package/dist/spend/record.js +12 -5
- package/dist/spend/record.js.map +1 -1
- package/dist/spend/spend-cap.d.ts +10 -0
- package/dist/spend/spend-cap.js +13 -0
- package/dist/spend/spend-cap.js.map +1 -0
- package/dist/spend/usage.js +39 -3
- package/dist/spend/usage.js.map +1 -1
- package/dist/store/store.d.ts +106 -5
- package/dist/store/store.js +194 -8
- package/dist/store/store.js.map +1 -1
- package/dist/trajectory/emit.d.ts +6 -0
- package/dist/trajectory/emit.js +9 -1
- package/dist/trajectory/emit.js.map +1 -1
- package/dist/trajectory/harness-bundle-schema.d.ts +1 -1
- package/dist/trajectory/harness-bundle-schema.js +1 -1
- package/dist/trajectory/harness-bundle-schema.js.map +1 -1
- package/dist/trajectory/processors/identity-scrub.js +22 -3
- package/dist/trajectory/processors/identity-scrub.js.map +1 -1
- package/dist/trajectory/schema.d.ts +1 -1
- package/dist/trajectory/schema.js +1 -1
- package/dist/trajectory/schema.js.map +1 -1
- package/dist/trajectory/scrub/build.d.ts +46 -0
- package/dist/trajectory/scrub/build.js +76 -0
- package/dist/trajectory/scrub/build.js.map +1 -0
- package/dist/trajectory/scrub/emit-scrub.d.ts +41 -0
- package/dist/trajectory/scrub/emit-scrub.js +88 -0
- package/dist/trajectory/scrub/emit-scrub.js.map +1 -0
- package/dist/trajectory/scrub/key-policy.d.ts +20 -0
- package/dist/trajectory/scrub/key-policy.js +43 -0
- package/dist/trajectory/scrub/key-policy.js.map +1 -0
- package/dist/trajectory/scrub/layer2.d.ts +23 -0
- package/dist/trajectory/scrub/layer2.js +33 -0
- package/dist/trajectory/scrub/layer2.js.map +1 -0
- package/dist/trajectory/scrub/ml-pii-stage.d.ts +24 -0
- package/dist/trajectory/scrub/ml-pii-stage.js +43 -0
- package/dist/trajectory/scrub/ml-pii-stage.js.map +1 -0
- package/dist/trajectory/scrub/openredaction-stage.d.ts +178 -0
- package/dist/trajectory/scrub/openredaction-stage.js +269 -0
- package/dist/trajectory/scrub/openredaction-stage.js.map +1 -0
- package/dist/trajectory/scrub/pii-build.d.ts +31 -0
- package/dist/trajectory/scrub/pii-build.js +64 -0
- package/dist/trajectory/scrub/pii-build.js.map +1 -0
- package/dist/trajectory/scrub/pipeline.d.ts +37 -0
- package/dist/trajectory/scrub/pipeline.js +83 -0
- package/dist/trajectory/scrub/pipeline.js.map +1 -0
- package/dist/trajectory/scrub/plain-patterns-stage.d.ts +31 -0
- package/dist/trajectory/scrub/plain-patterns-stage.js +85 -0
- package/dist/trajectory/scrub/plain-patterns-stage.js.map +1 -0
- package/dist/trajectory/scrub/secretlint-stage.d.ts +35 -0
- package/dist/trajectory/scrub/secretlint-stage.js +250 -0
- package/dist/trajectory/scrub/secretlint-stage.js.map +1 -0
- package/dist/trajectory/scrub/transformers-detector.d.ts +35 -0
- package/dist/trajectory/scrub/transformers-detector.js +68 -0
- package/dist/trajectory/scrub/transformers-detector.js.map +1 -0
- package/dist/trajectory/scrub/types.d.ts +25 -0
- package/dist/trajectory/scrub/types.js +2 -0
- package/dist/trajectory/scrub/types.js.map +1 -0
- package/dist/trajectory/transcript-parsers/types.d.ts +1 -1
- package/dist/trajectory/transcript-parsers/types.js +1 -1
- package/dist/trajectory/transcript-parsers/types.js.map +1 -1
- package/dist/trajectory/transcript-watcher.d.ts +26 -0
- package/dist/trajectory/transcript-watcher.js +33 -0
- package/dist/trajectory/transcript-watcher.js.map +1 -1
- package/dist/tx-retry.d.ts +12 -0
- package/dist/tx-retry.js +41 -12
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/envelope.d.ts +1 -1
- package/dist/types/envelope.js +1 -1
- package/dist/types/envelope.js.map +1 -1
- package/dist/types/payloads/index.d.ts +1 -1
- package/dist/types/payloads/index.js +7 -1
- package/dist/types/payloads/index.js.map +1 -1
- package/dist/types/payloads/portfolio-v0.d.ts +1 -1
- package/dist/types/payloads/portfolio-v0.js +1 -1
- package/dist/types/payloads/portfolio-v0.js.map +1 -1
- package/dist/types/payloads/prediction-apy-v0.d.ts +1 -1
- package/dist/types/payloads/prediction-apy-v0.js +1 -1
- package/dist/types/payloads/prediction-apy-v0.js.map +1 -1
- package/dist/types/payloads/prediction-v0.d.ts +1 -1
- package/dist/types/payloads/prediction-v0.js +1 -1
- package/dist/types/payloads/prediction-v0.js.map +1 -1
- package/dist/types/portfolio.d.ts +1 -1
- package/dist/types/portfolio.js +1 -1
- package/dist/types/portfolio.js.map +1 -1
- package/dist/types/prediction-apy.d.ts +1 -1
- package/dist/types/prediction-apy.js +1 -1
- package/dist/types/prediction-apy.js.map +1 -1
- package/dist/types/prediction.d.ts +1 -1
- package/dist/types/prediction.js +1 -1
- package/dist/types/prediction.js.map +1 -1
- package/dist/types/session-provenance.d.ts +1 -1
- package/dist/types/session-provenance.js +1 -1
- package/dist/types/session-provenance.js.map +1 -1
- package/dist/types/skill-artifact.d.ts +442 -0
- package/dist/types/skill-artifact.js +137 -0
- package/dist/types/skill-artifact.js.map +1 -0
- package/dist/types/task-document.d.ts +315 -1
- package/dist/types/task-document.js +9 -1
- package/dist/types/task-document.js.map +1 -1
- package/dist/types/task-run-read-model.d.ts +21 -0
- package/dist/types/task-run-read-model.js +2 -0
- package/dist/types/task-run-read-model.js.map +1 -0
- package/dist/types/task-run.d.ts +75 -0
- package/dist/types/task-run.js +2 -0
- package/dist/types/task-run.js.map +1 -0
- package/dist/types/task.d.ts +29 -1
- package/dist/types/task.js +1 -1
- package/dist/types/task.js.map +1 -1
- package/dist/types/window.d.ts +1 -1
- package/dist/types/window.js +1 -1
- package/dist/types/window.js.map +1 -1
- package/dist/util/redact-rpc-urls.d.ts +1 -1
- package/dist/util/redact-rpc-urls.js +57 -2
- package/dist/util/redact-rpc-urls.js.map +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +3 -2
- package/dist/vendor/@jinn-network/sdk/dist/contracts.js +49 -0
- package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.d.ts +44 -0
- package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.js +25 -0
- package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.d.ts +38 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.js +22 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +109 -2
- package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +26 -2
- package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.d.ts +4 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.js +2 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +1 -1
- package/dist/vendor/@jinn-network/sdk/package.json +9 -1
- package/docker-compose.yml +3 -2
- package/package.json +43 -28
- package/plugins/jinn-repo-runtime/.claude-plugin/plugin.json +5 -0
- package/plugins/jinn-repo-runtime/.codex-plugin/plugin.json +39 -0
- package/plugins/jinn-repo-runtime/README.md +27 -0
- package/plugins/jinn-repo-runtime/hooks/hooks.json +16 -0
- package/plugins/jinn-repo-runtime/hooks/session-start +73 -0
- package/plugins/jinn-repo-runtime/jinn.plugin.json +11 -0
- package/plugins/jinn-repo-runtime/skills/task/SKILL.md +92 -0
- package/plugins/learner/.claude-plugin/plugin.json +1 -1
- package/plugins/learner/.codex-plugin/plugin.json +1 -1
- package/plugins/learner/hooks/session-start +30 -1
- package/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
- package/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
- package/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
- package/plugins/local-trace-distiller/.mcp.json +8 -0
- package/plugins/local-trace-distiller/README.md +27 -0
- package/plugins/local-trace-distiller/jinn.plugin.json +36 -0
- package/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
- package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
- package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
- package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +0 -55
- package/deployments/deployment-jinn-mvi-l1-sepolia.json +0 -55
- package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +0 -13
- package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +0 -15
- package/dist/api/peers.js.map +0 -1
- package/dist/daemon/jinn-claim-loop-canonical.d.ts +0 -207
- package/dist/daemon/jinn-claim-loop-canonical.js +0 -296
- package/dist/daemon/jinn-claim-loop-canonical.js.map +0 -1
- package/dist/daemon/jinn-claim-loop-mock.d.ts +0 -61
- package/dist/daemon/jinn-claim-loop-mock.js +0 -122
- package/dist/daemon/jinn-claim-loop-mock.js.map +0 -1
- package/dist/daemon/jinn-claim-loop-wiring.d.ts +0 -33
- package/dist/daemon/jinn-claim-loop-wiring.js +0 -40
- package/dist/daemon/jinn-claim-loop-wiring.js.map +0 -1
- package/dist/daemon/jinn-claim-loop.d.ts +0 -130
- package/dist/daemon/jinn-claim-loop.js +0 -328
- package/dist/daemon/jinn-claim-loop.js.map +0 -1
- package/dist/dashboard/assets/index-CzKxvMcU.css +0 -32
- package/dist/dashboard/assets/index-yVemxHot.js +0 -351
- package/dist/earning/jinn-rewards.js.map +0 -1
- package/dist/scripts/donation-consumption-acceptance.d.ts +0 -85
- package/dist/scripts/donation-consumption-acceptance.js +0 -1382
- package/dist/scripts/donation-consumption-acceptance.js.map +0 -1
- package/dist/x402/acquire.d.ts +0 -17
- package/dist/x402/acquire.js +0 -49
- package/dist/x402/acquire.js.map +0 -1
- package/dist/x402/facilitator.d.ts +0 -11
- package/dist/x402/facilitator.js +0 -52
- package/dist/x402/facilitator.js.map +0 -1
- package/dist/x402/handler.d.ts +0 -27
- package/dist/x402/handler.js +0 -236
- package/dist/x402/handler.js.map +0 -1
- /package/dist/{api/peers.d.ts → daemon/peer-sync.d.ts} +0 -0
|
@@ -32,6 +32,28 @@ export interface ClaimableTaskCandidate {
|
|
|
32
32
|
attemptCount: number;
|
|
33
33
|
operatorAttemptCount: number;
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* On-chain finalization status for a posted Task, as rendered in the Launcher
|
|
37
|
+
* "Recent posted Tasks" table. This is a DISPLAY/advisory signal — distinct
|
|
38
|
+
* from the generator-side local `LauncherTaskState` — sourced from the indexer
|
|
39
|
+
* `task` table. `'unknown'` is the safe degraded default whenever the status
|
|
40
|
+
* cannot be resolved (floor outage, not-yet-indexed task); callers MUST map
|
|
41
|
+
* absence to `'unknown'` and never guess `'open'`.
|
|
42
|
+
*/
|
|
43
|
+
export type TaskOnchainStatus = 'open' | 'finalized' | 'expired' | 'unknown';
|
|
44
|
+
/**
|
|
45
|
+
* Per-task on-chain finalization snapshot, returned by `getTaskStatuses` keyed
|
|
46
|
+
* by on-chain taskId (decimal string). `claimWindowEnd` is unix seconds and MAY
|
|
47
|
+
* be null/undefined in the live indexer today (its call-trace decode is
|
|
48
|
+
* pending), so a missing/invalid window degrades to 'unknown' rather than
|
|
49
|
+
* guessing 'open'.
|
|
50
|
+
*/
|
|
51
|
+
export interface TaskStatusSnapshot {
|
|
52
|
+
taskId: string;
|
|
53
|
+
finalized: boolean;
|
|
54
|
+
refunded: boolean;
|
|
55
|
+
claimWindowEnd?: number;
|
|
56
|
+
}
|
|
35
57
|
/**
|
|
36
58
|
* Per-on-chain-task claim-budget snapshot for a launched SolverNet. Returned by
|
|
37
59
|
* `getInstanceClaimCounts`, keyed by **on-chain taskId** (decimal string) — NOT
|
|
@@ -137,6 +159,52 @@ export interface BuilderAttributedRun {
|
|
|
137
159
|
* `actualPassed` is the source of truth (NOT the on-chain verdictCode, which
|
|
138
160
|
* defaults to Pass — see verdictEnvelopeMeta JSDoc).
|
|
139
161
|
*/
|
|
162
|
+
/**
|
|
163
|
+
* Windowed on-chain task-post counts for one scope (chain-wide or a single
|
|
164
|
+
* SolverNet). Each window is a count of `TaskCreated` events whose block falls
|
|
165
|
+
* within the last 1h / 6h / 24h, computed backend-side as a block-window
|
|
166
|
+
* approximation (Base ~2s blocktime: 1h≈1800, 6h≈10800, 24h≈43200 blocks back
|
|
167
|
+
* from head). The windows nest: `h1 ⊆ h6 ⊆ h24`. Counts are approximate —
|
|
168
|
+
* blocktime drift and the per-call scan cap mean the 24h figure is a lower
|
|
169
|
+
* bound on a very high-volume SolverNet. See `DiscoveryAPI.getTaskPostCounts`.
|
|
170
|
+
*/
|
|
171
|
+
export interface TaskPostCounts {
|
|
172
|
+
/** TaskCreated events in the last ~1h. */
|
|
173
|
+
h1: number;
|
|
174
|
+
/** TaskCreated events in the last ~6h (includes h1). */
|
|
175
|
+
h6: number;
|
|
176
|
+
/** TaskCreated events in the last ~24h (includes h6). */
|
|
177
|
+
h24: number;
|
|
178
|
+
/** Block at the head of the window (Number(getBlockNumber()) on-chain; the latest indexed task block on HTTP). */
|
|
179
|
+
windowEndBlock: number;
|
|
180
|
+
/** Unix seconds the window was computed. */
|
|
181
|
+
windowEndTs: number;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Block-window thresholds for `getTaskPostCounts`, from Base's ~2s blocktime:
|
|
185
|
+
* 1h≈1800, 6h≈10800, 24h≈43200 blocks back from the window head. Shared by the
|
|
186
|
+
* HTTP and on-chain backings so they bucket identically. The windows nest
|
|
187
|
+
* (h1 ⊆ h6 ⊆ h24); the 24h figure also bounds the on-chain scan range.
|
|
188
|
+
*/
|
|
189
|
+
export declare const TASK_POST_WINDOW_BLOCKS: {
|
|
190
|
+
readonly h1: 1800;
|
|
191
|
+
readonly h6: 10800;
|
|
192
|
+
readonly h24: 43200;
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Bucket a stream of TaskCreated events into chain-wide + per-cid
|
|
196
|
+
* `TaskPostCounts`, shared by both DiscoveryAPI backings. `events` carry a
|
|
197
|
+
* `block` (number) and lowercased manifest `digest`; `cidByDigest` maps each
|
|
198
|
+
* requested digest to its cid. Counts nest (h1 ⊆ h6 ⊆ h24); events older than
|
|
199
|
+
* the 24h cut are ignored.
|
|
200
|
+
*/
|
|
201
|
+
export declare function bucketTaskPostCounts(windowEndBlock: number, windowEndTs: number, events: Array<{
|
|
202
|
+
block: number;
|
|
203
|
+
digest: string;
|
|
204
|
+
}>, cidByDigest: Map<string, string>): {
|
|
205
|
+
chain: TaskPostCounts;
|
|
206
|
+
byCid: Record<string, TaskPostCounts>;
|
|
207
|
+
};
|
|
140
208
|
export interface CodeDigestRewardRow {
|
|
141
209
|
/** The executor.codeDigest, e.g. "sha256:<hex>". */
|
|
142
210
|
codeDigest: string;
|
|
@@ -148,6 +216,12 @@ export interface CodeDigestRewardRow {
|
|
|
148
216
|
passRate: number;
|
|
149
217
|
/** Mean of numeric actualScore over verdicts that carried one; 0 when none. */
|
|
150
218
|
avgScore: number;
|
|
219
|
+
/**
|
|
220
|
+
* Per-attempt graded score (passedCount/totalCount) for in-window verdicts
|
|
221
|
+
* that carried v2 counts (totalCount > 0). Empty / short when verdicts predate
|
|
222
|
+
* verdict.v2. Consumed by the learner's Mann-Whitney sensitivity tier (#1019).
|
|
223
|
+
*/
|
|
224
|
+
gradedScores: number[];
|
|
151
225
|
}
|
|
152
226
|
export interface DiscoveryAPI {
|
|
153
227
|
/**
|
|
@@ -350,6 +424,81 @@ export interface DiscoveryAPI {
|
|
|
350
424
|
getInstanceClaimCounts(args: {
|
|
351
425
|
manifestCid: string;
|
|
352
426
|
}): Promise<Map<string, InstanceClaimCount>>;
|
|
427
|
+
/**
|
|
428
|
+
* Returns windowed on-chain task-post counts (last 1h / 6h / 24h) sourced
|
|
429
|
+
* from `TaskCreated` events on the active chain's JinnRouter / TaskCoordinator.
|
|
430
|
+
* Always returns the `chain`-wide totals; when `manifestCids` is supplied, also
|
|
431
|
+
* returns per-SolverNet totals in `byCid` (keyed by manifest CID), joined via
|
|
432
|
+
* `manifestDigestForCid(cid)` against each event's `manifestDigest`.
|
|
433
|
+
*
|
|
434
|
+
* Windowing is a block-window approximation computed backend-side (Base ~2s
|
|
435
|
+
* blocktime — see `TaskPostCounts`); counts are approximate. Each backing caps
|
|
436
|
+
* its scan, so on a very high-volume chain the figures are a lower bound.
|
|
437
|
+
*
|
|
438
|
+
* This is a *supply signal*, not a correctness gate, so it is NOT
|
|
439
|
+
* abort-on-outage: like `getSolverNetOperatorCount`, the `withFallback` wrapper
|
|
440
|
+
* routes it to the on-chain floor when the indexer is unavailable rather than
|
|
441
|
+
* propagating `DiscoveryUnavailableError`. The on-chain floor reconstructs the
|
|
442
|
+
* counts directly from `TaskCreated` logs.
|
|
443
|
+
*/
|
|
444
|
+
getTaskPostCounts(args?: {
|
|
445
|
+
manifestCids?: string[];
|
|
446
|
+
}): Promise<{
|
|
447
|
+
windowEndBlock: number;
|
|
448
|
+
windowEndTs: number;
|
|
449
|
+
/** Chain-wide totals (always present). */
|
|
450
|
+
chain: TaskPostCounts;
|
|
451
|
+
/** Per-SolverNet totals keyed by manifest CID; empty `{}` when no manifestCids given. */
|
|
452
|
+
byCid: Record<string, TaskPostCounts>;
|
|
453
|
+
}>;
|
|
454
|
+
/**
|
|
455
|
+
* Returns the most-recently-created task on the SolverNet identified by
|
|
456
|
+
* `manifestCid` — its on-chain `taskCidDigest` and decimal `taskId` — or
|
|
457
|
+
* `undefined` when no task has ever been posted for the SolverNet.
|
|
458
|
+
*
|
|
459
|
+
* The join key is the same `manifestDigest === keccak256(manifestCid)` used by
|
|
460
|
+
* `findClaimableTasks` / `getInstanceClaimCounts` (computed via
|
|
461
|
+
* `manifestDigestForCid`). "Most recent" is by creation order: the HTTP
|
|
462
|
+
* backing orders the `task` table by `createdAtBlock` desc, limit 1; the
|
|
463
|
+
* on-chain floor takes the highest-block `TaskCreated` log for the digest.
|
|
464
|
+
*
|
|
465
|
+
* This is a PURE indexer/chain read — it returns only the on-chain digest, NOT
|
|
466
|
+
* any IPFS body. The caller reconstructs the IPFS task CID
|
|
467
|
+
* (`f01551220 + digestHexWithout0x`, see `adapters/mech/adapter.ts`) and fetches
|
|
468
|
+
* the body itself. It is the read primitive behind the swe-rebench-v2 fresh-
|
|
469
|
+
* volume pool recovery (#957): an operator with an empty disk reads a recent
|
|
470
|
+
* task's eligibility `vettedPoolRef` to re-fetch the published vetted pool.
|
|
471
|
+
*
|
|
472
|
+
* This is a *recovery signal*, not a correctness gate, so it is NOT
|
|
473
|
+
* abort-on-outage: like `getSolverNetOperatorCount` / `getTaskPostCounts`, the
|
|
474
|
+
* `withFallback` wrapper routes it to the on-chain floor when the indexer is
|
|
475
|
+
* unavailable rather than propagating `DiscoveryUnavailableError`.
|
|
476
|
+
*/
|
|
477
|
+
getMostRecentTaskCidDigest(manifestCid: string): Promise<{
|
|
478
|
+
taskCidDigest: `0x${string}`;
|
|
479
|
+
taskId: string;
|
|
480
|
+
} | undefined>;
|
|
481
|
+
/**
|
|
482
|
+
* Returns the on-chain finalization snapshot for every task posted on the
|
|
483
|
+
* SolverNet identified by `manifestCid`, keyed by on-chain taskId (decimal
|
|
484
|
+
* string). Backed by the indexer `task` table (`finalized`, `refunded`,
|
|
485
|
+
* `claimWindowEnd`), joined via `manifestDigest === keccak256(manifestCid)`.
|
|
486
|
+
*
|
|
487
|
+
* This is a DISPLAY/advisory signal (the Launcher "Recent posted Tasks"
|
|
488
|
+
* status chip), NOT a correctness gate, so it is *tolerant*: like
|
|
489
|
+
* `getTaskPostCounts`, the `withFallback` wrapper routes it to the on-chain
|
|
490
|
+
* floor on an indexer outage rather than propagating
|
|
491
|
+
* `DiscoveryUnavailableError`. The on-chain floor returns an empty Map (it
|
|
492
|
+
* cannot cheaply reconstruct finalized state); callers map absence /
|
|
493
|
+
* floor-empty to `'unknown'` and MUST NEVER guess `'open'`.
|
|
494
|
+
*
|
|
495
|
+
* `claimWindowEnd` (unix seconds) may be null/undefined in the live indexer
|
|
496
|
+
* today (call-trace decode pending), so callers must treat a missing/invalid
|
|
497
|
+
* window as `'unknown'` rather than guessing `'open'`.
|
|
498
|
+
*/
|
|
499
|
+
getTaskStatuses(args: {
|
|
500
|
+
manifestCid: string;
|
|
501
|
+
}): Promise<Map<string, TaskStatusSnapshot>>;
|
|
353
502
|
}
|
|
354
503
|
/**
|
|
355
504
|
* Thrown by a DiscoveryAPI implementation when it is temporarily unable to
|
package/dist/discovery/types.js
CHANGED
|
@@ -9,6 +9,46 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Spec: spec/2026-05-11-discovery-api-and-shared-indexer.md §5.
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Block-window thresholds for `getTaskPostCounts`, from Base's ~2s blocktime:
|
|
14
|
+
* 1h≈1800, 6h≈10800, 24h≈43200 blocks back from the window head. Shared by the
|
|
15
|
+
* HTTP and on-chain backings so they bucket identically. The windows nest
|
|
16
|
+
* (h1 ⊆ h6 ⊆ h24); the 24h figure also bounds the on-chain scan range.
|
|
17
|
+
*/
|
|
18
|
+
export const TASK_POST_WINDOW_BLOCKS = { h1: 1_800, h6: 10_800, h24: 43_200 };
|
|
19
|
+
/**
|
|
20
|
+
* Bucket a stream of TaskCreated events into chain-wide + per-cid
|
|
21
|
+
* `TaskPostCounts`, shared by both DiscoveryAPI backings. `events` carry a
|
|
22
|
+
* `block` (number) and lowercased manifest `digest`; `cidByDigest` maps each
|
|
23
|
+
* requested digest to its cid. Counts nest (h1 ⊆ h6 ⊆ h24); events older than
|
|
24
|
+
* the 24h cut are ignored.
|
|
25
|
+
*/
|
|
26
|
+
export function bucketTaskPostCounts(windowEndBlock, windowEndTs, events, cidByDigest) {
|
|
27
|
+
const h1Cut = windowEndBlock - TASK_POST_WINDOW_BLOCKS.h1;
|
|
28
|
+
const h6Cut = windowEndBlock - TASK_POST_WINDOW_BLOCKS.h6;
|
|
29
|
+
const h24Cut = windowEndBlock - TASK_POST_WINDOW_BLOCKS.h24;
|
|
30
|
+
const blank = () => ({ h1: 0, h6: 0, h24: 0, windowEndBlock, windowEndTs });
|
|
31
|
+
const chain = blank();
|
|
32
|
+
const byCid = {};
|
|
33
|
+
for (const cid of cidByDigest.values())
|
|
34
|
+
byCid[cid] = blank();
|
|
35
|
+
const bucket = (target, block) => {
|
|
36
|
+
if (block < h24Cut)
|
|
37
|
+
return;
|
|
38
|
+
target.h24 += 1;
|
|
39
|
+
if (block >= h6Cut)
|
|
40
|
+
target.h6 += 1;
|
|
41
|
+
if (block >= h1Cut)
|
|
42
|
+
target.h1 += 1;
|
|
43
|
+
};
|
|
44
|
+
for (const e of events) {
|
|
45
|
+
bucket(chain, e.block);
|
|
46
|
+
const cid = cidByDigest.get(e.digest);
|
|
47
|
+
if (cid)
|
|
48
|
+
bucket(byCid[cid], e.block);
|
|
49
|
+
}
|
|
50
|
+
return { chain, byCid };
|
|
51
|
+
}
|
|
12
52
|
export class DiscoveryUnavailableError extends Error {
|
|
13
53
|
cause;
|
|
14
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkNH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAW,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,cAAsB,EACtB,WAAmB,EACnB,MAAgD,EAChD,WAAgC;IAEhC,MAAM,KAAK,GAAG,cAAc,GAAG,uBAAuB,CAAC,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,cAAc,GAAG,uBAAuB,CAAC,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,cAAc,GAAG,uBAAuB,CAAC,GAAG,CAAC;IAE5D,MAAM,KAAK,GAAG,GAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;IACtB,MAAM,KAAK,GAAmC,EAAE,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC;IAE7D,MAAM,MAAM,GAAG,CAAC,MAAsB,EAAE,KAAa,EAAQ,EAAE;QAC7D,IAAI,KAAK,GAAG,MAAM;YAAE,OAAO;QAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAChB,IAAI,KAAK,IAAI,KAAK;YAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,KAAK;YAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,GAAG;YAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAuUD,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAChC,KAAK,CAAW;IAClC;;;;OAIG;IACM,IAAI,CAA4B;IAEzC,YAAY,OAAe,EAAE,KAAe,EAAE,IAA+B;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -194,6 +194,30 @@ export function withFallback(primary, floor, opts = {}) {
|
|
|
194
194
|
// its tick rather than treating absent data as truth.
|
|
195
195
|
return primary.getInstanceClaimCounts(args);
|
|
196
196
|
},
|
|
197
|
+
getTaskPostCounts(args) {
|
|
198
|
+
// Supply signal (not a correctness gate): fall through to the floor on an
|
|
199
|
+
// indexer outage like getSolverNetOperatorCount. The on-chain floor
|
|
200
|
+
// reconstructs the windowed counts directly from TaskCreated logs, so a
|
|
201
|
+
// floor result is meaningful (unlike the abort-on-outage methods above).
|
|
202
|
+
return dispatch(() => primary.getTaskPostCounts(args), () => floor.getTaskPostCounts(args));
|
|
203
|
+
},
|
|
204
|
+
getMostRecentTaskCidDigest(manifestCid) {
|
|
205
|
+
// Recovery signal (not a correctness gate): fall through to the floor on
|
|
206
|
+
// an indexer outage like getTaskPostCounts. The on-chain floor reads the
|
|
207
|
+
// newest TaskCreated log for the manifest directly, so a floor result is
|
|
208
|
+
// meaningful (#957).
|
|
209
|
+
return dispatch(() => primary.getMostRecentTaskCidDigest(manifestCid), () => floor.getMostRecentTaskCidDigest(manifestCid));
|
|
210
|
+
},
|
|
211
|
+
getTaskStatuses(args) {
|
|
212
|
+
// DISPLAY/advisory signal (not a correctness gate): fall through to the
|
|
213
|
+
// floor on an indexer outage — the OPPOSITE of getInstanceClaimCounts.
|
|
214
|
+
// The floor's empty Map is the intended degraded result: the caller maps
|
|
215
|
+
// absence to 'unknown' (never guesses 'open'), so a tolerant fall-through
|
|
216
|
+
// is honest, not masking. Propagating the error here would needlessly
|
|
217
|
+
// break the launcher table's status column on a transient indexer blip
|
|
218
|
+
// (#579).
|
|
219
|
+
return dispatch(() => primary.getTaskStatuses(args), () => floor.getTaskStatuses(args));
|
|
220
|
+
},
|
|
197
221
|
};
|
|
198
222
|
}
|
|
199
223
|
//# sourceMappingURL=with-fallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-fallback.js","sourceRoot":"","sources":["../../src/discovery/with-fallback.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"with-fallback.js","sourceRoot":"","sources":["../../src/discovery/with-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { JinnConfig } from '../config.js';
|
|
2
|
+
import type { ProgressEnvelope } from '../observability/progress.js';
|
|
3
|
+
import { type ErrorEnvelope } from '../errors/envelope.js';
|
|
4
|
+
export declare class SetupBootstrapHalted extends Error {
|
|
5
|
+
readonly envelope: ErrorEnvelope;
|
|
6
|
+
constructor(envelope: ErrorEnvelope);
|
|
7
|
+
}
|
|
8
|
+
export declare function runFleetBootstrap(deps: {
|
|
9
|
+
config: JinnConfig;
|
|
10
|
+
password: string;
|
|
11
|
+
network: 'base' | 'base-sepolia';
|
|
12
|
+
emitProgress: (envelope: ProgressEnvelope) => void;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
masterAddress: `0x${string}`;
|
|
15
|
+
serviceIndex: number;
|
|
16
|
+
serviceId: number | null;
|
|
17
|
+
stakingAddress: `0x${string}` | null;
|
|
18
|
+
agentPrivateKey: `0x${string}`;
|
|
19
|
+
safeAddress: `0x${string}`;
|
|
20
|
+
mechAddress?: `0x${string}`;
|
|
21
|
+
/** ERC-8004 agent NFT id (decimal string). null if bootstrap mint not yet complete. */
|
|
22
|
+
agentId: string | null;
|
|
23
|
+
/** ERC-8004 IdentityRegistry contract used for the mint. null if unknown. */
|
|
24
|
+
identityRegistryAddress: `0x${string}` | null;
|
|
25
|
+
}>;
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { mkdirSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { FleetBootstrapper } from './bootstrap.js';
|
|
4
|
+
import { runLegacyAgentIdMigration } from './migrate-agent-id.js';
|
|
5
|
+
import { FleetStateStore } from './store.js';
|
|
6
|
+
import { isOperationalServiceStep, } from './types.js';
|
|
7
|
+
import { decryptMnemonic, walletPrivateKeyAtIndex } from './wallet.js';
|
|
8
|
+
import { buildEnvelope, emitEnvelope } from '../errors/envelope.js';
|
|
9
|
+
import { clearBootstrapError, persistBootstrapError } from '../errors/persisted-bootstrap-error.js';
|
|
10
|
+
import { emitStructured } from '../events/emitter.js';
|
|
11
|
+
import { keepSetupUiOnBootstrapError } from '../setup/halt-mode.js';
|
|
12
|
+
const STANDARD_SERVICE_PROGRESSION = [
|
|
13
|
+
'awaiting_stake',
|
|
14
|
+
'staked',
|
|
15
|
+
'mech_deployed',
|
|
16
|
+
'agent_registered',
|
|
17
|
+
'safe_binding_pending',
|
|
18
|
+
'complete',
|
|
19
|
+
];
|
|
20
|
+
const SELF_BOND_SERVICE_PROGRESSION = [
|
|
21
|
+
'awaiting_stake',
|
|
22
|
+
'service_created',
|
|
23
|
+
'service_activated',
|
|
24
|
+
'agents_registered',
|
|
25
|
+
'service_deployed',
|
|
26
|
+
'service_staked',
|
|
27
|
+
'mech_deployed',
|
|
28
|
+
'agent_registered',
|
|
29
|
+
'safe_binding_pending',
|
|
30
|
+
'complete',
|
|
31
|
+
];
|
|
32
|
+
/** §6.2 `bootstrap_incomplete` — `{ currentStep, nextStep }` from persisted fleet state. */
|
|
33
|
+
function bootstrapIncompleteSteps(state) {
|
|
34
|
+
const progression = state.staking_mode === 'self-bond'
|
|
35
|
+
? SELF_BOND_SERVICE_PROGRESSION
|
|
36
|
+
: STANDARD_SERVICE_PROGRESSION;
|
|
37
|
+
const byIndex = [...state.services].sort((a, b) => a.index - b.index);
|
|
38
|
+
const focus = byIndex.find(s => isOperationalServiceStep(s.step) && !s.safe_address) ??
|
|
39
|
+
byIndex.find(s => !isOperationalServiceStep(s.step)) ??
|
|
40
|
+
byIndex.find(s => s.step === 'safe_binding_pending') ??
|
|
41
|
+
byIndex[0];
|
|
42
|
+
if (!focus) {
|
|
43
|
+
return { currentStep: 'awaiting_service', nextStep: 'awaiting_stake' };
|
|
44
|
+
}
|
|
45
|
+
if (isOperationalServiceStep(focus.step) && !focus.safe_address) {
|
|
46
|
+
return { currentStep: 'complete', nextStep: 'bootstrap' };
|
|
47
|
+
}
|
|
48
|
+
const i = progression.indexOf(focus.step);
|
|
49
|
+
if (i === -1) {
|
|
50
|
+
return { currentStep: focus.step, nextStep: 'bootstrap' };
|
|
51
|
+
}
|
|
52
|
+
if (i < progression.length - 1) {
|
|
53
|
+
return { currentStep: focus.step, nextStep: progression[i + 1] };
|
|
54
|
+
}
|
|
55
|
+
return { currentStep: focus.step, nextStep: 'bootstrap' };
|
|
56
|
+
}
|
|
57
|
+
export class SetupBootstrapHalted extends Error {
|
|
58
|
+
envelope;
|
|
59
|
+
constructor(envelope) {
|
|
60
|
+
super(envelope.message);
|
|
61
|
+
this.envelope = envelope;
|
|
62
|
+
this.name = 'SetupBootstrapHalted';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// ── Bootstrap ───────────────────────────────────────────────────────────────
|
|
66
|
+
export async function runFleetBootstrap(deps) {
|
|
67
|
+
const { config, password: PASSWORD, network: NETWORK_CHAIN, emitProgress } = deps;
|
|
68
|
+
console.log('[main] Running fleet bootstrap...');
|
|
69
|
+
// A fresh bootstrap attempt clears any stale error breadcrumb. If this run
|
|
70
|
+
// hits the same failure, it'll be re-persisted below; if it succeeds (or
|
|
71
|
+
// proceeds past the previously-failed step), the panel returns to a clean
|
|
72
|
+
// state on the next /v1/bootstrap poll.
|
|
73
|
+
clearBootstrapError(config.earningDir);
|
|
74
|
+
// Persist the envelope to disk before emitEnvelope's process.exit fires,
|
|
75
|
+
// so /v1/bootstrap can surface it to the panel after the daemon has
|
|
76
|
+
// exited (operator restart → panel reload → error visible).
|
|
77
|
+
function failBootstrap(input) {
|
|
78
|
+
const envelope = buildEnvelope(input);
|
|
79
|
+
persistBootstrapError(envelope, config.earningDir);
|
|
80
|
+
if (keepSetupUiOnBootstrapError()) {
|
|
81
|
+
emitStructured({
|
|
82
|
+
kind: 'error',
|
|
83
|
+
message: envelope.message,
|
|
84
|
+
errorCode: envelope.code,
|
|
85
|
+
details: {
|
|
86
|
+
phase: 'bootstrap',
|
|
87
|
+
exitCode: envelope.exitCode,
|
|
88
|
+
...(envelope.details ?? {}),
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
console.error(`[main] Bootstrap halted (${envelope.code}); setup UI remains available. ` +
|
|
92
|
+
`Resolve the issue and run jinn run again.`);
|
|
93
|
+
throw new SetupBootstrapHalted(envelope);
|
|
94
|
+
}
|
|
95
|
+
emitEnvelope(input);
|
|
96
|
+
// Unreachable in production (emitEnvelope exits); satisfies `never`.
|
|
97
|
+
throw new Error('unreachable');
|
|
98
|
+
}
|
|
99
|
+
const bootstrapper = new FleetBootstrapper({
|
|
100
|
+
earningDir: config.earningDir,
|
|
101
|
+
chain: NETWORK_CHAIN,
|
|
102
|
+
rpcUrl: config.rpcUrl,
|
|
103
|
+
stakingMode: config.stakingMode,
|
|
104
|
+
targetServices: config.targetServices,
|
|
105
|
+
testnetL2DeploymentPath: config.testnetL2DeploymentPath,
|
|
106
|
+
testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
|
|
107
|
+
testnetMechDeploymentPath: config.testnetMechDeploymentPath,
|
|
108
|
+
testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
|
|
109
|
+
debug: config.debug,
|
|
110
|
+
masterEthDailyEstimateWei: config.masterEthDailyEstimateWei,
|
|
111
|
+
minEoaGasWei: config.minEoaGasWei,
|
|
112
|
+
minSafeEthWei: config.minSafeEthWei,
|
|
113
|
+
pollIntervalMs: config.pollIntervalMs,
|
|
114
|
+
autoTestnetFaucet: process.env['JINN_AUTO_TESTNET_FAUCET'] === '1',
|
|
115
|
+
});
|
|
116
|
+
// Funding poll: stay up while waiting for the operator to fund the wallet.
|
|
117
|
+
// The setup-mode API server is already running; the panel renders the
|
|
118
|
+
// funding card and auto-advances when funds land. Daemon-side, we poll
|
|
119
|
+
// bootstrap on a 15s tick and only escalate (exit) if a non-funding error
|
|
120
|
+
// occurs or the configured timeout elapses. Each tick re-runs the full
|
|
121
|
+
// bootstrap state machine — completed steps are no-ops, so this is safe.
|
|
122
|
+
// Testnet faucet funding is panel-driven: bootstrap reports the funding gate,
|
|
123
|
+
// and the operator clicks the funding action before this loop can advance.
|
|
124
|
+
const FUNDING_POLL_INTERVAL_MS = 15_000;
|
|
125
|
+
const fundingTimeoutMs = (() => {
|
|
126
|
+
const raw = process.env['JINN_FUNDING_TIMEOUT_MS'];
|
|
127
|
+
if (!raw)
|
|
128
|
+
return Number.POSITIVE_INFINITY;
|
|
129
|
+
const n = Number.parseInt(raw, 10);
|
|
130
|
+
return Number.isFinite(n) && n > 0 ? n : Number.POSITIVE_INFINITY;
|
|
131
|
+
})();
|
|
132
|
+
emitProgress({
|
|
133
|
+
type: 'progress',
|
|
134
|
+
phase: 'bootstrap',
|
|
135
|
+
step: 'advance_state_machine',
|
|
136
|
+
estimatedWaitMs: 60_000,
|
|
137
|
+
});
|
|
138
|
+
const fundingStartedAt = Date.now();
|
|
139
|
+
let result;
|
|
140
|
+
let lastFundingMessage = '';
|
|
141
|
+
const fundingGatePath = join(config.earningDir, 'bootstrap-funding.json');
|
|
142
|
+
const persistFundingGate = (funding) => {
|
|
143
|
+
mkdirSync(config.earningDir, { recursive: true, mode: 0o700 });
|
|
144
|
+
writeFileSync(fundingGatePath, `${JSON.stringify({
|
|
145
|
+
schemaVersion: 1,
|
|
146
|
+
generatedAt: new Date().toISOString(),
|
|
147
|
+
...funding,
|
|
148
|
+
}, null, 2)}\n`, { mode: 0o600 });
|
|
149
|
+
};
|
|
150
|
+
const clearFundingGate = () => {
|
|
151
|
+
try {
|
|
152
|
+
unlinkSync(fundingGatePath);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// best-effort: absent/stale funding gate should not affect bootstrap
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
// eslint-disable-next-line no-constant-condition
|
|
159
|
+
while (true) {
|
|
160
|
+
result = await bootstrapper.ensureStage1And2(PASSWORD);
|
|
161
|
+
if (!result.funding) {
|
|
162
|
+
clearFundingGate();
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
persistFundingGate(result.funding);
|
|
166
|
+
// Emit a structured event so the panel's Visibility region shows the gate.
|
|
167
|
+
// Dedupe by message to avoid spamming the ring buffer on each poll.
|
|
168
|
+
const fundingMsg = result.message ?? 'awaiting funding';
|
|
169
|
+
if (fundingMsg !== lastFundingMessage) {
|
|
170
|
+
emitStructured({
|
|
171
|
+
kind: 'fleet',
|
|
172
|
+
message: fundingMsg,
|
|
173
|
+
details: {
|
|
174
|
+
phase: 'awaiting_funding',
|
|
175
|
+
role: 'master',
|
|
176
|
+
address: result.funding.master_address,
|
|
177
|
+
asset: 'native',
|
|
178
|
+
needWei: result.funding.eth_required,
|
|
179
|
+
haveWei: result.funding.eth_balance,
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
// Mirror the structured event to NDJSON progress for --json-progress
|
|
183
|
+
// consumers (CI, agents). Same dedup gate so we don't spam stdout.
|
|
184
|
+
emitProgress({
|
|
185
|
+
type: 'progress',
|
|
186
|
+
phase: 'bootstrap',
|
|
187
|
+
step: 'awaiting_funding',
|
|
188
|
+
blocking: true,
|
|
189
|
+
nextAction: 'Fund the address shown in addresses.fundingAddress, then wait for automatic retry.',
|
|
190
|
+
addresses: { fundingAddress: result.funding.master_address },
|
|
191
|
+
estimatedWaitMs: 1_800_000,
|
|
192
|
+
});
|
|
193
|
+
lastFundingMessage = fundingMsg;
|
|
194
|
+
}
|
|
195
|
+
const elapsed = Date.now() - fundingStartedAt;
|
|
196
|
+
if (elapsed >= fundingTimeoutMs) {
|
|
197
|
+
failBootstrap({
|
|
198
|
+
code: 'funding_required',
|
|
199
|
+
message: `${result.message} (timeout after ${Math.round(elapsed / 1000)}s)`,
|
|
200
|
+
hint: 'Fund the listed address and re-run this command.',
|
|
201
|
+
exampleCli: 'jinn fund-requirements --json',
|
|
202
|
+
details: {
|
|
203
|
+
// jinn-mono-hjex.6: structured envelope so SPA can render the
|
|
204
|
+
// specific address + amount instead of a prose disjunction.
|
|
205
|
+
category: 'insufficient_funds',
|
|
206
|
+
step: 'awaiting_funding',
|
|
207
|
+
address: result.funding.master_address,
|
|
208
|
+
requiredWei: result.funding.eth_required,
|
|
209
|
+
haveWei: result.funding.eth_balance,
|
|
210
|
+
// Legacy aliases kept for any external consumers that read these.
|
|
211
|
+
role: 'master',
|
|
212
|
+
asset: 'native',
|
|
213
|
+
needWei: result.funding.eth_required,
|
|
214
|
+
},
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
console.log(`[main] Awaiting funding... (${Math.round(elapsed / 1000)}s elapsed; ` +
|
|
218
|
+
`will retry in ${FUNDING_POLL_INTERVAL_MS / 1000}s)`);
|
|
219
|
+
await new Promise((r) => setTimeout(r, FUNDING_POLL_INTERVAL_MS));
|
|
220
|
+
}
|
|
221
|
+
if (!result.ok) {
|
|
222
|
+
failBootstrap({
|
|
223
|
+
code: 'fatal',
|
|
224
|
+
message: result.message,
|
|
225
|
+
hint: 'Bootstrap failed before the fleet reached a runnable state.',
|
|
226
|
+
details: {
|
|
227
|
+
cause: result.message,
|
|
228
|
+
// jinn-mono-hjex.6: propagate structured category from the bootstrapper
|
|
229
|
+
// so the SPA can render category-specific UI (e.g. funding shortfall).
|
|
230
|
+
...(result.errorCategory !== undefined ? { category: result.errorCategory } : {}),
|
|
231
|
+
// Preserve the raw underlying error so a misclassified summary can
|
|
232
|
+
// be diagnosed without re-running with JINN_DEBUG. See jinn-mono-jz9f.
|
|
233
|
+
...(result.rawErrorMessage && result.rawErrorMessage !== result.message
|
|
234
|
+
? { rawErrorMessage: result.rawErrorMessage }
|
|
235
|
+
: {}),
|
|
236
|
+
// jinn-mono-hjex reviewer fix: propagate tx hash so the SPA can render
|
|
237
|
+
// a block-explorer link for failed on-chain revert transactions.
|
|
238
|
+
...(result.txHash != null ? { txHash: result.txHash } : {}),
|
|
239
|
+
},
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
// Legacy migration (jinn-mono-jgp): backfill `agent_id` on `complete`
|
|
243
|
+
// services that pre-date j07. Idempotent + per-service failure-isolated;
|
|
244
|
+
// a failure here does not abort daemon startup, but we surface counts so
|
|
245
|
+
// operators notice. Disabled via `runLegacyMigrations: false` /
|
|
246
|
+
// JINN_RUN_LEGACY_MIGRATIONS=0 — operators can run `jinn migrate-agent-id`
|
|
247
|
+
// explicitly instead.
|
|
248
|
+
let state = result.fleet_state;
|
|
249
|
+
if (config.runLegacyMigrations) {
|
|
250
|
+
try {
|
|
251
|
+
const migration = await runLegacyAgentIdMigration({
|
|
252
|
+
earningDir: config.earningDir,
|
|
253
|
+
network: NETWORK_CHAIN,
|
|
254
|
+
rpcUrl: config.rpcUrl,
|
|
255
|
+
password: PASSWORD,
|
|
256
|
+
testnetL2DeploymentPath: config.testnetL2DeploymentPath,
|
|
257
|
+
testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
|
|
258
|
+
testnetMechDeploymentPath: config.testnetMechDeploymentPath,
|
|
259
|
+
testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
|
|
260
|
+
});
|
|
261
|
+
if (migration.migrated.length > 0 || migration.failed.length > 0) {
|
|
262
|
+
console.log(`[main] Legacy agent_id migration: migrated=${migration.migrated.length} ` +
|
|
263
|
+
`skipped=${migration.skipped.length} failed=${migration.failed.length}`);
|
|
264
|
+
for (const f of migration.failed) {
|
|
265
|
+
console.log(`[main] service ${f.service.index} (agent ${f.service.agent_address}): ${f.error}`);
|
|
266
|
+
}
|
|
267
|
+
// Reload state so downstream wiring (agent_id, identityRegistry)
|
|
268
|
+
// sees the migrated rows.
|
|
269
|
+
state = await new FleetStateStore(config.earningDir).load(NETWORK_CHAIN);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
274
|
+
console.error(`[main] Legacy agent_id migration failed (non-fatal): ${message}`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
// Use the first operational service for the daemon. `safe_binding_pending`
|
|
278
|
+
// means staking/mech are live; only the ERC-8004 Safe→agent metadata bind
|
|
279
|
+
// is still retrying.
|
|
280
|
+
const firstComplete = state.services.find(s => isOperationalServiceStep(s.step));
|
|
281
|
+
if (!firstComplete || !firstComplete.safe_address) {
|
|
282
|
+
failBootstrap({
|
|
283
|
+
code: 'bootstrap_incomplete',
|
|
284
|
+
message: 'Bootstrap completed but no service is ready.',
|
|
285
|
+
hint: 'Re-run to continue the state machine toward a running fleet.',
|
|
286
|
+
exampleCli: 'jinn bootstrap --json',
|
|
287
|
+
details: bootstrapIncompleteSteps(state),
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
// Derive agent private key from mnemonic
|
|
291
|
+
const store = new FleetStateStore(config.earningDir);
|
|
292
|
+
const mnemonic = await decryptMnemonic(await store.loadMnemonicKeystore(), PASSWORD);
|
|
293
|
+
const agentPrivateKey = walletPrivateKeyAtIndex(mnemonic, firstComplete.index);
|
|
294
|
+
console.log(`[main] Fleet bootstrap complete.`);
|
|
295
|
+
console.log(` Master: ${state.master_address}`);
|
|
296
|
+
console.log(` Services: ${state.services.filter(s => isOperationalServiceStep(s.step)).length}/${config.targetServices}`);
|
|
297
|
+
console.log(` Active: service ${firstComplete.service_id} (agent ${firstComplete.agent_address})`);
|
|
298
|
+
if (firstComplete.mech_address) {
|
|
299
|
+
console.log(` Mech: ${firstComplete.mech_address}`);
|
|
300
|
+
}
|
|
301
|
+
return {
|
|
302
|
+
masterAddress: state.master_address,
|
|
303
|
+
serviceIndex: firstComplete.index,
|
|
304
|
+
serviceId: firstComplete.service_id ?? null,
|
|
305
|
+
stakingAddress: firstComplete.staking_address ? firstComplete.staking_address : null,
|
|
306
|
+
agentPrivateKey: agentPrivateKey,
|
|
307
|
+
safeAddress: firstComplete.safe_address,
|
|
308
|
+
mechAddress: firstComplete.mech_address ? firstComplete.mech_address : undefined,
|
|
309
|
+
agentId: firstComplete.agent_id ?? null,
|
|
310
|
+
identityRegistryAddress: firstComplete.identity_registry_address
|
|
311
|
+
? firstComplete.identity_registry_address
|
|
312
|
+
: null,
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=bootstrap-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap-run.js","sourceRoot":"","sources":["../../src/earning/bootstrap-run.ts"],"names":[],"mappings":"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"}
|