@jinn-network/client 0.1.8 → 0.1.9-canary.01623b98
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 +129 -54
- 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 +49 -17
- package/dist/api/gather-status.js +94 -530
- 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/run-outcome.d.ts +49 -0
- package/dist/api/run-outcome.js +65 -0
- package/dist/api/run-outcome.js.map +1 -0
- package/dist/api/server.d.ts +6 -16
- package/dist/api/server.js +36 -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 +12 -81
- 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 +21 -2
- package/dist/api/task-runs-build.js +27 -7
- package/dist/api/task-runs-build.js.map +1 -1
- package/dist/bin/jinn-distill-mcp.js +813 -0
- package/dist/bin/jinn-layer.js +14057 -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.d.ts +6 -0
- package/dist/cli/commands/solver-nets.js +177 -0
- package/dist/cli/commands/solver-nets.js.map +1 -1
- package/dist/cli/commands/solver-plugins.js +2 -2
- package/dist/cli/commands/solver-plugins.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 +235 -541
- package/dist/config.js +278 -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 +22 -10
- package/dist/daemon/daemon.js +133 -43
- 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 +10 -0
- package/dist/daemon/eviction-loop.js +22 -3
- package/dist/daemon/eviction-loop.js.map +1 -1
- package/dist/daemon/harvest-loop.d.ts +63 -0
- package/dist/daemon/harvest-loop.js +449 -0
- package/dist/daemon/harvest-loop.js.map +1 -0
- 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 +95 -0
- package/dist/daemon/loop-heartbeat.js +80 -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-CwclFsAm.js +95 -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 +459 -26
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.js +185 -10
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +188 -0
- package/dist/discovery/types.js +40 -0
- package/dist/discovery/types.js.map +1 -1
- package/dist/discovery/with-fallback.js +33 -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 +124 -223
- 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/master-gas.d.ts +10 -0
- package/dist/earning/master-gas.js +11 -0
- package/dist/earning/master-gas.js.map +1 -0
- 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} +25 -23
- 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 +9 -9
- 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/erc8004/reputation.js +16 -12
- package/dist/erc8004/reputation.js.map +1 -1
- package/dist/erc8004/validation.js +5 -4
- package/dist/erc8004/validation.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 +40 -1
- package/dist/harnesses/engine/engine.js +100 -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 +9 -6
- 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 +93 -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 +16 -2
- 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 +50 -6
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +505 -35
- 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/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.d.ts +37 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.js +59 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/routing-task-row-fetcher.js.map +1 -0
- 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 +236 -569
- 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 +1 -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/arm-homes.d.ts +39 -0
- package/dist/pilot/arm-homes.js +104 -0
- package/dist/pilot/arm-homes.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 +26 -0
- package/dist/pilot/instance.js +53 -0
- package/dist/pilot/instance.js.map +1 -0
- package/dist/pilot/pipeline.d.ts +17 -0
- package/dist/pilot/pipeline.js +35 -0
- package/dist/pilot/pipeline.js.map +1 -0
- package/dist/pilot/repo.d.ts +37 -0
- package/dist/pilot/repo.js +65 -0
- package/dist/pilot/repo.js.map +1 -0
- package/dist/pilot/resume.d.ts +101 -0
- package/dist/pilot/resume.js +204 -0
- package/dist/pilot/resume.js.map +1 -0
- package/dist/pilot/solve.d.ts +23 -0
- package/dist/pilot/solve.js +37 -0
- package/dist/pilot/solve.js.map +1 -0
- package/dist/pilot/tally.d.ts +42 -0
- package/dist/pilot/tally.js +100 -0
- package/dist/pilot/tally.js.map +1 -0
- package/dist/pilot/task-selection.d.ts +27 -0
- package/dist/pilot/task-selection.js +112 -0
- package/dist/pilot/task-selection.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/plugins/resolvers.js +7 -4
- package/dist/plugins/resolvers.js.map +1 -1
- package/dist/plugins/types.d.ts +8 -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-evaluator.bundle.v1.patch +79 -0
- 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-commit-echo-git.d.ts +46 -0
- package/dist/solver-types/_swe-rebench-v2-commit-echo-git.js +192 -0
- package/dist/solver-types/_swe-rebench-v2-commit-echo-git.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-commit-echo.d.ts +57 -0
- package/dist/solver-types/_swe-rebench-v2-commit-echo.js +57 -0
- package/dist/solver-types/_swe-rebench-v2-commit-echo.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-differential-admission.d.ts +395 -0
- package/dist/solver-types/_swe-rebench-v2-differential-admission.js +231 -0
- package/dist/solver-types/_swe-rebench-v2-differential-admission.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-empirical-tests.d.ts +47 -0
- package/dist/solver-types/_swe-rebench-v2-empirical-tests.js +67 -0
- package/dist/solver-types/_swe-rebench-v2-empirical-tests.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-escrow.d.ts +2 -0
- package/dist/solver-types/_swe-rebench-v2-escrow.js +13 -0
- package/dist/solver-types/_swe-rebench-v2-escrow.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-guards.d.ts +42 -0
- package/dist/solver-types/_swe-rebench-v2-guards.js +111 -0
- package/dist/solver-types/_swe-rebench-v2-guards.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-harvest-state.d.ts +191 -0
- package/dist/solver-types/_swe-rebench-v2-harvest-state.js +349 -0
- package/dist/solver-types/_swe-rebench-v2-harvest-state.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-harvest.d.ts +92 -0
- package/dist/solver-types/_swe-rebench-v2-harvest.js +456 -0
- package/dist/solver-types/_swe-rebench-v2-harvest.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-hunk-echo.d.ts +28 -0
- package/dist/solver-types/_swe-rebench-v2-hunk-echo.js +32 -0
- package/dist/solver-types/_swe-rebench-v2-hunk-echo.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.d.ts +16 -0
- package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.js +18 -0
- package/dist/solver-types/_swe-rebench-v2-lookup-tripwire.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-mint-cli.d.ts +73 -0
- package/dist/solver-types/_swe-rebench-v2-mint-cli.js +388 -0
- package/dist/solver-types/_swe-rebench-v2-mint-cli.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.d.ts +25 -0
- package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.js +101 -0
- package/dist/solver-types/_swe-rebench-v2-minted-environment-verifier.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-minted-pool.d.ts +144 -0
- package/dist/solver-types/_swe-rebench-v2-minted-pool.js +353 -0
- package/dist/solver-types/_swe-rebench-v2-minted-pool.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-substrate.d.ts +11 -0
- package/dist/solver-types/_swe-rebench-v2-substrate.js +24 -0
- package/dist/solver-types/_swe-rebench-v2-substrate.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-synthetic-claim.d.ts +9 -0
- package/dist/solver-types/_swe-rebench-v2-synthetic-claim.js +16 -0
- package/dist/solver-types/_swe-rebench-v2-synthetic-claim.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +88 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +202 -14
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-yield-report-data.d.ts +5 -0
- package/dist/solver-types/_swe-rebench-v2-yield-report-data.js +16 -0
- package/dist/solver-types/_swe-rebench-v2-yield-report-data.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-yield.d.ts +51 -0
- package/dist/solver-types/_swe-rebench-v2-yield.js +53 -0
- package/dist/solver-types/_swe-rebench-v2-yield.js.map +1 -0
- 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/slates/held-out-slate.swe-rebench-v2.v3.json +34 -0
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v3.quality-screen.json +186 -0
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v3.screening-report.json +488 -0
- package/dist/solver-types/solver-type.d.ts +8 -0
- package/dist/solver-types/swe-rebench-v2-auto.d.ts +13 -0
- package/dist/solver-types/swe-rebench-v2-auto.js +36 -1
- package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2.d.ts +2 -0
- package/dist/solver-types/swe-rebench-v2.js +153 -12
- 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/task-creator/environment/adapters.d.ts +139 -0
- package/dist/task-creator/environment/adapters.js +446 -0
- package/dist/task-creator/environment/adapters.js.map +1 -0
- package/dist/task-creator/environment/build.d.ts +5 -0
- package/dist/task-creator/environment/build.js +53 -0
- package/dist/task-creator/environment/build.js.map +1 -0
- package/dist/task-creator/environment/contracts.d.ts +1338 -0
- package/dist/task-creator/environment/contracts.js +207 -0
- package/dist/task-creator/environment/contracts.js.map +1 -0
- package/dist/task-creator/environment/github.d.ts +25 -0
- package/dist/task-creator/environment/github.js +67 -0
- package/dist/task-creator/environment/github.js.map +1 -0
- package/dist/task-creator/environment/interfaces.d.ts +60 -0
- package/dist/task-creator/environment/interfaces.js +3 -0
- package/dist/task-creator/environment/interfaces.js.map +1 -0
- package/dist/task-creator/environment/jinn-differential-policy.d.ts +22 -0
- package/dist/task-creator/environment/jinn-differential-policy.js +73 -0
- package/dist/task-creator/environment/jinn-differential-policy.js.map +1 -0
- package/dist/task-creator/environment/policy.d.ts +38 -0
- package/dist/task-creator/environment/policy.js +51 -0
- package/dist/task-creator/environment/policy.js.map +1 -0
- package/dist/task-creator/environment/publication.d.ts +39 -0
- package/dist/task-creator/environment/publication.js +139 -0
- package/dist/task-creator/environment/publication.js.map +1 -0
- package/dist/task-creator/environment/publish-cli.d.ts +427 -0
- package/dist/task-creator/environment/publish-cli.js +180 -0
- package/dist/task-creator/environment/publish-cli.js.map +1 -0
- package/dist/task-creator/environment/recipes.d.ts +19 -0
- package/dist/task-creator/environment/recipes.js +122 -0
- package/dist/task-creator/environment/recipes.js.map +1 -0
- package/dist/task-creator/environment/resolver.d.ts +53 -0
- package/dist/task-creator/environment/resolver.js +57 -0
- package/dist/task-creator/environment/resolver.js.map +1 -0
- package/dist/task-creator/proofs/differential-receipt-bound-proof.d.ts +27 -0
- package/dist/task-creator/proofs/differential-receipt-bound-proof.js +86 -0
- package/dist/task-creator/proofs/differential-receipt-bound-proof.js.map +1 -0
- package/dist/task-creator/proofs/ipfs-cid.d.ts +7 -0
- package/dist/task-creator/proofs/ipfs-cid.js +98 -0
- package/dist/task-creator/proofs/ipfs-cid.js.map +1 -0
- package/dist/task-creator/proofs/live-proof.d.ts +99 -0
- package/dist/task-creator/proofs/live-proof.js +419 -0
- package/dist/task-creator/proofs/live-proof.js.map +1 -0
- package/dist/task-creator/proofs/public-repo-fixtures.d.ts +53 -0
- package/dist/task-creator/proofs/public-repo-fixtures.js +93 -0
- package/dist/task-creator/proofs/public-repo-fixtures.js.map +1 -0
- package/dist/task-creator/proofs/vitest-json-fixture.d.ts +40 -0
- package/dist/task-creator/proofs/vitest-json-fixture.js +115 -0
- package/dist/task-creator/proofs/vitest-json-fixture.js.map +1 -0
- 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 +9 -1
- package/dist/trajectory/schema.js +5 -1
- package/dist/trajectory/schema.js.map +1 -1
- package/dist/trajectory/scrub/build.d.ts +49 -0
- package/dist/trajectory/scrub/build.js +89 -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/mineable-trace-gate.d.ts +9 -0
- package/dist/trajectory/scrub/mineable-trace-gate.js +33 -0
- package/dist/trajectory/scrub/mineable-trace-gate.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 +45 -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 +9 -1
- package/dist/types/session-provenance.js +5 -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 +34 -6
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +28 -5
- package/dist/vendor/@jinn-network/sdk/package.json +9 -1
- package/docker-compose.yml +3 -2
- package/package.json +58 -29
- 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
package/CONTRIBUTING.md
CHANGED
|
@@ -74,7 +74,7 @@ The `files` field in `package.json` ensures only `dist/`, `deployments/`, `READM
|
|
|
74
74
|
|
|
75
75
|
## Releases
|
|
76
76
|
|
|
77
|
-
Use [RELEASING.md](./RELEASING.md) for the package bootstrap publish, npm trusted-publishing setup, canary/stable release flow, the fork-based operator gate (`yarn release:operator-gate`), the
|
|
77
|
+
Use [RELEASING.md](./RELEASING.md) for the package bootstrap publish, npm trusted-publishing setup, canary/stable release flow, the fork-based operator gate (`yarn release:operator-gate`), the OLAS rails smoke gate (`yarn release:olas-rails-smoke`), the contracts release gate (`cd ../contracts && yarn test && forge install foundry-rs/forge-std --no-git && forge test --match-contract Invariant`), and the manual Docker-first real testnet acceptance gate (`yarn release:testnet-acceptance`) that must pass on the exact stable release commit. The dedicated Docker acceptance environment and evidence expectations are documented in [TESTNET_ACCEPTANCE.md](./TESTNET_ACCEPTANCE.md).
|
|
78
78
|
|
|
79
79
|
## Updating deployment artifacts
|
|
80
80
|
|
|
@@ -98,7 +98,7 @@ This copies the 4 deployment JSON files from `contracts/` into `client/deploymen
|
|
|
98
98
|
| `yarn staking` | Earning bootstrap validation on Anvil fork |
|
|
99
99
|
| `yarn pack:smoke` | Pack tarball and run smoke tests |
|
|
100
100
|
| `yarn release:operator-gate` | Run the stable-release operator gate (`staking` then `e2e`) |
|
|
101
|
-
| `yarn release:
|
|
101
|
+
| `yarn release:olas-rails-smoke` | Dry-run by default: writes a prediction.v1 smoke spec and evidence plan; pass `--execute` for live Base Sepolia OLAS rails proof |
|
|
102
102
|
| `cd ../contracts && yarn test && forge install foundry-rs/forge-std --no-git && forge test --match-contract Invariant` | Run the contracts release gate |
|
|
103
103
|
| `yarn release:testnet-acceptance` | Run the manual Docker-first real testnet acceptance harness |
|
|
104
104
|
| `yarn setup:testnet-acceptance-operator` | First-time Docker acceptance setup + bootstrap/funding helper (`TESTNET_ACCEPTANCE.md`) |
|
package/README.md
CHANGED
|
@@ -184,6 +184,12 @@ returns `waiting_for_external_action` with the URL and the exact command to
|
|
|
184
184
|
rerun next. Agents with the `jinn-operator` skill installed know how to walk an
|
|
185
185
|
operator through a SolverNet automatically.
|
|
186
186
|
|
|
187
|
+
Each Harness reads its **own** auth store (the daemon only forwards an
|
|
188
|
+
allowlisted set of env vars — it does not hold your provider keys). For the
|
|
189
|
+
per-harness auth store, the canonical rotate command/file, and why `client/.env`
|
|
190
|
+
must not be used to set provider keys at runtime, see
|
|
191
|
+
[`docs/operator/rotating-harness-keys.md`](../docs/operator/rotating-harness-keys.md).
|
|
192
|
+
|
|
187
193
|
**Safety net:** before spending gas on a claim, the daemon checks whether the
|
|
188
194
|
responsible Harness is actually ready. If a portfolio.v0 request arrives and your
|
|
189
195
|
api-wallet isn't approved, the daemon records the Task as FAILED locally
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"network": "baseSepolia",
|
|
3
3
|
"chainId": 84532,
|
|
4
4
|
"deployer": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
5
|
-
"deployedAt": "2026-
|
|
5
|
+
"deployedAt": "2026-06-30T16:18:56.618Z",
|
|
6
6
|
"config": {
|
|
7
7
|
"timingProfile": "fast-test",
|
|
8
8
|
"fee": 0,
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"mechMarketplace": "0xD3233FdAaB51E9775f6bFCE8242B02C181D7c0e7",
|
|
19
19
|
"balanceTracker": "0xDbeEF1947F7BB3657f984aA6b230a0ca6578229D",
|
|
20
20
|
"mechFactory": "0x206183F35B2450Ca15A906BB923E74d945F78d67",
|
|
21
|
-
"jinnRouter": "
|
|
21
|
+
"jinnRouter": "0x6059Dd37eB0FD3a55BCe7A3C1fA86AB84F2d9675",
|
|
22
22
|
"serviceRegistry": "0x31D3202d8744B16A120117A053459DDFAE93c855",
|
|
23
23
|
"activityChecker": "0x0e1B5f264F4FAdcFAA950fb00c58d9A39C040f70",
|
|
24
|
-
"stakingToken": "
|
|
24
|
+
"stakingToken": "0x4DB0Fcb877CCd92B6AeEdAaD561DaccB0CCc7E39"
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"network": "baseSepolia",
|
|
3
3
|
"chainId": 84532,
|
|
4
4
|
"deployer": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
5
|
-
"deployedAt": "2026-
|
|
5
|
+
"deployedAt": "2026-06-30T16:18:56.618Z",
|
|
6
6
|
"config": {
|
|
7
7
|
"l2Jinn": "0xAB9a01cd4A379e36006ec6df2960CF39EF79df63",
|
|
8
|
-
"stakingContract": "
|
|
8
|
+
"stakingContract": "0x4DB0Fcb877CCd92B6AeEdAaD561DaccB0CCc7E39",
|
|
9
9
|
"l1DepositProcessor": "0x494FBcd686C895fD6265e852086B53Abf15cb076",
|
|
10
10
|
"l1DistributorProxy": "0x12F14eF5b4881a932BE3F334599cB9473aBE987A",
|
|
11
11
|
"l1TreasuryProxy": "0xa87c117cB54d9C6C8a8e0aA0b336a1125E485Cb7",
|
|
@@ -31,5 +31,25 @@
|
|
|
31
31
|
"stakingManagerImpl": "0xFb0B086D3f7C03f1F671C6ccD5D16CC779B25Af9",
|
|
32
32
|
"stakingManager": "0x5edCd012C581b946E06a74e1906a5f29D588403e",
|
|
33
33
|
"baseStakingProcessorL2": "0x23a063f600e9938405D0367a137f1bE2F0B4D0D2"
|
|
34
|
-
}
|
|
34
|
+
},
|
|
35
|
+
"rewires": [
|
|
36
|
+
{
|
|
37
|
+
"rewiredAt": "2026-06-29T14:53:46.226Z",
|
|
38
|
+
"deployer": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
39
|
+
"legacyStakingProxy": "0xf358b5c1ac4ddc4e807b5baf008826bf193eab3b",
|
|
40
|
+
"freshStakingProxy": "0x3A14c71e94F3d38A6BE4319808B259FbFb47B86f",
|
|
41
|
+
"activityChecker": "0x0e1B5f264F4FAdcFAA950fb00c58d9A39C040f70",
|
|
42
|
+
"packedConfig": "2199023257600001",
|
|
43
|
+
"fundWei": "100000000000000000000"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"rewiredAt": "2026-06-30T16:18:56.618Z",
|
|
47
|
+
"deployer": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
48
|
+
"legacyStakingProxy": "0x3A14c71e94F3d38A6BE4319808B259FbFb47B86f",
|
|
49
|
+
"freshStakingProxy": "0x4DB0Fcb877CCd92B6AeEdAaD561DaccB0CCc7E39",
|
|
50
|
+
"activityChecker": "0x0e1B5f264F4FAdcFAA950fb00c58d9A39C040f70",
|
|
51
|
+
"packedConfig": "2199023257600001",
|
|
52
|
+
"fundWei": "100000000000000000000"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
35
55
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"chainId": 84532,
|
|
4
4
|
"deployer": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
5
5
|
"owner": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
6
|
-
"deployedAt": "2026-
|
|
6
|
+
"deployedAt": "2026-06-29T14:52:46.003Z",
|
|
7
7
|
"config": {
|
|
8
8
|
"timingProfile": "fast-test",
|
|
9
9
|
"mechMarketplaceSource": "deployment-phase1b-mech-baseSepolia-fast.json",
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"coordinatorInitialOwner": "0x15e78734481bD31F6e183dad05225505a45ACd07"
|
|
12
12
|
},
|
|
13
13
|
"contracts": {
|
|
14
|
-
"taskCoordinatorImpl": "
|
|
15
|
-
"taskCoordinator": "
|
|
16
|
-
"jinnRouterV3Impl": "
|
|
17
|
-
"jinnRouterV3": "
|
|
14
|
+
"taskCoordinatorImpl": "0xC756D4A5b7a6a7C2F74Fa4Ce4fd84E7b82D223ca",
|
|
15
|
+
"taskCoordinator": "0x8a34793e10595c89B7e41Cc7Ff0F76850F44AD98",
|
|
16
|
+
"jinnRouterV3Impl": "0x2521e932B2508B2589cCc35F8cfB8B29f0e086D5",
|
|
17
|
+
"jinnRouterV3": "0x6f47863Ac4120A5a97Af224a5e30C3Ec2c9eA247",
|
|
18
18
|
"mechMarketplace": "0xD3233FdAaB51E9775f6bFCE8242B02C181D7c0e7",
|
|
19
19
|
"activityChecker": "0x0e1B5f264F4FAdcFAA950fb00c58d9A39C040f70",
|
|
20
|
-
"activityCheckerImpl": "
|
|
20
|
+
"activityCheckerImpl": "0x3f061273348264b2a1Ae584eCC614185748832a8"
|
|
21
21
|
},
|
|
22
22
|
"upgrades": [
|
|
23
23
|
{
|
|
@@ -33,6 +33,34 @@
|
|
|
33
33
|
"jinnRouterV3Impl": "0x5f3E1e26Fd26b7A6BE4171976e555d62Bd3dcFC0",
|
|
34
34
|
"activityCheckerImpl": "0x9e573CFbbc52729528199005A9F3d274FE7052C4"
|
|
35
35
|
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"upgradedAt": "2026-05-06T13:41:14.651Z",
|
|
39
|
+
"deployer": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
40
|
+
"previous": {
|
|
41
|
+
"taskCoordinatorImpl": "0x830bFdBdA48D599e414c51888c8CDA6c84e67B18",
|
|
42
|
+
"jinnRouterV3Impl": "0x5f3E1e26Fd26b7A6BE4171976e555d62Bd3dcFC0",
|
|
43
|
+
"activityCheckerImpl": "0x9e573CFbbc52729528199005A9F3d274FE7052C4"
|
|
44
|
+
},
|
|
45
|
+
"current": {
|
|
46
|
+
"taskCoordinatorImpl": "0x047C9d27acD5cd860398389f48b87d42BEaCd8fd",
|
|
47
|
+
"jinnRouterV3Impl": "0xDb713EB5F1827C5764e7B0E4c7d8951BeD2ba0ee",
|
|
48
|
+
"activityCheckerImpl": "0x84E0302460Ab11B2169a2D00336C049Ab650a4aC"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"upgradedAt": "2026-06-29T14:52:46.003Z",
|
|
53
|
+
"deployer": "0x15e78734481bD31F6e183dad05225505a45ACd07",
|
|
54
|
+
"previous": {
|
|
55
|
+
"taskCoordinatorImpl": "0x047C9d27acD5cd860398389f48b87d42BEaCd8fd",
|
|
56
|
+
"jinnRouterV3Impl": "0xDb713EB5F1827C5764e7B0E4c7d8951BeD2ba0ee",
|
|
57
|
+
"activityCheckerImpl": "0x84E0302460Ab11B2169a2D00336C049Ab650a4aC"
|
|
58
|
+
},
|
|
59
|
+
"current": {
|
|
60
|
+
"taskCoordinatorImpl": "0x69f857b222D970460202e9C94c6205Be87582610",
|
|
61
|
+
"jinnRouterV3Impl": "0x7c1F768E92c7Fd84e789CB7748B70340B876E25d",
|
|
62
|
+
"activityCheckerImpl": "0x916027798716518a601824ea1A6f09105a152C36"
|
|
63
|
+
}
|
|
36
64
|
}
|
|
37
65
|
]
|
|
38
66
|
}
|
|
@@ -52,7 +52,26 @@ export declare class MechAdapter implements ExecutionAdapter {
|
|
|
52
52
|
constructor(config: MechAdapterConfig, store?: Store);
|
|
53
53
|
initialize(): Promise<void>;
|
|
54
54
|
private recoverPendingState;
|
|
55
|
-
|
|
55
|
+
/**
|
|
56
|
+
* The gh #300 scorability admission floor: tasks created before this block are
|
|
57
|
+
* "ghosts" from a prior eval-semantics regime and are rejected — including on
|
|
58
|
+
* the `DiscoveryAPI` (indexer) path. Fixed per chain; an explicit operator
|
|
59
|
+
* `onchainFromBlock` raises it. Returns `undefined` when no SolverNet is joined
|
|
60
|
+
* (the daemon claims nothing, so there is no floor to apply).
|
|
61
|
+
*
|
|
62
|
+
* This is deliberately NOT the on-chain scan start — see `onchainScanFromBlock`.
|
|
63
|
+
* Bounding the scan for RPC cost must never narrow which tasks are admitted.
|
|
64
|
+
*/
|
|
65
|
+
private taskAdmissionFloorBlock;
|
|
66
|
+
/**
|
|
67
|
+
* Start block for the on-chain TaskCreated backlog scan (the secondary backstop
|
|
68
|
+
* behind `DiscoveryAPI.findClaimableTasks`). Defaults to a bounded rolling
|
|
69
|
+
* window `head − DEFAULT_ONCHAIN_SCAN_WINDOW_BLOCKS`, never below the admission
|
|
70
|
+
* floor (scanning pre-floor blocks only surfaces rejected ghosts). An explicit
|
|
71
|
+
* `onchainFromBlock` override pins an absolute start, honored as the operator's
|
|
72
|
+
* choice. Returns `undefined` when no SolverNet is joined.
|
|
73
|
+
*/
|
|
74
|
+
private onchainScanFromBlock;
|
|
56
75
|
private joinedManifestDigestSet;
|
|
57
76
|
private allowedDiscoveryTaskIds;
|
|
58
77
|
private isDiscoveryTaskAllowed;
|
|
@@ -89,6 +108,16 @@ export declare class MechAdapter implements ExecutionAdapter {
|
|
|
89
108
|
private buildEvaluationTask;
|
|
90
109
|
private restorationAnnouncementForTaskId;
|
|
91
110
|
private restorationAnnouncementFromDigest;
|
|
111
|
+
/**
|
|
112
|
+
* #1412: a task's execution window (task.window.endTs) is only known after
|
|
113
|
+
* IPFS hydration, not from any on-chain/discovery candidate shape. The
|
|
114
|
+
* engine kills the harness subprocess the instant this window is in the
|
|
115
|
+
* past (engine.ts: setTimeout(abort, max(0, endTs - now)) fires at 0ms), so
|
|
116
|
+
* claiming an already-expired task always fails with no chance of a real
|
|
117
|
+
* solve. Both discovery paths (DiscoveryAPI and the on-chain TaskCreated
|
|
118
|
+
* backlog scan) must skip these before spending a claim tx on a doomed run.
|
|
119
|
+
*/
|
|
120
|
+
private hasExpiredExecutionWindow;
|
|
92
121
|
private discoverSubgraphRestorationTasks;
|
|
93
122
|
/**
|
|
94
123
|
* Look up the Deliver-event envelope CID for a pending evaluation solution.
|
|
@@ -118,6 +147,7 @@ export declare class MechAdapter implements ExecutionAdapter {
|
|
|
118
147
|
submitSolutionDelivery(requestId: RequestId, solutionDigest: Hex): Promise<void>;
|
|
119
148
|
submitVerdictDelivery(requestId: RequestId, verdictDigest: Hex, verdictCode: VerdictCode): Promise<void>;
|
|
120
149
|
private deliveryClaimForDelivery;
|
|
150
|
+
private verdictCodeFromEnvelopePayload;
|
|
121
151
|
private ensureDeliveryClaimed;
|
|
122
152
|
/**
|
|
123
153
|
* Paginate `getLogs` over `[deliveryBlockCursor+1, currentBlock]` chunked by
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAddress
|
|
1
|
+
import { getAddress } from 'viem';
|
|
2
2
|
import { keccak256, toBytes } from 'viem';
|
|
3
3
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
4
4
|
import { base, baseSepolia } from 'viem/chains';
|
|
@@ -16,10 +16,11 @@ function rpcUrlForDisplay(rpcUrl) {
|
|
|
16
16
|
import { buildResultPayload, uploadToIpfs, cidToDigestHex, fetchFromIpfs, fetchSignedTaskFromIpfs, fetchSignedEnvelopeFromIpfs, } from './ipfs.js';
|
|
17
17
|
import { canonicalJson } from '../../harnesses/engine/canonical-json.js';
|
|
18
18
|
import { normalizeEnvelopeRole, SignedEnvelopeSchema } from '../../types/envelope.js';
|
|
19
|
-
import { submitTask, claimTask as claimTaskOnchain, claimEvaluation as claimEvaluationOnchain, claimDelivery, getMechDeliveryRate, getTimeoutBounds, decodeTaskCreatedLogs, decodeSolutionDeliveryClaimedLogs, decodeDeliverLogs, findLatestDeliveryDataHexForRequest, getMarketplaceRequestDeliveryMech, getTaskCidDigest, callDeliverToMarketplace, canClaimTask, canClaimEvaluation, } from './contracts.js';
|
|
19
|
+
import { submitTask, claimTask as claimTaskOnchain, claimEvaluation as claimEvaluationOnchain, claimDelivery, getMechDeliveryRate, getTimeoutBounds, decodeTaskCreatedLogs, decodeSolutionDeliveryClaimedLogs, decodeDeliverLogs, ROUTER_DISCOVERY_EVENTS, MECH_DELIVER_EVENT, findLatestDeliveryDataHexForRequest, getMarketplaceRequestDeliveryMech, getTaskCidDigest, callDeliverToMarketplace, canClaimTask, canClaimEvaluation, } from './contracts.js';
|
|
20
20
|
import { SafeInnerRevertError, formatDecodedRevert, isNonRecoverableInnerRevert, } from './safe-revert.js';
|
|
21
|
-
import { verdictCodeFromValue } from './verdict-code.js';
|
|
21
|
+
import { VerdictCode, verdictCodeFromValue } from './verdict-code.js';
|
|
22
22
|
import { manifestDigestForCid } from './digest.js';
|
|
23
|
+
import { recordLoopTick } from '../../daemon/loop-heartbeat.js';
|
|
23
24
|
import { emitStructured } from '../../events/emitter.js';
|
|
24
25
|
import { withRecoverableRetry } from '../../tx-retry.js';
|
|
25
26
|
import { formatRpcError } from '../../rpc-error-context.js';
|
|
@@ -64,6 +65,20 @@ function isTerminalEvaluationReason(revertName) {
|
|
|
64
65
|
return isNonRecoverableInnerRevert(revertName);
|
|
65
66
|
}
|
|
66
67
|
const DEFAULT_ROUTER_LOG_CHUNK_BLOCKS = 9999n;
|
|
68
|
+
/**
|
|
69
|
+
* Default rolling-window size for the on-chain TaskCreated backlog scan (#801).
|
|
70
|
+
*
|
|
71
|
+
* The scan is a *backstop* behind `DiscoveryAPI.findClaimableTasks` (the indexer
|
|
72
|
+
* on testnet, the newest-first RPC floor on mainnet), which is the primary
|
|
73
|
+
* discovery path on every chain. Without a bound the scan replays from the fixed
|
|
74
|
+
* admission floor to head on *every* restart, a range that grows monotonically
|
|
75
|
+
* with the chain — the startup-stall regression #801 documents. Bounding it to
|
|
76
|
+
* `head − N` makes restart cost fixed regardless of chain age while still
|
|
77
|
+
* re-observing a generous recent window (~28h on Base at ~2s/block) for tasks
|
|
78
|
+
* and SolutionDeliveryClaimed events the indexer might have lagged on. Operators
|
|
79
|
+
* who want a wider net pin an absolute start via `taskDiscoveryOnchainFromBlock`.
|
|
80
|
+
*/
|
|
81
|
+
const DEFAULT_ONCHAIN_SCAN_WINDOW_BLOCKS = 50000n;
|
|
67
82
|
/**
|
|
68
83
|
* Floor block for the on-chain TaskCreated backlog scan, per chain.
|
|
69
84
|
*
|
|
@@ -173,7 +188,7 @@ export class MechAdapter {
|
|
|
173
188
|
await this.recoverPendingState(blockNumber);
|
|
174
189
|
}
|
|
175
190
|
else {
|
|
176
|
-
const fromBlock = this.
|
|
191
|
+
const fromBlock = this.onchainScanFromBlock(blockNumber);
|
|
177
192
|
if (fromBlock && fromBlock <= blockNumber) {
|
|
178
193
|
this.requestBlockCursor = fromBlock - 1n;
|
|
179
194
|
}
|
|
@@ -193,17 +208,27 @@ export class MechAdapter {
|
|
|
193
208
|
if (routerFromBlock < currentBlock) {
|
|
194
209
|
this.requestBlockCursor = routerFromBlock;
|
|
195
210
|
}
|
|
196
|
-
const scanFromBlock = this.
|
|
211
|
+
const scanFromBlock = this.onchainScanFromBlock(currentBlock);
|
|
197
212
|
if (scanFromBlock && scanFromBlock <= currentBlock) {
|
|
198
213
|
const canonicalCursor = scanFromBlock - 1n;
|
|
199
214
|
if (canonicalCursor < this.requestBlockCursor) {
|
|
200
215
|
this.requestBlockCursor = canonicalCursor;
|
|
201
216
|
}
|
|
202
|
-
console.error(`[mech] TaskCreated
|
|
203
|
-
'
|
|
217
|
+
console.error(`[mech] TaskCreated backlog scan (bounded backstop) enabled from block ${scanFromBlock}; ` +
|
|
218
|
+
'DiscoveryAPI.findClaimableTasks is the primary discovery path');
|
|
204
219
|
}
|
|
205
220
|
}
|
|
206
|
-
|
|
221
|
+
/**
|
|
222
|
+
* The gh #300 scorability admission floor: tasks created before this block are
|
|
223
|
+
* "ghosts" from a prior eval-semantics regime and are rejected — including on
|
|
224
|
+
* the `DiscoveryAPI` (indexer) path. Fixed per chain; an explicit operator
|
|
225
|
+
* `onchainFromBlock` raises it. Returns `undefined` when no SolverNet is joined
|
|
226
|
+
* (the daemon claims nothing, so there is no floor to apply).
|
|
227
|
+
*
|
|
228
|
+
* This is deliberately NOT the on-chain scan start — see `onchainScanFromBlock`.
|
|
229
|
+
* Bounding the scan for RPC cost must never narrow which tasks are admitted.
|
|
230
|
+
*/
|
|
231
|
+
taskAdmissionFloorBlock() {
|
|
207
232
|
const discovery = this.config.taskDiscovery;
|
|
208
233
|
const hasJoinedSolverNet = (discovery?.solverNetManifestCids?.length ?? 0) > 0;
|
|
209
234
|
if (!hasJoinedSolverNet)
|
|
@@ -215,6 +240,24 @@ export class MechAdapter {
|
|
|
215
240
|
}
|
|
216
241
|
return DEFAULT_TASK_DISCOVERY_FROM_BLOCK[this.config.chainId];
|
|
217
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Start block for the on-chain TaskCreated backlog scan (the secondary backstop
|
|
245
|
+
* behind `DiscoveryAPI.findClaimableTasks`). Defaults to a bounded rolling
|
|
246
|
+
* window `head − DEFAULT_ONCHAIN_SCAN_WINDOW_BLOCKS`, never below the admission
|
|
247
|
+
* floor (scanning pre-floor blocks only surfaces rejected ghosts). An explicit
|
|
248
|
+
* `onchainFromBlock` override pins an absolute start, honored as the operator's
|
|
249
|
+
* choice. Returns `undefined` when no SolverNet is joined.
|
|
250
|
+
*/
|
|
251
|
+
onchainScanFromBlock(head) {
|
|
252
|
+
const floor = this.taskAdmissionFloorBlock();
|
|
253
|
+
if (floor === undefined)
|
|
254
|
+
return undefined;
|
|
255
|
+
// An explicit override is reflected verbatim in `floor`; honor it as the pin.
|
|
256
|
+
if (this.config.taskDiscovery?.onchainFromBlock !== undefined)
|
|
257
|
+
return floor;
|
|
258
|
+
const window = head - DEFAULT_ONCHAIN_SCAN_WINDOW_BLOCKS;
|
|
259
|
+
return window > floor ? window : floor;
|
|
260
|
+
}
|
|
218
261
|
joinedManifestDigestSet() {
|
|
219
262
|
const cids = this.config.taskDiscovery?.solverNetManifestCids ?? [];
|
|
220
263
|
return new Set(cids
|
|
@@ -236,8 +279,13 @@ export class MechAdapter {
|
|
|
236
279
|
const end = start + DEFAULT_ROUTER_LOG_CHUNK_BLOCKS > toBlock
|
|
237
280
|
? toBlock
|
|
238
281
|
: start + DEFAULT_ROUTER_LOG_CHUNK_BLOCKS;
|
|
282
|
+
// #116: filter server-side to the two router events the poll loop decodes
|
|
283
|
+
// (TaskCreated + SolutionDeliveryClaimed) via an OR-of-topic0, instead of an
|
|
284
|
+
// address-only scan that decode-discards the rest. Chunking is unchanged —
|
|
285
|
+
// a topic filter shrinks the result set, not the permitted block range.
|
|
239
286
|
logs.push(...await this.publicClient.getLogs({
|
|
240
287
|
address: this.config.routerAddress,
|
|
288
|
+
events: ROUTER_DISCOVERY_EVENTS,
|
|
241
289
|
fromBlock: start,
|
|
242
290
|
toBlock: end,
|
|
243
291
|
}));
|
|
@@ -399,7 +447,9 @@ export class MechAdapter {
|
|
|
399
447
|
const restorationDataHex = cidToDigestHex(restorationCid);
|
|
400
448
|
const digestNo0x = restorationDataHex.startsWith('0x') ? restorationDataHex.slice(2) : restorationDataHex;
|
|
401
449
|
const restorationTaskCid = `f01551220${digestNo0x}`;
|
|
402
|
-
const
|
|
450
|
+
const baseDeliveryRate = await getMechDeliveryRate(this.publicClient, this.config.mechContractAddress);
|
|
451
|
+
const { resolveMintedTaskDeliveryRate } = await import('../../solver-types/_swe-rebench-v2-escrow.js');
|
|
452
|
+
const deliveryRate = resolveMintedTaskDeliveryRate(baseDeliveryRate, signedTask.eligibility);
|
|
403
453
|
const { max: maxTimeout } = await getTimeoutBounds(this.publicClient, this.config.mechMarketplaceAddress);
|
|
404
454
|
// Task 24 (spec/2026-05-05-solvernet-creation-and-launch.md §14): the
|
|
405
455
|
// on-chain digest is now manifest-bound — `keccak256(manifestCid)` —
|
|
@@ -481,45 +531,25 @@ export class MechAdapter {
|
|
|
481
531
|
return signTaskV1(taskDoc, this.config.agentEoaPrivateKey);
|
|
482
532
|
}
|
|
483
533
|
contractPolicyForTask(state) {
|
|
484
|
-
|
|
534
|
+
// Tokenless-OLAS pivot: the on-chain TaskCoordinator.TaskPolicy is the
|
|
535
|
+
// launcher-funded attempt count (`maxClaims`) plus the self-evaluation gate
|
|
536
|
+
// (`allowSolverSelfEvaluation`). Windows, lease, and quorum do NOT cross the
|
|
537
|
+
// wire — that off-chain scheduling intent stays in the task.v1 `claimPolicy`
|
|
538
|
+
// field (still carried on the signed task document and read by the local
|
|
539
|
+
// scheduler).
|
|
540
|
+
//
|
|
541
|
+
// `allowSolverSelfEvaluation` comes from the off-chain `claimPolicy` when it
|
|
542
|
+
// sets the flag explicitly; that explicit value always wins. When it is
|
|
543
|
+
// absent (the common case — the auto-generators do not set it) the default
|
|
544
|
+
// is network-keyed: TRUE on testnet (Base Sepolia, 84532) so a single
|
|
545
|
+
// operator can solve + self-evaluate + close the loop solo for dogfooding,
|
|
546
|
+
// and FALSE on mainnet to preserve the independent-evaluation invariant (the
|
|
547
|
+
// coordinator rejects a verdict whose evaluator is the attempt's solver).
|
|
485
548
|
const claimPolicy = state.claimPolicy ?? DEFAULT_MECH_CLAIM_POLICY;
|
|
486
|
-
const
|
|
487
|
-
const raw = value ?? fallback;
|
|
488
|
-
return BigInt(raw > 10_000_000_000 ? Math.floor(raw / 1000) : raw);
|
|
489
|
-
};
|
|
490
|
-
const claimWindowStart = normalizeTs(claimPolicy.claimWindowStartTs ?? state.window?.startTs, nowSeconds);
|
|
491
|
-
const claimWindowEnd = normalizeTs(claimPolicy.claimWindowEndTs ?? state.window?.endTs, nowSeconds + 30 * 60);
|
|
492
|
-
const submissionDeadline = normalizeTs(claimPolicy.submissionDeadlineTs, Number(claimWindowEnd) + claimPolicy.claimLeaseTtlSeconds);
|
|
549
|
+
const isTestnet = this.config.chainId === 84532;
|
|
493
550
|
return {
|
|
494
|
-
claimWindowStart,
|
|
495
|
-
claimWindowEnd,
|
|
496
|
-
submissionDeadline,
|
|
497
|
-
claimLeaseTtlSeconds: claimPolicy.claimLeaseTtlSeconds,
|
|
498
551
|
maxClaims: claimPolicy.maxClaims,
|
|
499
|
-
|
|
500
|
-
policyHook: (claimPolicy.policyHook ?? zeroAddress),
|
|
501
|
-
evaluationPolicy: {
|
|
502
|
-
// `requiredVerdicts` defaults to 1 but is overridable via the task's
|
|
503
|
-
// claim policy. A value > 1 opens additional verdict claim slots per
|
|
504
|
-
// attempt; combined with the per-evaluator cap below (1), it
|
|
505
|
-
// guarantees an honest evaluator can still claim and deliver a slot
|
|
506
|
-
// even when other evaluators have squatted some — the structural fix
|
|
507
|
-
// for a shared/adversarial testnet where a non-delivering claimer
|
|
508
|
-
// would otherwise permanently lock a single-slot attempt.
|
|
509
|
-
requiredVerdicts: claimPolicy.requiredVerdicts ?? 1,
|
|
510
|
-
passThreshold: 1,
|
|
511
|
-
evaluationDeadline: submissionDeadline + BigInt(claimPolicy.claimLeaseTtlSeconds),
|
|
512
|
-
maxVerdictsPerEvaluator: 1,
|
|
513
|
-
// Allow the same operator to evaluate its own Solution on Base Sepolia
|
|
514
|
-
// (84532) so a single dogfood daemon can close the full
|
|
515
|
-
// post→claim→solve→grade→settle loop without standing up a second
|
|
516
|
-
// operator. Mainnet (8453) keeps the protocol-level protection.
|
|
517
|
-
// TODO: revert to unconditional `true` before mainnet launch, OR move
|
|
518
|
-
// this to a per-SolverNet manifest field so individual launchers can
|
|
519
|
-
// opt in to single-operator dogfood while the protocol default stays
|
|
520
|
-
// strict.
|
|
521
|
-
disallowSolverSelfEvaluation: this.config.chainId !== 84532,
|
|
522
|
-
},
|
|
552
|
+
allowSolverSelfEvaluation: claimPolicy.allowSolverSelfEvaluation ?? isTestnet,
|
|
523
553
|
};
|
|
524
554
|
}
|
|
525
555
|
buildEvaluationTask(params) {
|
|
@@ -576,6 +606,19 @@ export class MechAdapter {
|
|
|
576
606
|
this.observedTasks.set(params.taskId, announcement);
|
|
577
607
|
return announcement;
|
|
578
608
|
}
|
|
609
|
+
/**
|
|
610
|
+
* #1412: a task's execution window (task.window.endTs) is only known after
|
|
611
|
+
* IPFS hydration, not from any on-chain/discovery candidate shape. The
|
|
612
|
+
* engine kills the harness subprocess the instant this window is in the
|
|
613
|
+
* past (engine.ts: setTimeout(abort, max(0, endTs - now)) fires at 0ms), so
|
|
614
|
+
* claiming an already-expired task always fails with no chance of a real
|
|
615
|
+
* solve. Both discovery paths (DiscoveryAPI and the on-chain TaskCreated
|
|
616
|
+
* backlog scan) must skip these before spending a claim tx on a doomed run.
|
|
617
|
+
*/
|
|
618
|
+
hasExpiredExecutionWindow(announcement) {
|
|
619
|
+
const windowEndTs = announcement.task.window?.endTs;
|
|
620
|
+
return windowEndTs !== undefined && windowEndTs <= Date.now();
|
|
621
|
+
}
|
|
579
622
|
async *discoverSubgraphRestorationTasks() {
|
|
580
623
|
const discovery = this.config.taskDiscovery;
|
|
581
624
|
const discoveryApi = discovery?.discoveryApi;
|
|
@@ -598,7 +641,7 @@ export class MechAdapter {
|
|
|
598
641
|
console.error('[mech] task discovery (DiscoveryAPI) failed:', err instanceof Error ? err.message : err);
|
|
599
642
|
return;
|
|
600
643
|
}
|
|
601
|
-
const discoveryFloorBlock = this.
|
|
644
|
+
const discoveryFloorBlock = this.taskAdmissionFloorBlock();
|
|
602
645
|
for (const candidate of candidates) {
|
|
603
646
|
if (!this.isDiscoveryTaskAllowed(candidate.taskId))
|
|
604
647
|
continue;
|
|
@@ -636,12 +679,15 @@ export class MechAdapter {
|
|
|
636
679
|
// cycle we let the engine apply its gate to each one, preserving the
|
|
637
680
|
// round-robin fairness across joined SolverNets. See task 212 live
|
|
638
681
|
// verification in the fix's commit body.
|
|
639
|
-
|
|
682
|
+
const announcement = await this.restorationAnnouncementFromDigest({
|
|
640
683
|
taskId: candidate.taskId,
|
|
641
684
|
taskCidDigest: candidate.taskCidDigest,
|
|
642
685
|
transactionHash: candidate.createdAtTx,
|
|
643
686
|
blockNumber: candidate.createdAtBlock,
|
|
644
687
|
});
|
|
688
|
+
if (this.hasExpiredExecutionWindow(announcement))
|
|
689
|
+
continue;
|
|
690
|
+
yield announcement;
|
|
645
691
|
}
|
|
646
692
|
catch (err) {
|
|
647
693
|
console.error(`[mech] failed to hydrate subgraph task ${candidate.taskId}:`, err instanceof Error ? err.message : err);
|
|
@@ -794,10 +840,6 @@ export class MechAdapter {
|
|
|
794
840
|
for (const solution of submittedSolutions) {
|
|
795
841
|
this.rememberPendingEvaluationSolution(solution);
|
|
796
842
|
}
|
|
797
|
-
this.requestBlockCursor = currentBlock;
|
|
798
|
-
if (this.store) {
|
|
799
|
-
this.store.setConfigValue(ROUTER_REQUEST_CURSOR_CONFIG_KEY, currentBlock.toString());
|
|
800
|
-
}
|
|
801
843
|
const joinedManifestDigests = this.joinedManifestDigestSet();
|
|
802
844
|
const createdTasks = decodeTaskCreatedLogs(logs);
|
|
803
845
|
for (const { taskId, taskCidDigest, manifestDigest, transactionHash, blockNumber } of createdTasks) {
|
|
@@ -817,6 +859,8 @@ export class MechAdapter {
|
|
|
817
859
|
transactionHash,
|
|
818
860
|
blockNumber,
|
|
819
861
|
});
|
|
862
|
+
if (this.hasExpiredExecutionWindow(announcement))
|
|
863
|
+
continue;
|
|
820
864
|
yield announcement;
|
|
821
865
|
}
|
|
822
866
|
catch (err) {
|
|
@@ -826,6 +870,10 @@ export class MechAdapter {
|
|
|
826
870
|
for await (const announcement of this.retryPendingEvaluationSolutions()) {
|
|
827
871
|
yield announcement;
|
|
828
872
|
}
|
|
873
|
+
this.requestBlockCursor = currentBlock;
|
|
874
|
+
if (this.store) {
|
|
875
|
+
this.store.setConfigValue(ROUTER_REQUEST_CURSOR_CONFIG_KEY, currentBlock.toString());
|
|
876
|
+
}
|
|
829
877
|
}
|
|
830
878
|
}
|
|
831
879
|
catch (err) {
|
|
@@ -837,6 +885,10 @@ export class MechAdapter {
|
|
|
837
885
|
fromBlock: this.requestBlockCursor + 1n,
|
|
838
886
|
}));
|
|
839
887
|
}
|
|
888
|
+
// #1043/#1038: heartbeat at the poll-cycle tail (every poll, even when
|
|
889
|
+
// nothing was yielded) so an idle-but-polling loop never looks stale.
|
|
890
|
+
if (this.store)
|
|
891
|
+
recordLoopTick(this.store, 'engine-watcher');
|
|
840
892
|
await new Promise(r => setTimeout(r, this.config.pollIntervalMs));
|
|
841
893
|
}
|
|
842
894
|
}
|
|
@@ -930,15 +982,31 @@ export class MechAdapter {
|
|
|
930
982
|
}
|
|
931
983
|
const kind = role === 'verdict' ? 'verdict' : 'solution';
|
|
932
984
|
const payload = rawSigned['payload'];
|
|
933
|
-
const
|
|
934
|
-
? payload
|
|
985
|
+
const verdictCode = kind === 'verdict'
|
|
986
|
+
? this.verdictCodeFromEnvelopePayload(parsed.solverType, payload)
|
|
935
987
|
: undefined;
|
|
936
988
|
return {
|
|
937
989
|
evidenceHash: recomputed,
|
|
938
990
|
kind,
|
|
939
|
-
verdictCode
|
|
991
|
+
verdictCode,
|
|
940
992
|
};
|
|
941
993
|
}
|
|
994
|
+
verdictCodeFromEnvelopePayload(solverType, payload) {
|
|
995
|
+
if (payload == null || typeof payload !== 'object') {
|
|
996
|
+
throw new Error(`missing verdict payload for solverType=${solverType}; refusing to claim Invalid(3) without an explicit evaluator verdict`);
|
|
997
|
+
}
|
|
998
|
+
const record = payload;
|
|
999
|
+
const rawVerdict = record['verdict'];
|
|
1000
|
+
if (rawVerdict !== undefined)
|
|
1001
|
+
return verdictCodeFromValue(rawVerdict);
|
|
1002
|
+
if (solverType === 'swe-rebench-v2.v1') {
|
|
1003
|
+
const passedMatch = record['passed_match'];
|
|
1004
|
+
if (typeof passedMatch === 'boolean') {
|
|
1005
|
+
return passedMatch ? VerdictCode.Pass : VerdictCode.Fail;
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
throw new Error(`missing verdict signal for solverType=${solverType}; refusing to claim Invalid(3) without an explicit evaluator verdict`);
|
|
1009
|
+
}
|
|
942
1010
|
async ensureDeliveryClaimed(requestId, deliveryDataHex) {
|
|
943
1011
|
let claimOptions;
|
|
944
1012
|
try {
|
|
@@ -1001,8 +1069,11 @@ export class MechAdapter {
|
|
|
1001
1069
|
const chunkEnd = chunkStart + DEFAULT_ROUTER_LOG_CHUNK_BLOCKS > currentBlock
|
|
1002
1070
|
? currentBlock
|
|
1003
1071
|
: chunkStart + DEFAULT_ROUTER_LOG_CHUNK_BLOCKS;
|
|
1072
|
+
// #116: pin the mech `Deliver` topic server-side rather than fetching the
|
|
1073
|
+
// whole address and decode-discarding. Range/chunking unchanged.
|
|
1004
1074
|
const logs = await this.publicClient.getLogs({
|
|
1005
1075
|
address: this.config.mechContractAddress,
|
|
1076
|
+
event: MECH_DELIVER_EVENT,
|
|
1006
1077
|
fromBlock: chunkStart,
|
|
1007
1078
|
toBlock: chunkEnd,
|
|
1008
1079
|
});
|
|
@@ -1114,6 +1185,10 @@ export class MechAdapter {
|
|
|
1114
1185
|
}
|
|
1115
1186
|
// Cursor persistence is per-chunk inside the loop above (#552). A poll
|
|
1116
1187
|
// that did no chunked work has no progress to persist.
|
|
1188
|
+
// #1043/#1038: heartbeat at the poll-cycle tail (every poll, even when
|
|
1189
|
+
// nothing was yielded) so an idle-but-polling loop never looks stale.
|
|
1190
|
+
if (this.store)
|
|
1191
|
+
recordLoopTick(this.store, 'delivery-watcher');
|
|
1117
1192
|
await new Promise(r => setTimeout(r, this.config.pollIntervalMs));
|
|
1118
1193
|
}
|
|
1119
1194
|
}
|