@jinn-network/client 0.1.8 → 0.1.9-canary.144d87d2
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/README.md +6 -0
- package/dist/adapters/mech/adapter.d.ts +21 -1
- package/dist/adapters/mech/adapter.js +77 -10
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.js +62 -28
- 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 +5 -1
- package/dist/adapters/mech/safe.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 +1 -0
- package/dist/api/bootstrap-endpoint.js +1 -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 +8 -2
- package/dist/api/gather-status.js +29 -117
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/loop-completion-build.d.ts +79 -0
- package/dist/api/loop-completion-build.js +155 -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/peers.js +2 -0
- package/dist/api/peers.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +32 -0
- package/dist/api/setup-endpoints.js +94 -24
- 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 +43 -33
- package/dist/api/status-build.js +3 -26
- 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/build-info.json +4 -4
- package/dist/build-meta.json +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 +37 -2
- 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 +30 -3
- 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/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config.d.ts +102 -15
- package/dist/config.js +166 -19
- package/dist/config.js.map +1 -1
- 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 +3 -0
- 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 +26 -14
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +15 -0
- package/dist/daemon/daemon.js +78 -22
- package/dist/daemon/daemon.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/jinn-claim-loop.js +3 -0
- package/dist/daemon/jinn-claim-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 +34 -0
- package/dist/daemon/loop-heartbeat.js +39 -0
- package/dist/daemon/loop-heartbeat.js.map +1 -0
- package/dist/daemon/reward-claim-loop.js +4 -1
- package/dist/daemon/reward-claim-loop.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-8tAiMbUV.css +1 -0
- package/dist/dashboard/assets/index-D6a-DfaM.js +171 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/discovery/http.d.ts +17 -0
- package/dist/discovery/http.js +295 -25
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.js +155 -1
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +106 -0
- package/dist/discovery/types.js +40 -0
- package/dist/discovery/types.js.map +1 -1
- package/dist/discovery/with-fallback.js +14 -0
- package/dist/discovery/with-fallback.js.map +1 -1
- package/dist/earning/bootstrap.d.ts +25 -0
- package/dist/earning/bootstrap.js +79 -28
- package/dist/earning/bootstrap.js.map +1 -1
- 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 +11 -0
- package/dist/earning/safe-adapter.js.map +1 -1
- package/dist/earning/stolas-claim.js +5 -5
- 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/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/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/engine/canonical-json.js +5 -3
- package/dist/harnesses/engine/canonical-json.js.map +1 -1
- package/dist/harnesses/engine/engine.d.ts +24 -0
- package/dist/harnesses/engine/engine.js +72 -9
- package/dist/harnesses/engine/engine.js.map +1 -1
- package/dist/harnesses/engine/packaging.js +1 -1
- package/dist/harnesses/engine/packaging.js.map +1 -1
- package/dist/harnesses/engine/persistence.d.ts +17 -0
- package/dist/harnesses/engine/persistence.js +28 -0
- package/dist/harnesses/engine/persistence.js.map +1 -1
- 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/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 +17 -3
- package/dist/harnesses/impls/hermes-agent/harness.js +68 -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 +9 -0
- 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/harness.d.ts +17 -1
- package/dist/harnesses/impls/learner/harness.js +51 -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/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 +10 -0
- package/dist/harnesses/readiness-registry.js +13 -0
- package/dist/harnesses/readiness-registry.js.map +1 -1
- package/dist/harnesses/types.d.ts +14 -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/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 +94 -25
- package/dist/main.js.map +1 -1
- package/dist/mcp/operator-server.js +1 -1
- package/dist/mcp/operator-server.js.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/server.js.map +1 -1
- 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/preflight/deployment-readiness.d.ts +147 -0
- package/dist/preflight/deployment-readiness.js +366 -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/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 +8 -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/record.js +12 -5
- package/dist/spend/record.js.map +1 -1
- package/dist/store/store.d.ts +91 -5
- package/dist/store/store.js +170 -7
- package/dist/store/store.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/schema.d.ts +1 -1
- package/dist/trajectory/schema.js +1 -1
- package/dist/trajectory/schema.js.map +1 -1
- 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/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/task-document.d.ts +1 -1
- package/dist/types/task-document.js +1 -1
- package/dist/types/task-document.js.map +1 -1
- package/dist/types/task.d.ts +1 -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/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 +23 -20
- 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/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
- package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
- package/dist/dashboard/assets/index-CzKxvMcU.css +0 -32
- package/dist/dashboard/assets/index-yVemxHot.js +0 -351
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* jinn-repo Solution + Verdict payload schemas.
|
|
3
|
+
*
|
|
4
|
+
* Solution: the unified-diff patch the Solver's harness produced for the
|
|
5
|
+
* jinn-repo instance (a real merged Jinn-Network/mono PR). Mirrors the
|
|
6
|
+
* swe-rebench-v2 Solution shape; trajectory provenance is pinned via the
|
|
7
|
+
* envelope, not the payload.
|
|
8
|
+
*
|
|
9
|
+
* Verdict: the repo-native test runner's pass/fail, with an optional log
|
|
10
|
+
* excerpt for human inspection. The full test log is surfaced via the
|
|
11
|
+
* envelope's `artifacts[]` rather than as a typed payload field.
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod/v3';
|
|
14
|
+
export const JinnRepoSolutionPayloadSchema = z.object({
|
|
15
|
+
schemaVersion: z.literal('jinn-repo-solution.v1'),
|
|
16
|
+
patch: z.string().min(1),
|
|
17
|
+
});
|
|
18
|
+
export const JinnRepoVerdictPayloadSchema = z.object({
|
|
19
|
+
schemaVersion: z.literal('jinn-repo-verdict.v1'),
|
|
20
|
+
passed: z.boolean(),
|
|
21
|
+
test_log_excerpt: z.string().optional(),
|
|
22
|
+
});
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
*
|
|
21
21
|
* Spec: docs/superpowers/specs/2026-05-06-agent-harness-solvernet-design.md §3.2
|
|
22
22
|
*/
|
|
23
|
-
import { z } from 'zod';
|
|
23
|
+
import { z } from 'zod/v3';
|
|
24
24
|
export declare const SweRebenchV2SolutionPayloadSchema: z.ZodObject<{
|
|
25
25
|
schemaVersion: z.ZodLiteral<"swe-rebench-v2-solution.v1">;
|
|
26
26
|
/** Unified diff patch (git-format). */
|
|
@@ -84,7 +84,7 @@ export declare const SweRebenchV2SolutionPayloadSchema: z.ZodObject<{
|
|
|
84
84
|
} | undefined;
|
|
85
85
|
}>;
|
|
86
86
|
export type SweRebenchV2SolutionPayload = z.infer<typeof SweRebenchV2SolutionPayloadSchema>;
|
|
87
|
-
export declare const
|
|
87
|
+
export declare const SweRebenchV2VerdictV1PayloadSchema: z.ZodObject<{
|
|
88
88
|
schemaVersion: z.ZodLiteral<"swe-rebench-v2-verdict.v1">;
|
|
89
89
|
/** Pass@1 score: 1 if the test suite passed, 0 otherwise. */
|
|
90
90
|
score: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
|
|
@@ -107,4 +107,111 @@ export declare const SweRebenchV2VerdictPayloadSchema: z.ZodObject<{
|
|
|
107
107
|
passed_match: boolean;
|
|
108
108
|
evaluator_cost_usd: number;
|
|
109
109
|
}>;
|
|
110
|
+
/**
|
|
111
|
+
* v2 — additive graded signal (Lever A, #1019). Superset of v1: keeps the
|
|
112
|
+
* binary `score`/`passed_match` (the objective) and adds the per-test counts
|
|
113
|
+
* the grader already computes. `gradedScore = passedCount / totalCount` is
|
|
114
|
+
* derived downstream, never stored, to keep one source of truth.
|
|
115
|
+
*/
|
|
116
|
+
export declare const SweRebenchV2VerdictV2PayloadSchema: z.ZodEffects<z.ZodObject<{
|
|
117
|
+
schemaVersion: z.ZodLiteral<"swe-rebench-v2-verdict.v2">;
|
|
118
|
+
score: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
|
|
119
|
+
passed_match: z.ZodBoolean;
|
|
120
|
+
evaluator_cost_usd: z.ZodNumber;
|
|
121
|
+
/** Count of individual tests that passed in this run. */
|
|
122
|
+
passedCount: z.ZodNumber;
|
|
123
|
+
/** Total gradeable tests in this run (FAIL_TO_PASS ∪ PASS_TO_PASS as the runner reported). */
|
|
124
|
+
totalCount: z.ZodNumber;
|
|
125
|
+
}, "strip", z.ZodTypeAny, {
|
|
126
|
+
schemaVersion: "swe-rebench-v2-verdict.v2";
|
|
127
|
+
score: 0 | 1;
|
|
128
|
+
passed_match: boolean;
|
|
129
|
+
evaluator_cost_usd: number;
|
|
130
|
+
passedCount: number;
|
|
131
|
+
totalCount: number;
|
|
132
|
+
}, {
|
|
133
|
+
schemaVersion: "swe-rebench-v2-verdict.v2";
|
|
134
|
+
score: 0 | 1;
|
|
135
|
+
passed_match: boolean;
|
|
136
|
+
evaluator_cost_usd: number;
|
|
137
|
+
passedCount: number;
|
|
138
|
+
totalCount: number;
|
|
139
|
+
}>, {
|
|
140
|
+
schemaVersion: "swe-rebench-v2-verdict.v2";
|
|
141
|
+
score: 0 | 1;
|
|
142
|
+
passed_match: boolean;
|
|
143
|
+
evaluator_cost_usd: number;
|
|
144
|
+
passedCount: number;
|
|
145
|
+
totalCount: number;
|
|
146
|
+
}, {
|
|
147
|
+
schemaVersion: "swe-rebench-v2-verdict.v2";
|
|
148
|
+
score: 0 | 1;
|
|
149
|
+
passed_match: boolean;
|
|
150
|
+
evaluator_cost_usd: number;
|
|
151
|
+
passedCount: number;
|
|
152
|
+
totalCount: number;
|
|
153
|
+
}>;
|
|
154
|
+
/** Accept either schema version on the read path. */
|
|
155
|
+
export declare const SweRebenchV2VerdictPayloadSchema: z.ZodUnion<[z.ZodObject<{
|
|
156
|
+
schemaVersion: z.ZodLiteral<"swe-rebench-v2-verdict.v1">;
|
|
157
|
+
/** Pass@1 score: 1 if the test suite passed, 0 otherwise. */
|
|
158
|
+
score: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
|
|
159
|
+
/**
|
|
160
|
+
* Whether the actual passed/failed test set matched the expected
|
|
161
|
+
* `FAIL_TO_PASS ∪ PASS_TO_PASS` exactly. False if extra tests passed
|
|
162
|
+
* or expected tests failed unexpectedly.
|
|
163
|
+
*/
|
|
164
|
+
passed_match: z.ZodBoolean;
|
|
165
|
+
/** Cost of running the evaluator on this Solution (USDC-equivalent). */
|
|
166
|
+
evaluator_cost_usd: z.ZodNumber;
|
|
167
|
+
}, "strip", z.ZodTypeAny, {
|
|
168
|
+
schemaVersion: "swe-rebench-v2-verdict.v1";
|
|
169
|
+
score: 0 | 1;
|
|
170
|
+
passed_match: boolean;
|
|
171
|
+
evaluator_cost_usd: number;
|
|
172
|
+
}, {
|
|
173
|
+
schemaVersion: "swe-rebench-v2-verdict.v1";
|
|
174
|
+
score: 0 | 1;
|
|
175
|
+
passed_match: boolean;
|
|
176
|
+
evaluator_cost_usd: number;
|
|
177
|
+
}>, z.ZodEffects<z.ZodObject<{
|
|
178
|
+
schemaVersion: z.ZodLiteral<"swe-rebench-v2-verdict.v2">;
|
|
179
|
+
score: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
|
|
180
|
+
passed_match: z.ZodBoolean;
|
|
181
|
+
evaluator_cost_usd: z.ZodNumber;
|
|
182
|
+
/** Count of individual tests that passed in this run. */
|
|
183
|
+
passedCount: z.ZodNumber;
|
|
184
|
+
/** Total gradeable tests in this run (FAIL_TO_PASS ∪ PASS_TO_PASS as the runner reported). */
|
|
185
|
+
totalCount: z.ZodNumber;
|
|
186
|
+
}, "strip", z.ZodTypeAny, {
|
|
187
|
+
schemaVersion: "swe-rebench-v2-verdict.v2";
|
|
188
|
+
score: 0 | 1;
|
|
189
|
+
passed_match: boolean;
|
|
190
|
+
evaluator_cost_usd: number;
|
|
191
|
+
passedCount: number;
|
|
192
|
+
totalCount: number;
|
|
193
|
+
}, {
|
|
194
|
+
schemaVersion: "swe-rebench-v2-verdict.v2";
|
|
195
|
+
score: 0 | 1;
|
|
196
|
+
passed_match: boolean;
|
|
197
|
+
evaluator_cost_usd: number;
|
|
198
|
+
passedCount: number;
|
|
199
|
+
totalCount: number;
|
|
200
|
+
}>, {
|
|
201
|
+
schemaVersion: "swe-rebench-v2-verdict.v2";
|
|
202
|
+
score: 0 | 1;
|
|
203
|
+
passed_match: boolean;
|
|
204
|
+
evaluator_cost_usd: number;
|
|
205
|
+
passedCount: number;
|
|
206
|
+
totalCount: number;
|
|
207
|
+
}, {
|
|
208
|
+
schemaVersion: "swe-rebench-v2-verdict.v2";
|
|
209
|
+
score: 0 | 1;
|
|
210
|
+
passed_match: boolean;
|
|
211
|
+
evaluator_cost_usd: number;
|
|
212
|
+
passedCount: number;
|
|
213
|
+
totalCount: number;
|
|
214
|
+
}>]>;
|
|
215
|
+
export type SweRebenchV2VerdictV1Payload = z.infer<typeof SweRebenchV2VerdictV1PayloadSchema>;
|
|
216
|
+
export type SweRebenchV2VerdictV2Payload = z.infer<typeof SweRebenchV2VerdictV2PayloadSchema>;
|
|
110
217
|
export type SweRebenchV2VerdictPayload = z.infer<typeof SweRebenchV2VerdictPayloadSchema>;
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
*
|
|
21
21
|
* Spec: docs/superpowers/specs/2026-05-06-agent-harness-solvernet-design.md §3.2
|
|
22
22
|
*/
|
|
23
|
-
import { z } from 'zod';
|
|
23
|
+
import { z } from 'zod/v3';
|
|
24
24
|
export const SweRebenchV2SolutionPayloadSchema = z.object({
|
|
25
25
|
schemaVersion: z.literal('swe-rebench-v2-solution.v1'),
|
|
26
26
|
/** Unified diff patch (git-format). */
|
|
@@ -43,7 +43,7 @@ export const SweRebenchV2SolutionPayloadSchema = z.object({
|
|
|
43
43
|
})
|
|
44
44
|
.optional(),
|
|
45
45
|
});
|
|
46
|
-
export const
|
|
46
|
+
export const SweRebenchV2VerdictV1PayloadSchema = z.object({
|
|
47
47
|
schemaVersion: z.literal('swe-rebench-v2-verdict.v1'),
|
|
48
48
|
/** Pass@1 score: 1 if the test suite passed, 0 otherwise. */
|
|
49
49
|
score: z.union([z.literal(0), z.literal(1)]),
|
|
@@ -56,3 +56,27 @@ export const SweRebenchV2VerdictPayloadSchema = z.object({
|
|
|
56
56
|
/** Cost of running the evaluator on this Solution (USDC-equivalent). */
|
|
57
57
|
evaluator_cost_usd: z.number().nonnegative(),
|
|
58
58
|
});
|
|
59
|
+
/**
|
|
60
|
+
* v2 — additive graded signal (Lever A, #1019). Superset of v1: keeps the
|
|
61
|
+
* binary `score`/`passed_match` (the objective) and adds the per-test counts
|
|
62
|
+
* the grader already computes. `gradedScore = passedCount / totalCount` is
|
|
63
|
+
* derived downstream, never stored, to keep one source of truth.
|
|
64
|
+
*/
|
|
65
|
+
export const SweRebenchV2VerdictV2PayloadSchema = z.object({
|
|
66
|
+
schemaVersion: z.literal('swe-rebench-v2-verdict.v2'),
|
|
67
|
+
score: z.union([z.literal(0), z.literal(1)]),
|
|
68
|
+
passed_match: z.boolean(),
|
|
69
|
+
evaluator_cost_usd: z.number().nonnegative(),
|
|
70
|
+
// camelCase matches schemaVersion/totalUsd elsewhere in this file and the #1019 design.
|
|
71
|
+
/** Count of individual tests that passed in this run. */
|
|
72
|
+
passedCount: z.number().int().nonnegative(),
|
|
73
|
+
/** Total gradeable tests in this run (FAIL_TO_PASS ∪ PASS_TO_PASS as the runner reported). */
|
|
74
|
+
totalCount: z.number().int().nonnegative(),
|
|
75
|
+
}).refine((p) => p.passedCount <= p.totalCount, {
|
|
76
|
+
message: 'passedCount must not exceed totalCount',
|
|
77
|
+
});
|
|
78
|
+
/** Accept either schema version on the read path. */
|
|
79
|
+
export const SweRebenchV2VerdictPayloadSchema = z.union([
|
|
80
|
+
SweRebenchV2VerdictV1PayloadSchema,
|
|
81
|
+
SweRebenchV2VerdictV2PayloadSchema,
|
|
82
|
+
]);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { JINN_REPO_SCHEMA_VERSION, JinnRepoTaskSchema, } from '../jinn-repo.js';
|
|
2
|
+
export type { JinnRepoTask } from '../jinn-repo.js';
|
|
3
|
+
export { JinnRepoSolutionPayloadSchema, JinnRepoVerdictPayloadSchema, } from '../payloads/jinn-repo.js';
|
|
4
|
+
export type { JinnRepoSolutionPayload, JinnRepoVerdictPayload, } from '../payloads/jinn-repo.js';
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// - No `recommendedHarnesses`, no `requiredRuntimePlugins`, no `defaultRuntimePlugins`
|
|
14
14
|
// - `evaluationFunction.implementation` is BINDING (canonical evaluator harness reference)
|
|
15
15
|
// - `signature: { alg: 'eip-191'; signer: 0x...; value: 0x... }`
|
|
16
|
-
import { z } from 'zod';
|
|
16
|
+
import { z } from 'zod/v3';
|
|
17
17
|
// JSON Schema is opaque to this validator — manifests carry user-authored
|
|
18
18
|
// schemas whose internal shape we do not constrain here. Manifest readers
|
|
19
19
|
// validate payloads against these schemas at task/solution/verdict handling
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Held-out task slate for the swe-rebench-v2 RL eval harness (issue #817/#820).
|
|
3
|
+
*
|
|
4
|
+
* A slate is a versioned, content-addressed set of swe-rebench-v2
|
|
5
|
+
* `instance_id`s RESERVED from the training pool. #817 ships the canonical
|
|
6
|
+
* train-stream exclusion in `client/`; the indexer (this package's consumer)
|
|
7
|
+
* needs the same membership to slate-scope `frozenResolvedRate` (#820 AC#1),
|
|
8
|
+
* but the indexer cannot import from `client/` (see
|
|
9
|
+
* `packages/indexer/src/handlers.ts` header). So the membership is embedded
|
|
10
|
+
* here, in the SDK both the indexer and clients may depend on.
|
|
11
|
+
*
|
|
12
|
+
* The artifact is embedded (not read from disk) so the SDK stays a pure,
|
|
13
|
+
* bundler-friendly module with no `node:fs` runtime dependency. It carries a
|
|
14
|
+
* self-declared content hash: the loader recomputes a sha256 over the
|
|
15
|
+
* canonicalised, instance-id-sorted artifact and fails loud on mismatch. This
|
|
16
|
+
* preserves #817's fail-loud drift guard — a hand-edit that adds or removes an
|
|
17
|
+
* instance without re-deriving the hash throws. It is NOT a tamper-proof
|
|
18
|
+
* anchor (the declared hash lives beside the data it verifies); a deliberate
|
|
19
|
+
* edit that also re-derives the hash passes.
|
|
20
|
+
*
|
|
21
|
+
* The embedded `instanceIds` + `hash` are kept byte-identical to the client
|
|
22
|
+
* artifact (`client/src/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json`)
|
|
23
|
+
* by a cross-source drift test. Scores are only comparable WITHIN a version; a
|
|
24
|
+
* slate change is a distinct version (v2, ...), never an in-place edit.
|
|
25
|
+
*
|
|
26
|
+
* Hashing mirrors `_swe-rebench-v2-held-out-slate.ts` in `client/`:
|
|
27
|
+
* `sha256:` + sha256(RFC 8785 canonical JSON of the normalized artifact). The
|
|
28
|
+
* artifact shape is flat (string scalars + a string array), so a minimal
|
|
29
|
+
* inlined JCS canonicalizer reproduces the client's `canonicalize`-based hash
|
|
30
|
+
* exactly — verified by the drift test.
|
|
31
|
+
*/
|
|
32
|
+
export declare const HELD_OUT_SLATE_SCHEMA_VERSION: "held-out-slate.v1";
|
|
33
|
+
export interface HeldOutSlateArtifact {
|
|
34
|
+
schemaVersion: typeof HELD_OUT_SLATE_SCHEMA_VERSION;
|
|
35
|
+
solverType: string;
|
|
36
|
+
version: string;
|
|
37
|
+
generatedAt: string;
|
|
38
|
+
instanceIds: string[];
|
|
39
|
+
/** Declared content hash (sha256 over the canonical, sorted artifact). */
|
|
40
|
+
hash: `sha256:${string}`;
|
|
41
|
+
}
|
|
42
|
+
export interface LoadedHeldOutSlate {
|
|
43
|
+
version: string;
|
|
44
|
+
hash: `sha256:${string}`;
|
|
45
|
+
instanceIds: Set<string>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Embedded v1 slate. Byte-identical (sans the `comment` doc field, which is not
|
|
49
|
+
* part of the hashed artifact) to
|
|
50
|
+
* `client/src/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json`.
|
|
51
|
+
* Guarded against drift by `test/solvernets/swe-rebench-v2-held-out-slate-cross-source.test.ts`.
|
|
52
|
+
*/
|
|
53
|
+
export declare const HELD_OUT_SLATE_V1: HeldOutSlateArtifact;
|
|
54
|
+
export declare function hashHeldOutSlateArtifact(artifact: HeldOutSlateArtifact): `sha256:${string}`;
|
|
55
|
+
/**
|
|
56
|
+
* Load the held-out slate membership for the swe-rebench-v2 solverType at
|
|
57
|
+
* `version`. Recomputes the content hash and fails loud on mismatch against the
|
|
58
|
+
* artifact's declared `hash` (catching accidental edit-without-rehash drift —
|
|
59
|
+
* not deliberate tampering; see the module header). Throws for an unknown
|
|
60
|
+
* version (scores are only comparable within a known version).
|
|
61
|
+
*
|
|
62
|
+
* `override` is for tests only — it lets the fail-loud guard be exercised
|
|
63
|
+
* against a tampered copy without mutating the canonical embedded artifact.
|
|
64
|
+
*/
|
|
65
|
+
export declare function loadHeldOutSlate(version: string, override?: HeldOutSlateArtifact): LoadedHeldOutSlate;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Held-out task slate for the swe-rebench-v2 RL eval harness (issue #817/#820).
|
|
3
|
+
*
|
|
4
|
+
* A slate is a versioned, content-addressed set of swe-rebench-v2
|
|
5
|
+
* `instance_id`s RESERVED from the training pool. #817 ships the canonical
|
|
6
|
+
* train-stream exclusion in `client/`; the indexer (this package's consumer)
|
|
7
|
+
* needs the same membership to slate-scope `frozenResolvedRate` (#820 AC#1),
|
|
8
|
+
* but the indexer cannot import from `client/` (see
|
|
9
|
+
* `packages/indexer/src/handlers.ts` header). So the membership is embedded
|
|
10
|
+
* here, in the SDK both the indexer and clients may depend on.
|
|
11
|
+
*
|
|
12
|
+
* The artifact is embedded (not read from disk) so the SDK stays a pure,
|
|
13
|
+
* bundler-friendly module with no `node:fs` runtime dependency. It carries a
|
|
14
|
+
* self-declared content hash: the loader recomputes a sha256 over the
|
|
15
|
+
* canonicalised, instance-id-sorted artifact and fails loud on mismatch. This
|
|
16
|
+
* preserves #817's fail-loud drift guard — a hand-edit that adds or removes an
|
|
17
|
+
* instance without re-deriving the hash throws. It is NOT a tamper-proof
|
|
18
|
+
* anchor (the declared hash lives beside the data it verifies); a deliberate
|
|
19
|
+
* edit that also re-derives the hash passes.
|
|
20
|
+
*
|
|
21
|
+
* The embedded `instanceIds` + `hash` are kept byte-identical to the client
|
|
22
|
+
* artifact (`client/src/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json`)
|
|
23
|
+
* by a cross-source drift test. Scores are only comparable WITHIN a version; a
|
|
24
|
+
* slate change is a distinct version (v2, ...), never an in-place edit.
|
|
25
|
+
*
|
|
26
|
+
* Hashing mirrors `_swe-rebench-v2-held-out-slate.ts` in `client/`:
|
|
27
|
+
* `sha256:` + sha256(RFC 8785 canonical JSON of the normalized artifact). The
|
|
28
|
+
* artifact shape is flat (string scalars + a string array), so a minimal
|
|
29
|
+
* inlined JCS canonicalizer reproduces the client's `canonicalize`-based hash
|
|
30
|
+
* exactly — verified by the drift test.
|
|
31
|
+
*/
|
|
32
|
+
/// <reference types="node" />
|
|
33
|
+
import { createHash } from 'node:crypto';
|
|
34
|
+
export const HELD_OUT_SLATE_SCHEMA_VERSION = 'held-out-slate.v1';
|
|
35
|
+
/**
|
|
36
|
+
* Embedded v1 slate. Byte-identical (sans the `comment` doc field, which is not
|
|
37
|
+
* part of the hashed artifact) to
|
|
38
|
+
* `client/src/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json`.
|
|
39
|
+
* Guarded against drift by `test/solvernets/swe-rebench-v2-held-out-slate-cross-source.test.ts`.
|
|
40
|
+
*/
|
|
41
|
+
export const HELD_OUT_SLATE_V1 = {
|
|
42
|
+
schemaVersion: 'held-out-slate.v1',
|
|
43
|
+
solverType: 'swe-rebench-v2.v1',
|
|
44
|
+
version: 'v1',
|
|
45
|
+
generatedAt: '2026-05-29T00:00:00.000Z',
|
|
46
|
+
hash: 'sha256:2b029de15e271d5d2de35fe6477af98aef9fdc46f357e59139179edab1a42b15',
|
|
47
|
+
instanceIds: [
|
|
48
|
+
'ASPP__pelita-863',
|
|
49
|
+
'ASPP__pelita-875',
|
|
50
|
+
'AbsaOSS__generate-release-notes-207',
|
|
51
|
+
'All-Hands-AI__OpenHands-11914',
|
|
52
|
+
'BQSKit__bqskit-337',
|
|
53
|
+
'BerriAI__litellm-14715',
|
|
54
|
+
'BerriAI__litellm-15753',
|
|
55
|
+
'BrianPugh__cyclopts-609',
|
|
56
|
+
'carsdotcom__skelebot-280',
|
|
57
|
+
'pandas-dev__pandas-60736',
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
const SLATES_BY_VERSION = {
|
|
61
|
+
v1: HELD_OUT_SLATE_V1,
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Minimal RFC 8785 (JCS) serialization for the flat slate artifact: object keys
|
|
65
|
+
* sorted by UTF-16 code-unit order, string values JSON-escaped, arrays in
|
|
66
|
+
* order. Reproduces the client loader's `canonicalize`-based output for this
|
|
67
|
+
* shape exactly (the cross-source drift test locks this against the client
|
|
68
|
+
* artifact's declared hash).
|
|
69
|
+
*/
|
|
70
|
+
function canonicalJson(value) {
|
|
71
|
+
if (typeof value === 'string')
|
|
72
|
+
return JSON.stringify(value);
|
|
73
|
+
if (Array.isArray(value))
|
|
74
|
+
return `[${value.map(canonicalJson).join(',')}]`;
|
|
75
|
+
if (value !== null && typeof value === 'object') {
|
|
76
|
+
const keys = Object.keys(value).sort();
|
|
77
|
+
return `{${keys
|
|
78
|
+
.map((k) => `${JSON.stringify(k)}:${canonicalJson(value[k])}`)
|
|
79
|
+
.join(',')}}`;
|
|
80
|
+
}
|
|
81
|
+
return JSON.stringify(value);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The hashed projection: schema/solver/version/generatedAt + the sorted
|
|
85
|
+
* instanceIds. Excludes the `hash` field itself (a hash never hashes itself).
|
|
86
|
+
*/
|
|
87
|
+
function normalizeHeldOutSlateArtifact(artifact) {
|
|
88
|
+
return {
|
|
89
|
+
schemaVersion: HELD_OUT_SLATE_SCHEMA_VERSION,
|
|
90
|
+
solverType: artifact.solverType,
|
|
91
|
+
version: artifact.version,
|
|
92
|
+
generatedAt: artifact.generatedAt,
|
|
93
|
+
instanceIds: [...artifact.instanceIds].sort((a, b) => a.localeCompare(b)),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export function hashHeldOutSlateArtifact(artifact) {
|
|
97
|
+
const canonical = canonicalJson(normalizeHeldOutSlateArtifact(artifact));
|
|
98
|
+
return `sha256:${createHash('sha256').update(canonical).digest('hex')}`;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Load the held-out slate membership for the swe-rebench-v2 solverType at
|
|
102
|
+
* `version`. Recomputes the content hash and fails loud on mismatch against the
|
|
103
|
+
* artifact's declared `hash` (catching accidental edit-without-rehash drift —
|
|
104
|
+
* not deliberate tampering; see the module header). Throws for an unknown
|
|
105
|
+
* version (scores are only comparable within a known version).
|
|
106
|
+
*
|
|
107
|
+
* `override` is for tests only — it lets the fail-loud guard be exercised
|
|
108
|
+
* against a tampered copy without mutating the canonical embedded artifact.
|
|
109
|
+
*/
|
|
110
|
+
export function loadHeldOutSlate(version, override) {
|
|
111
|
+
const artifact = override ?? SLATES_BY_VERSION[version];
|
|
112
|
+
if (!artifact) {
|
|
113
|
+
throw new Error(`held-out slate not found for swe-rebench-v2 version=${version}`);
|
|
114
|
+
}
|
|
115
|
+
if (artifact.version !== version) {
|
|
116
|
+
throw new Error(`held-out slate version mismatch: artifact declares ${artifact.version}, requested ${version}`);
|
|
117
|
+
}
|
|
118
|
+
const computed = hashHeldOutSlateArtifact(artifact);
|
|
119
|
+
if (artifact.hash !== computed) {
|
|
120
|
+
throw new Error(`held-out slate hash mismatch for swe-rebench-v2 ${version}: declared ${artifact.hash}, computed ${computed} (artifact was edited without re-deriving the hash)`);
|
|
121
|
+
}
|
|
122
|
+
return { version: artifact.version, hash: computed, instanceIds: new Set(artifact.instanceIds) };
|
|
123
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { SweRebenchV2LanguageSchema, SweRebenchV2TaskSchema, } from '../swe-rebench-v2.js';
|
|
2
2
|
export type { SweRebenchV2Task } from '../swe-rebench-v2.js';
|
|
3
|
-
export { SweRebenchV2SolutionPayloadSchema, SweRebenchV2VerdictPayloadSchema, } from '../payloads/swe-rebench-v2.js';
|
|
4
|
-
export type { SweRebenchV2SolutionPayload, SweRebenchV2VerdictPayload, } from '../payloads/swe-rebench-v2.js';
|
|
3
|
+
export { SweRebenchV2SolutionPayloadSchema, SweRebenchV2VerdictPayloadSchema, SweRebenchV2VerdictV2PayloadSchema, } from '../payloads/swe-rebench-v2.js';
|
|
4
|
+
export type { SweRebenchV2SolutionPayload, SweRebenchV2VerdictPayload, SweRebenchV2VerdictV2Payload, } from '../payloads/swe-rebench-v2.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { SweRebenchV2LanguageSchema, SweRebenchV2TaskSchema, } from '../swe-rebench-v2.js';
|
|
2
|
-
export { SweRebenchV2SolutionPayloadSchema, SweRebenchV2VerdictPayloadSchema, } from '../payloads/swe-rebench-v2.js';
|
|
2
|
+
export { SweRebenchV2SolutionPayloadSchema, SweRebenchV2VerdictPayloadSchema, SweRebenchV2VerdictV2PayloadSchema, } from '../payloads/swe-rebench-v2.js';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Spec: docs/superpowers/specs/2026-05-06-agent-harness-solvernet-design.md §3.3
|
|
7
7
|
*/
|
|
8
|
-
import { z } from 'zod';
|
|
8
|
+
import { z } from 'zod/v3';
|
|
9
9
|
export declare const SweRebenchV2LanguageSchema: z.ZodEnum<["python", "javascript", "typescript", "go", "c", "cpp", "cs", "java", "rust", "dart"]>;
|
|
10
10
|
export declare const SweRebenchV2TaskSchema: z.ZodObject<{
|
|
11
11
|
schemaVersion: z.ZodLiteral<"swe-rebench-v2.v1">;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Spec: docs/superpowers/specs/2026-05-06-agent-harness-solvernet-design.md §3.3
|
|
7
7
|
*/
|
|
8
|
-
import { z } from 'zod';
|
|
8
|
+
import { z } from 'zod/v3';
|
|
9
9
|
export const SweRebenchV2LanguageSchema = z.enum([
|
|
10
10
|
'python', 'javascript', 'typescript', 'go',
|
|
11
11
|
'c', 'cpp', 'cs', 'java', 'rust', 'dart',
|
|
@@ -31,13 +31,21 @@
|
|
|
31
31
|
"import": "./dist/solvernets/swe-rebench-v2.js",
|
|
32
32
|
"types": "./dist/solvernets/swe-rebench-v2.d.ts"
|
|
33
33
|
},
|
|
34
|
+
"./solvernets/jinn-repo": {
|
|
35
|
+
"import": "./dist/solvernets/jinn-repo.js",
|
|
36
|
+
"types": "./dist/solvernets/jinn-repo.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./solvernets/swe-rebench-v2-held-out-slate": {
|
|
39
|
+
"import": "./dist/solvernets/swe-rebench-v2-held-out-slate.js",
|
|
40
|
+
"types": "./dist/solvernets/swe-rebench-v2-held-out-slate.d.ts"
|
|
41
|
+
},
|
|
34
42
|
"./checkpoint": {
|
|
35
43
|
"import": "./dist/checkpoint.js",
|
|
36
44
|
"types": "./dist/checkpoint.d.ts"
|
|
37
45
|
}
|
|
38
46
|
},
|
|
39
47
|
"dependencies": {
|
|
40
|
-
"zod": "^
|
|
48
|
+
"zod": "^4.4.3",
|
|
41
49
|
"zod-to-json-schema": "^3.23.0"
|
|
42
50
|
}
|
|
43
51
|
}
|
package/docker-compose.yml
CHANGED
|
@@ -33,8 +33,9 @@ services:
|
|
|
33
33
|
volumes:
|
|
34
34
|
# Persistent daemon state: database, keystore, and earning progress
|
|
35
35
|
- jinn-data:/data
|
|
36
|
-
# Persistent authentication state: stores Claude's OAuth token
|
|
37
|
-
-
|
|
36
|
+
# Persistent authentication state: stores Claude's OAuth token. The image
|
|
37
|
+
# now runs as the non-root `node` user, so file-auth lives at /home/node/.claude.
|
|
38
|
+
- jinn-claude-state:/home/node/.claude
|
|
38
39
|
command: ["run"]
|
|
39
40
|
|
|
40
41
|
volumes:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jinn-network/client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9-canary.144d87d2",
|
|
4
4
|
"description": "Jinn protocol client — headless daemon for the restoration training loop",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "yarn@4.13.0",
|
|
@@ -41,14 +41,17 @@
|
|
|
41
41
|
"scripts": {
|
|
42
42
|
"postinstall": "node dist/scripts/fix-node-pty.mjs 2>/dev/null || node scripts/fix-node-pty.mjs 2>/dev/null || true",
|
|
43
43
|
"e2e:cold-start-builder": "vitest run --config vitest.acceptance.config.ts",
|
|
44
|
-
"e2e:full-cycle": "tsx test/e2e/learner-full-cycle.ts",
|
|
45
|
-
"e2e:full-cycle-swe-rebench-v2": "tsx test/e2e/learner-full-cycle-swe-rebench-v2.ts",
|
|
44
|
+
"e2e:full-cycle": "yarn build:sdk && tsx test/e2e/learner-full-cycle.ts",
|
|
45
|
+
"e2e:full-cycle-swe-rebench-v2": "yarn build:sdk && tsx test/e2e/learner-full-cycle-swe-rebench-v2.ts",
|
|
46
|
+
"e2e:train-arm-slope": "tsx test/e2e/train-arm-slope-swe-rebench-v2.ts",
|
|
47
|
+
"e2e:train-arm-efficacy": "tsx test/e2e/train-arm-efficacy-swe-rebench-v2.ts",
|
|
46
48
|
"jinn": "tsx src/bin/jinn.ts",
|
|
47
49
|
"dev": "yarn build && node dist/bin/jinn.js",
|
|
48
50
|
"build:sdk": "yarn --cwd ../packages/sdk install --immutable && yarn --cwd ../packages/sdk build",
|
|
49
|
-
"build": "yarn build:sdk && yarn build:spa && tsc && chmod +x dist/bin/jinn.js && rm -rf dist/dashboard && mkdir -p dist/dashboard && cp -R src/dashboard/spa/dist/. dist/dashboard/ && rm -rf dist/templates && cp -R templates dist/templates && rm -rf dist/plugins/learner && mkdir -p dist/plugins && cp -R plugins/learner dist/plugins/learner && mkdir -p dist/scripts && cp scripts/fix-node-pty.mjs scripts/swe-rebench-v2-seed-pool.json scripts/swe-rebench-v2-known-bad.json scripts/swe-rebench-v2-pytest-missing.json dist/scripts/ && node scripts/vendor-sdk.mjs && node scripts/write-dist-build-meta.mjs",
|
|
51
|
+
"build": "yarn build:sdk && yarn build:spa && tsc && chmod +x dist/bin/jinn.js && rm -rf dist/dashboard && mkdir -p dist/dashboard && cp -R src/dashboard/spa/dist/. dist/dashboard/ && rm -rf dist/templates && cp -R templates dist/templates && rm -rf dist/plugins/learner && mkdir -p dist/plugins && cp -R plugins/learner dist/plugins/learner && mkdir -p dist/scripts && cp scripts/fix-node-pty.mjs scripts/swe-rebench-v2-seed-pool.json scripts/swe-rebench-v2-known-bad.json scripts/swe-rebench-v2-pytest-missing.json dist/scripts/ && mkdir -p dist/solver-types/slates && cp src/solver-types/slates/*.json dist/solver-types/slates/ && node scripts/vendor-sdk.mjs && node scripts/write-dist-build-meta.mjs",
|
|
50
52
|
"typecheck": "yarn build:sdk && tsc --noEmit",
|
|
51
53
|
"test": "yarn build:sdk && vitest run",
|
|
54
|
+
"test:hermetic": "yarn build:sdk && vitest run --config vitest.hermetic.config.ts",
|
|
52
55
|
"lint:no-late-mount": "node scripts/check-no-late-route-mount.mjs",
|
|
53
56
|
"test:watch": "vitest",
|
|
54
57
|
"test:claude-prediction": "yarn build && JINN_TEST_CLAUDE_PREDICTION=1 vitest run test/harnesses/impls/claude-mcp-prediction/isolation.test.ts",
|
|
@@ -62,12 +65,10 @@
|
|
|
62
65
|
"release:tier-1": "tsx scripts/release/run-tier-1.ts",
|
|
63
66
|
"release:tier-1:T1.1": "vitest run --config vitest.release-tier-1.config.ts test/release/tier-1/T1.1-bootstrap-fresh-anvil.test.ts",
|
|
64
67
|
"release:tier-1:T1.2": "vitest run --config vitest.release-tier-1.config.ts test/release/tier-1/T1.2-harness-readiness-contract.test.ts",
|
|
65
|
-
"release:tier-1:T1.3": "vitest run test/release/tier-1/T1.3-indexer-round-trip.test.ts",
|
|
66
68
|
"release:tier-1:T1.4": "playwright test --config=playwright.config.ts test/dashboard/release-prep/spa-route-smoke.e2e.test.ts",
|
|
67
69
|
"release:tier-2": "tsx scripts/release/run-tier-2.ts",
|
|
68
70
|
"release:tier-2:T2.1": "vitest run test/release/tier-2/T2.1-cross-op-donation.test.ts",
|
|
69
71
|
"release:tier-2:T2.2": "vitest run test/release/tier-2/T2.2-producer-evaluator.test.ts",
|
|
70
|
-
"release:tier-2:T2.3": "playwright test --config=playwright.config.ts test/dashboard/multi-op/launcher-join-flow.e2e.test.ts",
|
|
71
72
|
"release:tier-3": "tsx scripts/release/run-tier-3.ts",
|
|
72
73
|
"release:tier-3:T3.1": "JINN_T31_REAL=1 vitest run test/release/tier-3/T3.1-producer-evaluator-real.test.ts",
|
|
73
74
|
"release:donation-consumption": "node dist/scripts/donation-consumption-acceptance.js",
|
|
@@ -103,6 +104,8 @@
|
|
|
103
104
|
"dev:spa": "yarn workspace @jinn-network/operator-spa dev",
|
|
104
105
|
"e2e:spa": "yarn build && playwright test --config=playwright.config.ts test/dashboard/spa.e2e.test.ts",
|
|
105
106
|
"e2e:solvernet-flow": "yarn build && playwright test --config=playwright.config.ts test/dashboard/solvernet-flow.e2e.test.ts",
|
|
107
|
+
"e2e:join": "yarn build && playwright test --config=playwright.config.ts test/dashboard/join.e2e.test.ts",
|
|
108
|
+
"e2e:app-flow": "yarn build && playwright test --config=playwright.config.ts test/dashboard/solvernet-flow.e2e.test.ts test/dashboard/join.e2e.test.ts",
|
|
106
109
|
"e2e:funding-sequence": "yarn build && playwright test --config=playwright.config.ts test/dashboard/funding-sequence.e2e.test.ts",
|
|
107
110
|
"e2e:dashboard": "yarn build && playwright test --config=playwright.config.ts",
|
|
108
111
|
"e2e:donation": "vitest run test/smoke/donation-mode-smoke.test.ts test/smoke/donation-ipfs-http-smoke.test.ts"
|
|
@@ -123,24 +126,24 @@
|
|
|
123
126
|
"@opentelemetry/api": "^1.9.1",
|
|
124
127
|
"@opentelemetry/core": "^2.7.1",
|
|
125
128
|
"@opentelemetry/exporter-trace-otlp-grpc": "^0.218.0",
|
|
126
|
-
"@opentelemetry/exporter-trace-otlp-http": "^0.
|
|
129
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.218.0",
|
|
127
130
|
"@opentelemetry/resources": "^2.7.1",
|
|
128
|
-
"@opentelemetry/sdk-node": "^0.
|
|
131
|
+
"@opentelemetry/sdk-node": "^0.219.0",
|
|
129
132
|
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
130
|
-
"@safe-global/protocol-kit": "^
|
|
133
|
+
"@safe-global/protocol-kit": "^7.2.0",
|
|
131
134
|
"@safe-global/types-kit": "^3.0.0",
|
|
132
|
-
"@scure/bip32": "^
|
|
135
|
+
"@scure/bip32": "^2.2.0",
|
|
133
136
|
"@scure/bip39": "^1.4.0",
|
|
134
137
|
"@slicekit/erc8128": "^0.3.3",
|
|
135
|
-
"@x402/core": "^2.
|
|
136
|
-
"@x402/evm": "^2.
|
|
137
|
-
"@x402/fetch": "^2.
|
|
138
|
-
"@x402/hono": "^2.
|
|
138
|
+
"@x402/core": "^2.14.0",
|
|
139
|
+
"@x402/evm": "^2.14.0",
|
|
140
|
+
"@x402/fetch": "^2.14.0",
|
|
141
|
+
"@x402/hono": "^2.14.0",
|
|
139
142
|
"ajv": "^8.20.0",
|
|
140
143
|
"ajv-formats": "^3.0.1",
|
|
141
|
-
"better-sqlite3": "^
|
|
144
|
+
"better-sqlite3": "^12.10.0",
|
|
142
145
|
"bs58": "^6.0.0",
|
|
143
|
-
"canonicalize": "^
|
|
146
|
+
"canonicalize": "^3.0.0",
|
|
144
147
|
"chokidar": "^5.0.0",
|
|
145
148
|
"dotenv": "^17.4.1",
|
|
146
149
|
"hono": "^4.12.10",
|
|
@@ -151,7 +154,7 @@
|
|
|
151
154
|
"viem": "^2.0.0",
|
|
152
155
|
"ws": "^8.20.0",
|
|
153
156
|
"yaml": "^2.8.4",
|
|
154
|
-
"zod": "^
|
|
157
|
+
"zod": "^4.4.3"
|
|
155
158
|
},
|
|
156
159
|
"optionalDependencies": {
|
|
157
160
|
"@coinbase/cdp-sdk": "^1.48.2"
|
|
@@ -160,11 +163,11 @@
|
|
|
160
163
|
"@jinn-network/sdk": "portal:../packages/sdk",
|
|
161
164
|
"@playwright/test": "^1.59.1",
|
|
162
165
|
"@types/better-sqlite3": "^7.6.0",
|
|
163
|
-
"@types/node": "^
|
|
166
|
+
"@types/node": "^25.9.1",
|
|
164
167
|
"@types/semver": "^7.7.1",
|
|
165
168
|
"@types/ws": "^8.18.1",
|
|
166
169
|
"tsx": "^4.0.0",
|
|
167
|
-
"typescript": "^
|
|
168
|
-
"vitest": "^
|
|
170
|
+
"typescript": "^6.0.3",
|
|
171
|
+
"vitest": "^4.1.8"
|
|
169
172
|
}
|
|
170
173
|
}
|