@jinn-network/client 0.1.8 → 0.1.9-canary.023faefb
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +2 -2
- package/README.md +6 -0
- package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
- package/deployments/deployment-stolas-l2-baseSepolia-fast.json +23 -3
- package/deployments/deployment-task-coordinator-router-v3-baseSepolia-fast.json +34 -6
- package/dist/adapters/mech/adapter.d.ts +31 -1
- package/dist/adapters/mech/adapter.js +126 -53
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +174 -13
- package/dist/adapters/mech/contracts.js +99 -49
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/safe-revert.d.ts +4 -0
- package/dist/adapters/mech/safe-revert.js +5 -1
- package/dist/adapters/mech/safe-revert.js.map +1 -1
- package/dist/adapters/mech/safe.js +77 -1
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +5 -130
- package/dist/adapters/mech/types.js +9 -65
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/adapters/mech/verdict-code.js +1 -1
- package/dist/adapters/mech/verdict-code.js.map +1 -1
- package/dist/api/bootstrap-endpoint.d.ts +19 -3
- package/dist/api/bootstrap-endpoint.js +4 -0
- package/dist/api/bootstrap-endpoint.js.map +1 -1
- package/dist/api/discovery-endpoint.d.ts +1 -0
- package/dist/api/discovery-endpoint.js +24 -0
- package/dist/api/discovery-endpoint.js.map +1 -1
- package/dist/api/fleet-build.d.ts +1 -7
- package/dist/api/fleet-build.js +0 -7
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.d.ts +26 -17
- package/dist/api/gather-status.js +62 -520
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/harness-auth-status-endpoint.d.ts +21 -0
- package/dist/api/harness-auth-status-endpoint.js +17 -0
- package/dist/api/harness-auth-status-endpoint.js.map +1 -0
- package/dist/api/launcher-endpoints.js +6 -1
- package/dist/api/launcher-endpoints.js.map +1 -1
- package/dist/api/launcher-status.d.ts +2 -0
- package/dist/api/launcher-status.js.map +1 -1
- package/dist/api/launcher-tasks.d.ts +47 -0
- package/dist/api/launcher-tasks.js +88 -3
- package/dist/api/launcher-tasks.js.map +1 -1
- package/dist/api/loop-completion-build.d.ts +79 -0
- package/dist/api/loop-completion-build.js +154 -0
- package/dist/api/loop-completion-build.js.map +1 -0
- package/dist/api/operator-artifacts-endpoint.js +1 -1
- package/dist/api/operator-artifacts-endpoint.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +2 -1
- package/dist/api/portfolio-v0-build.js +5 -7
- package/dist/api/portfolio-v0-build.js.map +1 -1
- package/dist/api/prediction-v1-build.d.ts +2 -2
- package/dist/api/prediction-v1-build.js +5 -7
- package/dist/api/prediction-v1-build.js.map +1 -1
- package/dist/api/rewards-build.d.ts +8 -1
- package/dist/api/rewards-build.js +32 -4
- package/dist/api/rewards-build.js.map +1 -1
- package/dist/api/rewards-endpoint.d.ts +12 -0
- package/dist/api/rewards-endpoint.js +46 -0
- package/dist/api/rewards-endpoint.js.map +1 -0
- package/dist/api/server.d.ts +6 -16
- package/dist/api/server.js +29 -26
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +45 -0
- package/dist/api/setup-endpoints.js +271 -52
- package/dist/api/setup-endpoints.js.map +1 -1
- package/dist/api/solvernets-endpoints.js +4 -1
- package/dist/api/solvernets-endpoints.js.map +1 -1
- package/dist/api/status-build.d.ts +71 -94
- package/dist/api/status-build.js +11 -77
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +0 -4
- package/dist/api/status-rollup-build.js +0 -4
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/api/stop-hook.d.ts +1 -1
- package/dist/api/stop-hook.js +1 -1
- package/dist/api/stop-hook.js.map +1 -1
- package/dist/api/task-run-routing.d.ts +1 -1
- package/dist/api/task-runs-build.d.ts +2 -2
- package/dist/api/task-runs-build.js +5 -7
- package/dist/api/task-runs-build.js.map +1 -1
- package/dist/bin/jinn-distil-mcp.js +813 -0
- package/dist/bin/jinn-layer.js +12568 -0
- package/dist/build-info.json +4 -4
- package/dist/build-meta.json +1 -1
- package/dist/captures/distil-export.d.ts +54 -0
- package/dist/captures/distil-export.js +135 -0
- package/dist/captures/distil-export.js.map +1 -0
- package/dist/captures/ingest.d.ts +21 -0
- package/dist/captures/ingest.js +144 -0
- package/dist/captures/ingest.js.map +1 -0
- package/dist/captures/live-publisher.d.ts +9 -0
- package/dist/captures/live-publisher.js +5 -3
- package/dist/captures/live-publisher.js.map +1 -1
- package/dist/captures/publish.d.ts +15 -0
- package/dist/captures/publish.js +17 -7
- package/dist/captures/publish.js.map +1 -1
- package/dist/cli/commands/codedigest-revert-check.js +6 -2
- package/dist/cli/commands/codedigest-revert-check.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.js +36 -4
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/eval.d.ts +87 -0
- package/dist/cli/commands/eval.js +481 -0
- package/dist/cli/commands/eval.js.map +1 -0
- package/dist/cli/commands/rewards.d.ts +2 -0
- package/dist/cli/commands/rewards.js +39 -10
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/solver-nets.js +68 -0
- package/dist/cli/commands/solver-nets.js.map +1 -1
- package/dist/cli/commands/status.js +0 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/update.js +8 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/version.js +4 -0
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/execution-context.js +2 -1
- package/dist/cli/execution-context.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/introspection-context.js +0 -3
- package/dist/cli/introspection-context.js.map +1 -1
- package/dist/config.d.ts +158 -541
- package/dist/config.js +190 -197
- package/dist/config.js.map +1 -1
- package/dist/contracts/abis.d.ts +100 -0
- package/dist/contracts/abis.js +58 -0
- package/dist/contracts/abis.js.map +1 -0
- package/dist/contracts/addresses.d.ts +36 -0
- package/dist/contracts/addresses.js +60 -0
- package/dist/contracts/addresses.js.map +1 -0
- package/dist/corpus/acquire.d.ts +7 -6
- package/dist/corpus/acquire.js +10 -10
- package/dist/corpus/acquire.js.map +1 -1
- package/dist/corpus/fetch-artifact.d.ts +21 -0
- package/dist/corpus/fetch-artifact.js +33 -0
- package/dist/corpus/fetch-artifact.js.map +1 -0
- package/dist/corpus/index.d.ts +2 -2
- package/dist/corpus/onchain-query.d.ts +0 -1
- package/dist/corpus/onchain-query.js +2 -5
- package/dist/corpus/onchain-query.js.map +1 -1
- package/dist/corpus/route-resolver.d.ts +3 -3
- package/dist/corpus/route-resolver.js +3 -3
- package/dist/daemon/ai-units-gate.d.ts +6 -6
- package/dist/daemon/ai-units-gate.js +11 -10
- package/dist/daemon/ai-units-gate.js.map +1 -1
- package/dist/daemon/balance-topup-loop.js +27 -9
- package/dist/daemon/balance-topup-loop.js.map +1 -1
- package/dist/daemon/checkpoint-loop.js +2 -2
- package/dist/daemon/creator.d.ts +1 -0
- package/dist/daemon/creator.js +39 -25
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +15 -10
- package/dist/daemon/daemon.js +95 -41
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/delivery-watcher.d.ts +9 -0
- package/dist/daemon/delivery-watcher.js +24 -1
- package/dist/daemon/delivery-watcher.js.map +1 -1
- package/dist/daemon/eviction-loop.d.ts +7 -0
- package/dist/daemon/eviction-loop.js +19 -3
- package/dist/daemon/eviction-loop.js.map +1 -1
- package/dist/daemon/join-applier.d.ts +35 -0
- package/dist/daemon/join-applier.js +49 -0
- package/dist/daemon/join-applier.js.map +1 -0
- package/dist/daemon/loop-heartbeat.d.ts +89 -0
- package/dist/daemon/loop-heartbeat.js +75 -0
- package/dist/daemon/loop-heartbeat.js.map +1 -0
- package/dist/{api/peers.js → daemon/peer-sync.js} +3 -1
- package/dist/daemon/peer-sync.js.map +1 -0
- package/dist/daemon/reward-claim-loop.js +28 -10
- package/dist/daemon/reward-claim-loop.js.map +1 -1
- package/dist/daemon/skip-log-dedup.d.ts +1 -1
- package/dist/daemon/skip-log-dedup.js +3 -0
- package/dist/daemon/skip-log-dedup.js.map +1 -1
- package/dist/daemon/spend-cap-gate.d.ts +0 -6
- package/dist/daemon/spend-cap-gate.js +1 -8
- package/dist/daemon/spend-cap-gate.js.map +1 -1
- package/dist/daemon/watchdog-loop.d.ts +84 -0
- package/dist/daemon/watchdog-loop.js +91 -0
- package/dist/daemon/watchdog-loop.js.map +1 -0
- package/dist/dashboard/assets/index-B_5Cb-ZH.js +161 -0
- package/dist/dashboard/assets/index-D7rvJRNa.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/discovery/http.d.ts +17 -0
- package/dist/discovery/http.js +378 -26
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.js +174 -10
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +149 -0
- package/dist/discovery/types.js +40 -0
- package/dist/discovery/types.js.map +1 -1
- package/dist/discovery/with-fallback.js +24 -0
- package/dist/discovery/with-fallback.js.map +1 -1
- package/dist/earning/bootstrap-run.d.ts +25 -0
- package/dist/earning/bootstrap-run.js +315 -0
- package/dist/earning/bootstrap-run.js.map +1 -0
- package/dist/earning/bootstrap.d.ts +31 -11
- package/dist/earning/bootstrap.js +123 -212
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +2 -232
- package/dist/earning/contracts.js +16 -205
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/faucet-topup-store.d.ts +41 -0
- package/dist/earning/faucet-topup-store.js +89 -0
- package/dist/earning/faucet-topup-store.js.map +1 -0
- package/dist/earning/faucet.d.ts +1 -1
- package/dist/earning/faucet.js +2 -2
- package/dist/earning/faucet.js.map +1 -1
- package/dist/earning/safe-adapter.js +12 -45
- package/dist/earning/safe-adapter.js.map +1 -1
- package/dist/earning/steps/context.d.ts +42 -0
- package/dist/earning/steps/context.js +4 -0
- package/dist/earning/steps/context.js.map +1 -0
- package/dist/earning/steps/fleet-identity-register.d.ts +4 -0
- package/dist/earning/steps/fleet-identity-register.js +65 -0
- package/dist/earning/steps/fleet-identity-register.js.map +1 -0
- package/dist/earning/steps/fleet-safe-deploy.d.ts +4 -0
- package/dist/earning/steps/fleet-safe-deploy.js +62 -0
- package/dist/earning/steps/fleet-safe-deploy.js.map +1 -0
- package/dist/earning/steps/fleet-safe-predict.d.ts +4 -0
- package/dist/earning/steps/fleet-safe-predict.js +18 -0
- package/dist/earning/steps/fleet-safe-predict.js.map +1 -0
- package/dist/earning/steps/receipt-parsing.d.ts +12 -0
- package/dist/earning/steps/receipt-parsing.js +71 -0
- package/dist/earning/steps/receipt-parsing.js.map +1 -0
- package/dist/earning/stolas-claim.js +8 -8
- package/dist/earning/stolas-claim.js.map +1 -1
- package/dist/earning/{jinn-rewards.d.ts → stolas-staking.d.ts} +4 -8
- package/dist/earning/{jinn-rewards.js → stolas-staking.js} +6 -10
- package/dist/earning/stolas-staking.js.map +1 -0
- package/dist/earning/testnet-setup-migration.d.ts +1 -0
- package/dist/earning/testnet-setup-migration.js +7 -2
- package/dist/earning/testnet-setup-migration.js.map +1 -1
- package/dist/earning/types.d.ts +1 -1
- package/dist/earning/types.js +1 -1
- package/dist/earning/types.js.map +1 -1
- package/dist/earning/viem-clients.d.ts +3 -19
- package/dist/earning/viem-clients.js +4 -31
- package/dist/earning/viem-clients.js.map +1 -1
- package/dist/erc8004/addresses.d.ts +6 -5
- package/dist/erc8004/addresses.js +7 -5
- package/dist/erc8004/addresses.js.map +1 -1
- package/dist/erc8004/identity.d.ts +12 -1
- package/dist/erc8004/identity.js +31 -0
- package/dist/erc8004/identity.js.map +1 -1
- package/dist/erc8004/index.d.ts +1 -1
- package/dist/erc8004/index.js +1 -1
- package/dist/erc8004/index.js.map +1 -1
- package/dist/eval/capability-slate.d.ts +54 -0
- package/dist/eval/capability-slate.js +116 -0
- package/dist/eval/capability-slate.js.map +1 -0
- package/dist/eval/capability-stats.d.ts +39 -0
- package/dist/eval/capability-stats.js +123 -0
- package/dist/eval/capability-stats.js.map +1 -0
- package/dist/eval/contested-band.d.ts +18 -0
- package/dist/eval/contested-band.js +19 -0
- package/dist/eval/contested-band.js.map +1 -0
- package/dist/eval/corpus-index.d.ts +21 -0
- package/dist/eval/corpus-index.js +55 -0
- package/dist/eval/corpus-index.js.map +1 -0
- package/dist/eval/disjointness.d.ts +26 -0
- package/dist/eval/disjointness.js +67 -0
- package/dist/eval/disjointness.js.map +1 -0
- package/dist/eval/eval-harness-run.d.ts +63 -0
- package/dist/eval/eval-harness-run.js +123 -0
- package/dist/eval/eval-harness-run.js.map +1 -0
- package/dist/eval/mcnemar-power.d.ts +14 -0
- package/dist/eval/mcnemar-power.js +40 -0
- package/dist/eval/mcnemar-power.js.map +1 -0
- package/dist/eval/orchestrator.d.ts +224 -0
- package/dist/eval/orchestrator.js +250 -0
- package/dist/eval/orchestrator.js.map +1 -0
- package/dist/eval/paired.d.ts +68 -0
- package/dist/eval/paired.js +93 -0
- package/dist/eval/paired.js.map +1 -0
- package/dist/eval/resolve-slate-tasks.d.ts +35 -0
- package/dist/eval/resolve-slate-tasks.js +56 -0
- package/dist/eval/resolve-slate-tasks.js.map +1 -0
- package/dist/eval/screen-discovery.d.ts +22 -0
- package/dist/eval/screen-discovery.js +71 -0
- package/dist/eval/screen-discovery.js.map +1 -0
- package/dist/eval/screen-progress.d.ts +41 -0
- package/dist/eval/screen-progress.js +60 -0
- package/dist/eval/screen-progress.js.map +1 -0
- package/dist/eval/screen-runner.d.ts +30 -0
- package/dist/eval/screen-runner.js +289 -0
- package/dist/eval/screen-runner.js.map +1 -0
- package/dist/eval/screen.d.ts +107 -0
- package/dist/eval/screen.js +159 -0
- package/dist/eval/screen.js.map +1 -0
- package/dist/eval/slope.d.ts +29 -0
- package/dist/eval/slope.js +46 -0
- package/dist/eval/slope.js.map +1 -0
- package/dist/eval/train-sequence.d.ts +35 -0
- package/dist/eval/train-sequence.js +59 -0
- package/dist/eval/train-sequence.js.map +1 -0
- package/dist/eval/wilson.d.ts +45 -0
- package/dist/eval/wilson.js +48 -0
- package/dist/eval/wilson.js.map +1 -0
- package/dist/events/types.d.ts +1 -1
- package/dist/events/types.js +1 -1
- package/dist/events/types.js.map +1 -1
- package/dist/harnesses/auth-source.d.ts +51 -0
- package/dist/harnesses/auth-source.js +155 -0
- package/dist/harnesses/auth-source.js.map +1 -0
- package/dist/harnesses/engine/canonical-json.js +5 -3
- package/dist/harnesses/engine/canonical-json.js.map +1 -1
- package/dist/harnesses/engine/engine.d.ts +34 -1
- package/dist/harnesses/engine/engine.js +91 -11
- package/dist/harnesses/engine/engine.js.map +1 -1
- package/dist/harnesses/engine/packaging.js +5 -5
- package/dist/harnesses/engine/packaging.js.map +1 -1
- package/dist/harnesses/engine/persistence.d.ts +19 -61
- package/dist/harnesses/engine/persistence.js +28 -0
- package/dist/harnesses/engine/persistence.js.map +1 -1
- package/dist/harnesses/impls/_evaluator-base.d.ts +48 -0
- package/dist/harnesses/impls/_evaluator-base.js +35 -0
- package/dist/harnesses/impls/_evaluator-base.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +1 -1
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js +1 -1
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +2 -3
- package/dist/harnesses/impls/claude-mcp-prediction/index.js +29 -99
- package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +4 -21
- package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +2 -0
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +30 -79
- package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +4 -19
- package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +2 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +1 -1
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.d.ts +39 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js +62 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server-script.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server.d.ts +40 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js +44 -0
- package/dist/harnesses/impls/claude-mcp-shared/mcp-server.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.d.ts +56 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js +79 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-harness.js.map +1 -0
- package/dist/harnesses/impls/hermes-agent/adapter.d.ts +2 -0
- package/dist/harnesses/impls/hermes-agent/adapter.js +8 -5
- package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +1 -0
- package/dist/harnesses/impls/hermes-agent/bootstrap.js +6 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/harness.d.ts +25 -3
- package/dist/harnesses/impls/hermes-agent/harness.js +89 -5
- package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
- package/dist/harnesses/impls/index.d.ts +2 -0
- package/dist/harnesses/impls/index.js +10 -1
- package/dist/harnesses/impls/index.js.map +1 -1
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.d.ts +34 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js +111 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/eval-runner.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.d.ts +24 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js +19 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/evaluator.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.d.ts +64 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.js +125 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/harness.js.map +1 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.d.ts +32 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.js +73 -0
- package/dist/harnesses/impls/jinn-repo-evaluator/repro.js.map +1 -0
- package/dist/harnesses/impls/learner/adapters/claude-code.js +5 -0
- package/dist/harnesses/impls/learner/adapters/claude-code.js.map +1 -1
- package/dist/harnesses/impls/learner/adapters/codex-code.d.ts +11 -1
- package/dist/harnesses/impls/learner/adapters/codex-code.js +130 -15
- package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
- package/dist/harnesses/impls/learner/harness.d.ts +29 -1
- package/dist/harnesses/impls/learner/harness.js +85 -1
- package/dist/harnesses/impls/learner/harness.js.map +1 -1
- package/dist/harnesses/impls/learner/harvest.d.ts +2 -0
- package/dist/harnesses/impls/learner/harvest.js +51 -1
- package/dist/harnesses/impls/learner/harvest.js.map +1 -1
- package/dist/harnesses/impls/learner/plugin-path.js +1 -0
- package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +5 -15
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +10 -29
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -1
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +5 -15
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +10 -23
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
- package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +5 -15
- package/dist/harnesses/impls/prediction-v0-evaluator/index.js +10 -25
- package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -1
- package/dist/harnesses/impls/stub.d.ts +2 -2
- package/dist/harnesses/impls/stub.js +2 -2
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +8 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +3 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +2 -2
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +3 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
- package/dist/harnesses/readiness-registry.d.ts +16 -0
- package/dist/harnesses/readiness-registry.js +28 -6
- package/dist/harnesses/readiness-registry.js.map +1 -1
- package/dist/harnesses/types.d.ts +26 -0
- package/dist/learner/revert-decision.d.ts +16 -1
- package/dist/learner/revert-decision.js +38 -18
- package/dist/learner/revert-decision.js.map +1 -1
- package/dist/learner/revert-stats.d.ts +14 -0
- package/dist/learner/revert-stats.js +42 -0
- package/dist/learner/revert-stats.js.map +1 -1
- package/dist/learner/verification-gate.d.ts +53 -0
- package/dist/learner/verification-gate.js +80 -0
- package/dist/learner/verification-gate.js.map +1 -0
- package/dist/local-provider-url.d.ts +3 -0
- package/dist/local-provider-url.js +28 -0
- package/dist/local-provider-url.js.map +1 -0
- package/dist/main.js +188 -566
- package/dist/main.js.map +1 -1
- package/dist/mcp/acquire-artifact.d.ts +3 -3
- package/dist/mcp/acquire-artifact.js +3 -3
- package/dist/mcp/operator-server.js +1 -1
- package/dist/mcp/operator-server.js.map +1 -1
- package/dist/mcp/server.js +5 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/monitoring/net-liveness.d.ts +143 -0
- package/dist/monitoring/net-liveness.js +301 -0
- package/dist/monitoring/net-liveness.js.map +1 -0
- package/dist/observability/emit-event.d.ts +1 -1
- package/dist/observability/emit-event.js +0 -4
- package/dist/observability/emit-event.js.map +1 -1
- package/dist/observability/progress.d.ts +11 -0
- package/dist/observability/progress.js +16 -0
- package/dist/observability/progress.js.map +1 -0
- package/dist/pilot/cost.d.ts +19 -0
- package/dist/pilot/cost.js +31 -0
- package/dist/pilot/cost.js.map +1 -0
- package/dist/pilot/instance.d.ts +20 -0
- package/dist/pilot/instance.js +19 -0
- package/dist/pilot/instance.js.map +1 -0
- package/dist/pilot/repo.d.ts +31 -0
- package/dist/pilot/repo.js +42 -0
- package/dist/pilot/repo.js.map +1 -0
- package/dist/pilot/solve.d.ts +22 -0
- package/dist/pilot/solve.js +37 -0
- package/dist/pilot/solve.js.map +1 -0
- package/dist/pilot/tally.d.ts +35 -0
- package/dist/pilot/tally.js +61 -0
- package/dist/pilot/tally.js.map +1 -0
- package/dist/plugins/learner/.claude-plugin/plugin.json +1 -1
- package/dist/plugins/learner/.codex-plugin/plugin.json +1 -1
- package/dist/plugins/learner/hooks/session-start +30 -1
- package/dist/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
- package/dist/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
- package/dist/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
- package/dist/plugins/local-trace-distiller/.mcp.json +8 -0
- package/dist/plugins/local-trace-distiller/README.md +27 -0
- package/dist/plugins/local-trace-distiller/jinn.plugin.json +36 -0
- package/dist/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
- package/dist/preflight/deployment-readiness.d.ts +127 -0
- package/dist/preflight/deployment-readiness.js +308 -0
- package/dist/preflight/deployment-readiness.js.map +1 -0
- package/dist/preflight/pidfile-liveness.d.ts +7 -1
- package/dist/preflight/pidfile-liveness.js +14 -0
- package/dist/preflight/pidfile-liveness.js.map +1 -1
- package/dist/preflight/rpc-network.d.ts +10 -3
- package/dist/preflight/rpc-network.js +46 -13
- package/dist/preflight/rpc-network.js.map +1 -1
- package/dist/preflight/stable-cwd.d.ts +29 -0
- package/dist/preflight/stable-cwd.js +98 -0
- package/dist/preflight/stable-cwd.js.map +1 -0
- package/dist/rpc/transport.d.ts +43 -5
- package/dist/rpc/transport.js +131 -30
- package/dist/rpc/transport.js.map +1 -1
- package/dist/scripts/swe-rebench-v2-seed-pool.json +2 -1
- package/dist/solver-nets/registry.d.ts +19 -0
- package/dist/solver-nets/registry.js +95 -66
- package/dist/solver-nets/registry.js.map +1 -1
- package/dist/solver-types/_jinn-repo-pool.d.ts +27 -0
- package/dist/solver-types/_jinn-repo-pool.js +27 -0
- package/dist/solver-types/_jinn-repo-pool.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.d.ts +76 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.js +156 -0
- package/dist/solver-types/_swe-rebench-v2-held-out-slate.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.d.ts +81 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.js +116 -0
- package/dist/solver-types/_swe-rebench-v2-pool-recovery.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-state.d.ts +9 -0
- package/dist/solver-types/_swe-rebench-v2-state.js +14 -0
- package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +30 -0
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +40 -0
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
- package/dist/solver-types/index.js +2 -0
- package/dist/solver-types/index.js.map +1 -1
- package/dist/solver-types/jinn-repo-admit.d.ts +17 -0
- package/dist/solver-types/jinn-repo-admit.js +16 -0
- package/dist/solver-types/jinn-repo-admit.js.map +1 -0
- package/dist/solver-types/jinn-repo-auto.d.ts +60 -0
- package/dist/solver-types/jinn-repo-auto.js +163 -0
- package/dist/solver-types/jinn-repo-auto.js.map +1 -0
- package/dist/solver-types/jinn-repo-definition.d.ts +15 -0
- package/dist/solver-types/jinn-repo-definition.js +34 -0
- package/dist/solver-types/jinn-repo-definition.js.map +1 -0
- package/dist/solver-types/jinn-repo-extract.d.ts +16 -0
- package/dist/solver-types/jinn-repo-extract.js +32 -0
- package/dist/solver-types/jinn-repo-extract.js.map +1 -0
- package/dist/solver-types/jinn-repo.d.ts +21 -0
- package/dist/solver-types/jinn-repo.js +23 -0
- package/dist/solver-types/jinn-repo.js.map +1 -0
- package/dist/solver-types/learner-loop-test.js +1 -1
- package/dist/solver-types/learner-loop-test.js.map +1 -1
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v1.json +20 -0
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.json +19 -0
- package/dist/solver-types/slates/held-out-slate.swe-rebench-v2.v2.screening-report.json +628 -0
- package/dist/solver-types/solver-type.d.ts +8 -0
- package/dist/solver-types/swe-rebench-v2.d.ts +2 -0
- package/dist/solver-types/swe-rebench-v2.js +115 -10
- package/dist/solver-types/swe-rebench-v2.js.map +1 -1
- package/dist/solvernets/launched-record-dispatcher.d.ts +5 -0
- package/dist/solvernets/launched-record-dispatcher.js +14 -1
- package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
- package/dist/solvernets/registry-client-erc8004.js +29 -37
- package/dist/solvernets/registry-client-erc8004.js.map +1 -1
- package/dist/solvernets/registry-client.d.ts +6 -0
- package/dist/solvernets/store.d.ts +1 -1
- package/dist/solvernets/store.js +8 -3
- package/dist/solvernets/store.js.map +1 -1
- package/dist/spend/ai-units-config.d.ts +10 -0
- package/dist/spend/ai-units-config.js +7 -1
- package/dist/spend/ai-units-config.js.map +1 -1
- package/dist/spend/ai-units.d.ts +51 -0
- package/dist/spend/ai-units.js +73 -0
- package/dist/spend/ai-units.js.map +1 -1
- package/dist/spend/credential.d.ts +2 -2
- package/dist/spend/credential.js +9 -3
- package/dist/spend/credential.js.map +1 -1
- package/dist/spend/record.js +12 -5
- package/dist/spend/record.js.map +1 -1
- package/dist/spend/spend-cap.d.ts +10 -0
- package/dist/spend/spend-cap.js +13 -0
- package/dist/spend/spend-cap.js.map +1 -0
- package/dist/spend/usage.js +39 -3
- package/dist/spend/usage.js.map +1 -1
- package/dist/store/store.d.ts +106 -5
- package/dist/store/store.js +194 -8
- package/dist/store/store.js.map +1 -1
- package/dist/trajectory/emit.d.ts +6 -0
- package/dist/trajectory/emit.js +9 -1
- package/dist/trajectory/emit.js.map +1 -1
- package/dist/trajectory/harness-bundle-schema.d.ts +1 -1
- package/dist/trajectory/harness-bundle-schema.js +1 -1
- package/dist/trajectory/harness-bundle-schema.js.map +1 -1
- package/dist/trajectory/processors/identity-scrub.js +22 -3
- package/dist/trajectory/processors/identity-scrub.js.map +1 -1
- package/dist/trajectory/schema.d.ts +1 -1
- package/dist/trajectory/schema.js +1 -1
- package/dist/trajectory/schema.js.map +1 -1
- package/dist/trajectory/scrub/build.d.ts +46 -0
- package/dist/trajectory/scrub/build.js +76 -0
- package/dist/trajectory/scrub/build.js.map +1 -0
- package/dist/trajectory/scrub/emit-scrub.d.ts +41 -0
- package/dist/trajectory/scrub/emit-scrub.js +88 -0
- package/dist/trajectory/scrub/emit-scrub.js.map +1 -0
- package/dist/trajectory/scrub/key-policy.d.ts +20 -0
- package/dist/trajectory/scrub/key-policy.js +43 -0
- package/dist/trajectory/scrub/key-policy.js.map +1 -0
- package/dist/trajectory/scrub/layer2.d.ts +23 -0
- package/dist/trajectory/scrub/layer2.js +33 -0
- package/dist/trajectory/scrub/layer2.js.map +1 -0
- package/dist/trajectory/scrub/ml-pii-stage.d.ts +24 -0
- package/dist/trajectory/scrub/ml-pii-stage.js +43 -0
- package/dist/trajectory/scrub/ml-pii-stage.js.map +1 -0
- package/dist/trajectory/scrub/openredaction-stage.d.ts +178 -0
- package/dist/trajectory/scrub/openredaction-stage.js +269 -0
- package/dist/trajectory/scrub/openredaction-stage.js.map +1 -0
- package/dist/trajectory/scrub/pii-build.d.ts +31 -0
- package/dist/trajectory/scrub/pii-build.js +64 -0
- package/dist/trajectory/scrub/pii-build.js.map +1 -0
- package/dist/trajectory/scrub/pipeline.d.ts +37 -0
- package/dist/trajectory/scrub/pipeline.js +83 -0
- package/dist/trajectory/scrub/pipeline.js.map +1 -0
- package/dist/trajectory/scrub/plain-patterns-stage.d.ts +31 -0
- package/dist/trajectory/scrub/plain-patterns-stage.js +85 -0
- package/dist/trajectory/scrub/plain-patterns-stage.js.map +1 -0
- package/dist/trajectory/scrub/secretlint-stage.d.ts +35 -0
- package/dist/trajectory/scrub/secretlint-stage.js +250 -0
- package/dist/trajectory/scrub/secretlint-stage.js.map +1 -0
- package/dist/trajectory/scrub/transformers-detector.d.ts +35 -0
- package/dist/trajectory/scrub/transformers-detector.js +68 -0
- package/dist/trajectory/scrub/transformers-detector.js.map +1 -0
- package/dist/trajectory/scrub/types.d.ts +25 -0
- package/dist/trajectory/scrub/types.js +2 -0
- package/dist/trajectory/scrub/types.js.map +1 -0
- package/dist/trajectory/transcript-parsers/types.d.ts +1 -1
- package/dist/trajectory/transcript-parsers/types.js +1 -1
- package/dist/trajectory/transcript-parsers/types.js.map +1 -1
- package/dist/trajectory/transcript-watcher.d.ts +26 -0
- package/dist/trajectory/transcript-watcher.js +33 -0
- package/dist/trajectory/transcript-watcher.js.map +1 -1
- package/dist/tx-retry.d.ts +12 -0
- package/dist/tx-retry.js +41 -12
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/envelope.d.ts +1 -1
- package/dist/types/envelope.js +1 -1
- package/dist/types/envelope.js.map +1 -1
- package/dist/types/payloads/index.d.ts +1 -1
- package/dist/types/payloads/index.js +7 -1
- package/dist/types/payloads/index.js.map +1 -1
- package/dist/types/payloads/portfolio-v0.d.ts +1 -1
- package/dist/types/payloads/portfolio-v0.js +1 -1
- package/dist/types/payloads/portfolio-v0.js.map +1 -1
- package/dist/types/payloads/prediction-apy-v0.d.ts +1 -1
- package/dist/types/payloads/prediction-apy-v0.js +1 -1
- package/dist/types/payloads/prediction-apy-v0.js.map +1 -1
- package/dist/types/payloads/prediction-v0.d.ts +1 -1
- package/dist/types/payloads/prediction-v0.js +1 -1
- package/dist/types/payloads/prediction-v0.js.map +1 -1
- package/dist/types/portfolio.d.ts +1 -1
- package/dist/types/portfolio.js +1 -1
- package/dist/types/portfolio.js.map +1 -1
- package/dist/types/prediction-apy.d.ts +1 -1
- package/dist/types/prediction-apy.js +1 -1
- package/dist/types/prediction-apy.js.map +1 -1
- package/dist/types/prediction.d.ts +1 -1
- package/dist/types/prediction.js +1 -1
- package/dist/types/prediction.js.map +1 -1
- package/dist/types/session-provenance.d.ts +1 -1
- package/dist/types/session-provenance.js +1 -1
- package/dist/types/session-provenance.js.map +1 -1
- package/dist/types/skill-artifact.d.ts +442 -0
- package/dist/types/skill-artifact.js +137 -0
- package/dist/types/skill-artifact.js.map +1 -0
- package/dist/types/task-document.d.ts +315 -1
- package/dist/types/task-document.js +9 -1
- package/dist/types/task-document.js.map +1 -1
- package/dist/types/task-run-read-model.d.ts +21 -0
- package/dist/types/task-run-read-model.js +2 -0
- package/dist/types/task-run-read-model.js.map +1 -0
- package/dist/types/task-run.d.ts +75 -0
- package/dist/types/task-run.js +2 -0
- package/dist/types/task-run.js.map +1 -0
- package/dist/types/task.d.ts +29 -1
- package/dist/types/task.js +1 -1
- package/dist/types/task.js.map +1 -1
- package/dist/types/window.d.ts +1 -1
- package/dist/types/window.js +1 -1
- package/dist/types/window.js.map +1 -1
- package/dist/util/redact-rpc-urls.d.ts +1 -1
- package/dist/util/redact-rpc-urls.js +57 -2
- package/dist/util/redact-rpc-urls.js.map +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +3 -2
- package/dist/vendor/@jinn-network/sdk/dist/contracts.js +49 -0
- package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.d.ts +44 -0
- package/dist/vendor/@jinn-network/sdk/dist/jinn-repo.js +25 -0
- package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.d.ts +38 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/jinn-repo.js +22 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +109 -2
- package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +26 -2
- package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.d.ts +4 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/jinn-repo.js +2 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.d.ts +65 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2-held-out-slate.js +123 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +2 -2
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +1 -1
- package/dist/vendor/@jinn-network/sdk/package.json +9 -1
- package/docker-compose.yml +3 -2
- package/package.json +43 -28
- package/plugins/jinn-repo-runtime/.claude-plugin/plugin.json +5 -0
- package/plugins/jinn-repo-runtime/.codex-plugin/plugin.json +39 -0
- package/plugins/jinn-repo-runtime/README.md +27 -0
- package/plugins/jinn-repo-runtime/hooks/hooks.json +16 -0
- package/plugins/jinn-repo-runtime/hooks/session-start +73 -0
- package/plugins/jinn-repo-runtime/jinn.plugin.json +11 -0
- package/plugins/jinn-repo-runtime/skills/task/SKILL.md +92 -0
- package/plugins/learner/.claude-plugin/plugin.json +1 -1
- package/plugins/learner/.codex-plugin/plugin.json +1 -1
- package/plugins/learner/hooks/session-start +30 -1
- package/plugins/learner/skills/learn/consolidator-prompt.md +4 -0
- package/plugins/local-trace-distiller/.claude-plugin/plugin.json +9 -0
- package/plugins/local-trace-distiller/.codex-plugin/plugin.json +41 -0
- package/plugins/local-trace-distiller/.mcp.json +8 -0
- package/plugins/local-trace-distiller/README.md +27 -0
- package/plugins/local-trace-distiller/jinn.plugin.json +36 -0
- package/plugins/local-trace-distiller/skills/distill/SKILL.md +51 -0
- package/plugins/swe-rebench-v2-runtime/hooks/hooks.json +16 -0
- package/plugins/swe-rebench-v2-runtime/hooks/session-start +74 -0
- package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +0 -55
- package/deployments/deployment-jinn-mvi-l1-sepolia.json +0 -55
- package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +0 -13
- package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +0 -15
- package/dist/api/peers.js.map +0 -1
- package/dist/daemon/jinn-claim-loop-canonical.d.ts +0 -207
- package/dist/daemon/jinn-claim-loop-canonical.js +0 -296
- package/dist/daemon/jinn-claim-loop-canonical.js.map +0 -1
- package/dist/daemon/jinn-claim-loop-mock.d.ts +0 -61
- package/dist/daemon/jinn-claim-loop-mock.js +0 -122
- package/dist/daemon/jinn-claim-loop-mock.js.map +0 -1
- package/dist/daemon/jinn-claim-loop-wiring.d.ts +0 -33
- package/dist/daemon/jinn-claim-loop-wiring.js +0 -40
- package/dist/daemon/jinn-claim-loop-wiring.js.map +0 -1
- package/dist/daemon/jinn-claim-loop.d.ts +0 -130
- package/dist/daemon/jinn-claim-loop.js +0 -328
- package/dist/daemon/jinn-claim-loop.js.map +0 -1
- package/dist/dashboard/assets/index-CzKxvMcU.css +0 -32
- package/dist/dashboard/assets/index-yVemxHot.js +0 -351
- package/dist/earning/jinn-rewards.js.map +0 -1
- package/dist/scripts/donation-consumption-acceptance.d.ts +0 -85
- package/dist/scripts/donation-consumption-acceptance.js +0 -1382
- package/dist/scripts/donation-consumption-acceptance.js.map +0 -1
- package/dist/x402/acquire.d.ts +0 -17
- package/dist/x402/acquire.js +0 -49
- package/dist/x402/acquire.js.map +0 -1
- package/dist/x402/facilitator.d.ts +0 -11
- package/dist/x402/facilitator.js +0 -52
- package/dist/x402/facilitator.js.map +0 -1
- package/dist/x402/handler.d.ts +0 -27
- package/dist/x402/handler.js +0 -236
- package/dist/x402/handler.js.map +0 -1
- /package/dist/{api/peers.d.ts → daemon/peer-sync.d.ts} +0 -0
package/dist/store/store.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
import type { EnvelopeProjection, EnvelopeProjectionQuery } from '../corpus/types.js';
|
|
3
|
+
import type { TaskRunReadModel } from '../types/task-run-read-model.js';
|
|
3
4
|
import type { TxSubmissionKey, TxSubmissionLedgerEntry } from '../tx-retry.js';
|
|
4
5
|
export interface ActivityEventInput {
|
|
5
6
|
ts: string | null;
|
|
@@ -211,6 +212,12 @@ export declare class Store {
|
|
|
211
212
|
*/
|
|
212
213
|
private hasLegacyDesiredStateId;
|
|
213
214
|
constructor(dbPath: string);
|
|
215
|
+
/**
|
|
216
|
+
* Read-only task-run view for the status/build endpoints (#1584). Returns a
|
|
217
|
+
* `TaskRunReadModel` backed by the engine persistence layer, keeping the
|
|
218
|
+
* concrete `TaskRunPersistence` construction out of `api/`.
|
|
219
|
+
*/
|
|
220
|
+
taskRunReadModel(): TaskRunReadModel;
|
|
214
221
|
/** Older request-first DBs keyed artifacts by desired_state_id before Task-native IDs landed. */
|
|
215
222
|
private ensureArtifactsTaskColumns;
|
|
216
223
|
/** Older on-disk DBs predate `peer_catalog_id` on network_artifacts. */
|
|
@@ -277,6 +284,13 @@ export declare class Store {
|
|
|
277
284
|
before?: string;
|
|
278
285
|
}): Array<{
|
|
279
286
|
taskId: string;
|
|
287
|
+
/**
|
|
288
|
+
* On-chain decimal taskId (#579), decoded from the `TaskCreated` event.
|
|
289
|
+
* DISTINCT from `taskId`, which is the off-chain task-document id. The
|
|
290
|
+
* launcher's on-chain status chip keys its indexer lookup on this. Empty
|
|
291
|
+
* string when no on-chain id was recorded (pre-migration / lost event).
|
|
292
|
+
*/
|
|
293
|
+
protocolTaskId: string;
|
|
280
294
|
taskCid: string;
|
|
281
295
|
solverType: string | null;
|
|
282
296
|
requestId: string;
|
|
@@ -344,6 +358,39 @@ export declare class Store {
|
|
|
344
358
|
* Issue #815.
|
|
345
359
|
*/
|
|
346
360
|
aiUnitsThisWeek(credentialId: string, now?: Date): number;
|
|
361
|
+
/**
|
|
362
|
+
* Actual-spend accumulator for the current 6h UTC block (issue #1004).
|
|
363
|
+
*
|
|
364
|
+
* Sums `COALESCE(actual_cost_usd_micros, estimated_cost_usd_micros, 0)`
|
|
365
|
+
* over rows whose `claim_status` is `'claimed'` or `'delivered'`:
|
|
366
|
+
* - delivered rows contribute the real harvested cost (`actual_*`),
|
|
367
|
+
* - in-flight claimed rows contribute their estimate so a burst of
|
|
368
|
+
* concurrent claims cannot slip the cap before any of them deliver,
|
|
369
|
+
* - failed claims (status `'claim_failed'`) are excluded.
|
|
370
|
+
*
|
|
371
|
+
* `estimated` is true iff the summed figure includes any estimate-backed
|
|
372
|
+
* cost: an in-flight `claimed` row with no `actual_cost_usd_micros` yet,
|
|
373
|
+
* OR a `delivered` row whose actual cost is itself a heuristic
|
|
374
|
+
* (`actual_cost_estimated = 1` — a telemetry-less harness such as Hermes).
|
|
375
|
+
* It is false only when every contributing row is harvested actual
|
|
376
|
+
* telemetry. The gate surfaces this so an estimate-backed figure is not
|
|
377
|
+
* presented as metered. Block boundaries mirror `aiUnitsThisBlock`.
|
|
378
|
+
*/
|
|
379
|
+
usdMicrosThisBlock(credentialId: string, now?: Date): {
|
|
380
|
+
usdMicros: number;
|
|
381
|
+
estimated: boolean;
|
|
382
|
+
};
|
|
383
|
+
/**
|
|
384
|
+
* Actual-spend accumulator for the trailing 7-day rolling window from
|
|
385
|
+
* `now` (issue #1004). Same COALESCE + claim_status filter + `estimated`
|
|
386
|
+
* semantics as {@link usdMicrosThisBlock}.
|
|
387
|
+
*/
|
|
388
|
+
usdMicrosThisWeek(credentialId: string, now?: Date): {
|
|
389
|
+
usdMicros: number;
|
|
390
|
+
estimated: boolean;
|
|
391
|
+
};
|
|
392
|
+
/** Shared COALESCE-sum + estimate-flag query for the USD accumulators. */
|
|
393
|
+
private sumUsdMicros;
|
|
347
394
|
/**
|
|
348
395
|
* True iff an `ai_units_cap_reached` row exists for the given
|
|
349
396
|
* (credentialId, window, blockId). Used by the daemon to hydrate the
|
|
@@ -357,12 +404,22 @@ export declare class Store {
|
|
|
357
404
|
hasAiUnitsCapReachedFor(credentialId: string, window: 'block' | 'week', blockId: string): boolean;
|
|
358
405
|
/**
|
|
359
406
|
* Mark the per-request `claimed` row as `delivered` and record
|
|
360
|
-
* `actual_cost_usd_micros
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
*
|
|
407
|
+
* `actual_cost_usd_micros` (issue #1004 — the gate's accumulator now
|
|
408
|
+
* reads this column via COALESCE, so a delivered row's real harvested
|
|
409
|
+
* cost replaces its claim-time estimate in the running total). The
|
|
410
|
+
* `ai_units` projection captured at claim time is intentionally NOT
|
|
411
|
+
* recomputed — it remains the per-task estimate for the legacy unit
|
|
412
|
+
* surfaces. For subscription credentials the resulting USD figure is a
|
|
413
|
+
* *proxy* budget, not an exact bound on the provider's plan quota.
|
|
414
|
+
*
|
|
415
|
+
* `actualCostEstimated` (issue #1004, AC4) records whether the actual
|
|
416
|
+
* cost is itself a heuristic — true for a telemetry-less harness such as
|
|
417
|
+
* Hermes whose `harvestHarnessUsage` falls back to an a-priori estimate,
|
|
418
|
+
* false when the figure is harvested telemetry. The gate reads it so a
|
|
419
|
+
* delivered-but-heuristic row reports `estimated: true` rather than being
|
|
420
|
+
* presented as metered. Idempotent: a no-op when no `claimed` row exists.
|
|
364
421
|
*/
|
|
365
|
-
finalizeClaimDelivered(requestId: string, actualCostUsdMicros: number): void;
|
|
422
|
+
finalizeClaimDelivered(requestId: string, actualCostUsdMicros: number, actualCostEstimated: boolean): void;
|
|
366
423
|
/** Newer events first, then ascending id for `jinn logs --follow` (oldest in batch printed first in caller). */
|
|
367
424
|
getActivityEventsAfterId(afterId: number, limit: number): ActivityEventRow[];
|
|
368
425
|
/**
|
|
@@ -384,6 +441,7 @@ export declare class Store {
|
|
|
384
441
|
getLastEventAtForService(serviceIndex: number): string | null;
|
|
385
442
|
getActivityCountsForService(serviceIndex: number): Record<string, number>;
|
|
386
443
|
recordRewardClaim(claim: RewardClaimInput): void;
|
|
444
|
+
getClaimedRewardsLast24hWei(): string;
|
|
387
445
|
getClaimedRewardsByService(): Record<number, {
|
|
388
446
|
total: string;
|
|
389
447
|
lastAt: string;
|
|
@@ -499,6 +557,49 @@ export declare class Store {
|
|
|
499
557
|
queryEnvelopeProjections(query?: EnvelopeProjectionQuery): EnvelopeProjection[];
|
|
500
558
|
saveErc8004Anchor(input: Erc8004AnchorInput): void;
|
|
501
559
|
listErc8004AnchorsByEnvelopeCids(envelopeCids: readonly string[]): Erc8004AnchorRow[];
|
|
560
|
+
/**
|
|
561
|
+
* Upsert one held-out eval result (issue #818). PK is
|
|
562
|
+
* `(checkpoint_cid, slate_version, instance_id)` so a re-run overwrites.
|
|
563
|
+
* `passed` is null for `unscorable` rows.
|
|
564
|
+
*/
|
|
565
|
+
recordEvalResult(args: EvalResultRecord): void;
|
|
566
|
+
/**
|
|
567
|
+
* Aggregate the eval results for a (checkpoint, slate version):
|
|
568
|
+
* `scorable` = rows with `unscorable = 0`; `passed` = scorable rows with
|
|
569
|
+
* `passed = 1`. Unscorable rows are counted separately and never enter the
|
|
570
|
+
* denominator. A checkpoint with no rows yields all-zero (the orchestrator
|
|
571
|
+
* reads this to detect a not-yet-evaluated parent).
|
|
572
|
+
*/
|
|
573
|
+
getEvalAggregate(checkpoint_cid: string, slate_version: string): EvalAggregate;
|
|
574
|
+
/**
|
|
575
|
+
* Distinct `slate_hash` values recorded for a (checkpoint, slate version).
|
|
576
|
+
* The eval orchestrator reads this to detect slate-content drift under a
|
|
577
|
+
* stable version label — the held-out exam is only an honest before/after
|
|
578
|
+
* when the parent and child were scored on the SAME slate content (defeating
|
|
579
|
+
* confounder #1, task-selection). Empty when the checkpoint has no rows.
|
|
580
|
+
*/
|
|
581
|
+
getEvalSlateHashes(checkpoint_cid: string, slate_version: string): string[];
|
|
582
|
+
/** Per-task eval results for a (checkpoint, slate version), ordered by instance_id. */
|
|
583
|
+
getEvalResults(checkpoint_cid: string, slate_version: string): EvalResultRow[];
|
|
502
584
|
close(): void;
|
|
503
585
|
}
|
|
586
|
+
export interface EvalResultRecord {
|
|
587
|
+
checkpoint_cid: string;
|
|
588
|
+
slate_hash: string;
|
|
589
|
+
slate_version: string;
|
|
590
|
+
instance_id: string;
|
|
591
|
+
/** Pass/fail; ignored (stored NULL) when `unscorable` is true. */
|
|
592
|
+
passed: boolean | null;
|
|
593
|
+
unscorable: boolean;
|
|
594
|
+
code_digest: string;
|
|
595
|
+
run_at_ms: number;
|
|
596
|
+
test_log_excerpt?: string | null;
|
|
597
|
+
}
|
|
598
|
+
/** A persisted eval result read back from the store (same shape as the record written). */
|
|
599
|
+
export type EvalResultRow = EvalResultRecord;
|
|
600
|
+
export interface EvalAggregate {
|
|
601
|
+
passed: number;
|
|
602
|
+
scorable: number;
|
|
603
|
+
unscorable: number;
|
|
604
|
+
}
|
|
504
605
|
export {};
|
package/dist/store/store.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
import { mkdirSync } from 'node:fs';
|
|
3
3
|
import { dirname } from 'node:path';
|
|
4
|
-
import { TASK_RUNS_SCHEMA } from '../harnesses/engine/persistence.js';
|
|
4
|
+
import { TASK_RUNS_SCHEMA, TaskRunPersistence } from '../harnesses/engine/persistence.js';
|
|
5
5
|
import { normalizeEnvelopeRole } from '../types/envelope.js';
|
|
6
6
|
function readClaimPolicyMaxClaims(taskPayload) {
|
|
7
7
|
if (!taskPayload)
|
|
@@ -288,6 +288,25 @@ CREATE TABLE IF NOT EXISTS capture_spans (
|
|
|
288
288
|
);
|
|
289
289
|
CREATE INDEX IF NOT EXISTS capture_spans_session ON capture_spans (session_id);
|
|
290
290
|
|
|
291
|
+
-- Held-out checkpoint eval results (issue #818). One row per
|
|
292
|
+
-- (checkpoint, slate version, instance). Scores are only comparable WITHIN a
|
|
293
|
+
-- slate version; slate_hash is stored so a version-bump / hash-drift is
|
|
294
|
+
-- detectable. passed is nullable: an unscorable row (Docker down, disk
|
|
295
|
+
-- floor) carries passed = NULL and is EXCLUDED from the denominator -- never
|
|
296
|
+
-- coerced to a fail.
|
|
297
|
+
CREATE TABLE IF NOT EXISTS eval_results (
|
|
298
|
+
checkpoint_cid TEXT NOT NULL,
|
|
299
|
+
slate_hash TEXT NOT NULL,
|
|
300
|
+
slate_version TEXT NOT NULL,
|
|
301
|
+
instance_id TEXT NOT NULL,
|
|
302
|
+
passed INTEGER,
|
|
303
|
+
unscorable INTEGER NOT NULL DEFAULT 0,
|
|
304
|
+
code_digest TEXT NOT NULL,
|
|
305
|
+
run_at_ms INTEGER NOT NULL,
|
|
306
|
+
test_log_excerpt TEXT,
|
|
307
|
+
PRIMARY KEY (checkpoint_cid, slate_version, instance_id)
|
|
308
|
+
);
|
|
309
|
+
|
|
291
310
|
`;
|
|
292
311
|
export class Store {
|
|
293
312
|
/** Exposed for engine persistence layer — treat as package-internal. */
|
|
@@ -320,6 +339,14 @@ export class Store {
|
|
|
320
339
|
this.backfillActivityEvents();
|
|
321
340
|
this.recordLegacyRestorationIntentsIgnored();
|
|
322
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* Read-only task-run view for the status/build endpoints (#1584). Returns a
|
|
344
|
+
* `TaskRunReadModel` backed by the engine persistence layer, keeping the
|
|
345
|
+
* concrete `TaskRunPersistence` construction out of `api/`.
|
|
346
|
+
*/
|
|
347
|
+
taskRunReadModel() {
|
|
348
|
+
return new TaskRunPersistence(this.db);
|
|
349
|
+
}
|
|
323
350
|
/** Older request-first DBs keyed artifacts by desired_state_id before Task-native IDs landed. */
|
|
324
351
|
ensureArtifactsTaskColumns() {
|
|
325
352
|
const cols = this.db.prepare(`PRAGMA table_info(artifacts)`).all();
|
|
@@ -400,6 +427,12 @@ export class Store {
|
|
|
400
427
|
addActivityColumn('claim_status', 'claim_status TEXT');
|
|
401
428
|
addActivityColumn('estimated_cost_usd_micros', 'estimated_cost_usd_micros INTEGER');
|
|
402
429
|
addActivityColumn('actual_cost_usd_micros', 'actual_cost_usd_micros INTEGER');
|
|
430
|
+
// Issue #1004 (AC4): whether actual_cost_usd_micros is estimate-backed
|
|
431
|
+
// (1) or harvested telemetry (0/null). A telemetry-less harness such as
|
|
432
|
+
// Hermes still writes a NON-null actual cost via finalizeClaimDelivered,
|
|
433
|
+
// so the column distinguishes a heuristic figure from a metered one. The
|
|
434
|
+
// gate's estimated flag reads this so a heuristic is not shown as metered.
|
|
435
|
+
addActivityColumn('actual_cost_estimated', 'actual_cost_estimated INTEGER');
|
|
403
436
|
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_activity_events_credential ON activity_events (credential_id, ts)`);
|
|
404
437
|
// Per-request lookup for the completion-time update path that fills
|
|
405
438
|
// actualCostUsdMicros / sets claim_status='delivered'.
|
|
@@ -684,6 +717,7 @@ export class Store {
|
|
|
684
717
|
});
|
|
685
718
|
return {
|
|
686
719
|
taskId,
|
|
720
|
+
protocolTaskId,
|
|
687
721
|
taskCid,
|
|
688
722
|
solverType: r.solver_type,
|
|
689
723
|
requestId: r.request_id,
|
|
@@ -913,6 +947,56 @@ export class Store {
|
|
|
913
947
|
AND claim_status IN ('claimed', 'delivered')`).get({ cid: credentialId, weekStart });
|
|
914
948
|
return row.total ?? 0;
|
|
915
949
|
}
|
|
950
|
+
/**
|
|
951
|
+
* Actual-spend accumulator for the current 6h UTC block (issue #1004).
|
|
952
|
+
*
|
|
953
|
+
* Sums `COALESCE(actual_cost_usd_micros, estimated_cost_usd_micros, 0)`
|
|
954
|
+
* over rows whose `claim_status` is `'claimed'` or `'delivered'`:
|
|
955
|
+
* - delivered rows contribute the real harvested cost (`actual_*`),
|
|
956
|
+
* - in-flight claimed rows contribute their estimate so a burst of
|
|
957
|
+
* concurrent claims cannot slip the cap before any of them deliver,
|
|
958
|
+
* - failed claims (status `'claim_failed'`) are excluded.
|
|
959
|
+
*
|
|
960
|
+
* `estimated` is true iff the summed figure includes any estimate-backed
|
|
961
|
+
* cost: an in-flight `claimed` row with no `actual_cost_usd_micros` yet,
|
|
962
|
+
* OR a `delivered` row whose actual cost is itself a heuristic
|
|
963
|
+
* (`actual_cost_estimated = 1` — a telemetry-less harness such as Hermes).
|
|
964
|
+
* It is false only when every contributing row is harvested actual
|
|
965
|
+
* telemetry. The gate surfaces this so an estimate-backed figure is not
|
|
966
|
+
* presented as metered. Block boundaries mirror `aiUnitsThisBlock`.
|
|
967
|
+
*/
|
|
968
|
+
usdMicrosThisBlock(credentialId, now = new Date()) {
|
|
969
|
+
const startOfDay = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate());
|
|
970
|
+
const sinceDayStart = now.getTime() - startOfDay;
|
|
971
|
+
const sixHoursMs = 6 * 60 * 60 * 1_000;
|
|
972
|
+
const blocksIn = Math.min(Math.floor(sinceDayStart / sixHoursMs), 3);
|
|
973
|
+
const blockStart = new Date(startOfDay + blocksIn * sixHoursMs).toISOString();
|
|
974
|
+
const blockEnd = new Date(startOfDay + (blocksIn + 1) * sixHoursMs).toISOString();
|
|
975
|
+
return this.sumUsdMicros(credentialId, blockStart, blockEnd);
|
|
976
|
+
}
|
|
977
|
+
/**
|
|
978
|
+
* Actual-spend accumulator for the trailing 7-day rolling window from
|
|
979
|
+
* `now` (issue #1004). Same COALESCE + claim_status filter + `estimated`
|
|
980
|
+
* semantics as {@link usdMicrosThisBlock}.
|
|
981
|
+
*/
|
|
982
|
+
usdMicrosThisWeek(credentialId, now = new Date()) {
|
|
983
|
+
const weekStart = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1_000).toISOString();
|
|
984
|
+
return this.sumUsdMicros(credentialId, weekStart, undefined);
|
|
985
|
+
}
|
|
986
|
+
/** Shared COALESCE-sum + estimate-flag query for the USD accumulators. */
|
|
987
|
+
sumUsdMicros(credentialId, fromIso, toIso) {
|
|
988
|
+
const upper = toIso ? 'AND ts < @to' : '';
|
|
989
|
+
const row = this.db
|
|
990
|
+
.prepare(`SELECT
|
|
991
|
+
COALESCE(SUM(COALESCE(actual_cost_usd_micros, estimated_cost_usd_micros, 0)), 0) AS total,
|
|
992
|
+
COALESCE(SUM(CASE WHEN actual_cost_usd_micros IS NULL OR actual_cost_estimated = 1 THEN 1 ELSE 0 END), 0) AS estimatedRows
|
|
993
|
+
FROM activity_events
|
|
994
|
+
WHERE credential_id = @cid
|
|
995
|
+
AND ts IS NOT NULL AND ts >= @from ${upper}
|
|
996
|
+
AND claim_status IN ('claimed', 'delivered')`)
|
|
997
|
+
.get({ cid: credentialId, from: fromIso, to: toIso });
|
|
998
|
+
return { usdMicros: row.total ?? 0, estimated: (row.estimatedRows ?? 0) > 0 };
|
|
999
|
+
}
|
|
916
1000
|
/**
|
|
917
1001
|
* True iff an `ai_units_cap_reached` row exists for the given
|
|
918
1002
|
* (credentialId, window, blockId). Used by the daemon to hydrate the
|
|
@@ -935,16 +1019,31 @@ export class Store {
|
|
|
935
1019
|
}
|
|
936
1020
|
/**
|
|
937
1021
|
* Mark the per-request `claimed` row as `delivered` and record
|
|
938
|
-
* `actual_cost_usd_micros
|
|
939
|
-
*
|
|
940
|
-
*
|
|
941
|
-
*
|
|
1022
|
+
* `actual_cost_usd_micros` (issue #1004 — the gate's accumulator now
|
|
1023
|
+
* reads this column via COALESCE, so a delivered row's real harvested
|
|
1024
|
+
* cost replaces its claim-time estimate in the running total). The
|
|
1025
|
+
* `ai_units` projection captured at claim time is intentionally NOT
|
|
1026
|
+
* recomputed — it remains the per-task estimate for the legacy unit
|
|
1027
|
+
* surfaces. For subscription credentials the resulting USD figure is a
|
|
1028
|
+
* *proxy* budget, not an exact bound on the provider's plan quota.
|
|
1029
|
+
*
|
|
1030
|
+
* `actualCostEstimated` (issue #1004, AC4) records whether the actual
|
|
1031
|
+
* cost is itself a heuristic — true for a telemetry-less harness such as
|
|
1032
|
+
* Hermes whose `harvestHarnessUsage` falls back to an a-priori estimate,
|
|
1033
|
+
* false when the figure is harvested telemetry. The gate reads it so a
|
|
1034
|
+
* delivered-but-heuristic row reports `estimated: true` rather than being
|
|
1035
|
+
* presented as metered. Idempotent: a no-op when no `claimed` row exists.
|
|
942
1036
|
*/
|
|
943
|
-
finalizeClaimDelivered(requestId, actualCostUsdMicros) {
|
|
1037
|
+
finalizeClaimDelivered(requestId, actualCostUsdMicros, actualCostEstimated) {
|
|
944
1038
|
this.db.prepare(`UPDATE activity_events
|
|
945
1039
|
SET claim_status = 'delivered',
|
|
946
|
-
actual_cost_usd_micros = @actual
|
|
947
|
-
|
|
1040
|
+
actual_cost_usd_micros = @actual,
|
|
1041
|
+
actual_cost_estimated = @estimated
|
|
1042
|
+
WHERE request_id = @req AND claim_status = 'claimed'`).run({
|
|
1043
|
+
req: requestId,
|
|
1044
|
+
actual: actualCostUsdMicros,
|
|
1045
|
+
estimated: actualCostEstimated ? 1 : 0,
|
|
1046
|
+
});
|
|
948
1047
|
}
|
|
949
1048
|
/** Newer events first, then ascending id for `jinn logs --follow` (oldest in batch printed first in caller). */
|
|
950
1049
|
getActivityEventsAfterId(afterId, limit) {
|
|
@@ -1095,6 +1194,20 @@ export class Store {
|
|
|
1095
1194
|
asset: claim.asset ?? 'reward',
|
|
1096
1195
|
});
|
|
1097
1196
|
}
|
|
1197
|
+
getClaimedRewardsLast24hWei() {
|
|
1198
|
+
const cutoff = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
|
|
1199
|
+
const rows = this.db.prepare(`SELECT amount_wei FROM reward_claims WHERE ts >= ?`).all(cutoff);
|
|
1200
|
+
let total = 0n;
|
|
1201
|
+
for (const row of rows) {
|
|
1202
|
+
try {
|
|
1203
|
+
total += BigInt(row.amount_wei);
|
|
1204
|
+
}
|
|
1205
|
+
catch {
|
|
1206
|
+
/* ignore malformed legacy rows */
|
|
1207
|
+
}
|
|
1208
|
+
}
|
|
1209
|
+
return total.toString();
|
|
1210
|
+
}
|
|
1098
1211
|
getClaimedRewardsByService() {
|
|
1099
1212
|
const rows = this.db.prepare(`SELECT id, service_index, amount_wei, ts, tx_hash FROM reward_claims ORDER BY id ASC`).all();
|
|
1100
1213
|
const out = {};
|
|
@@ -1819,6 +1932,79 @@ export class Store {
|
|
|
1819
1932
|
anchoredAt: r.anchored_at,
|
|
1820
1933
|
}));
|
|
1821
1934
|
}
|
|
1935
|
+
/**
|
|
1936
|
+
* Upsert one held-out eval result (issue #818). PK is
|
|
1937
|
+
* `(checkpoint_cid, slate_version, instance_id)` so a re-run overwrites.
|
|
1938
|
+
* `passed` is null for `unscorable` rows.
|
|
1939
|
+
*/
|
|
1940
|
+
recordEvalResult(args) {
|
|
1941
|
+
this.db
|
|
1942
|
+
.prepare(`INSERT INTO eval_results
|
|
1943
|
+
(checkpoint_cid, slate_hash, slate_version, instance_id, passed, unscorable, code_digest, run_at_ms, test_log_excerpt)
|
|
1944
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1945
|
+
ON CONFLICT(checkpoint_cid, slate_version, instance_id) DO UPDATE SET
|
|
1946
|
+
slate_hash = excluded.slate_hash,
|
|
1947
|
+
passed = excluded.passed,
|
|
1948
|
+
unscorable = excluded.unscorable,
|
|
1949
|
+
code_digest = excluded.code_digest,
|
|
1950
|
+
run_at_ms = excluded.run_at_ms,
|
|
1951
|
+
test_log_excerpt = excluded.test_log_excerpt`)
|
|
1952
|
+
.run(args.checkpoint_cid, args.slate_hash, args.slate_version, args.instance_id, args.unscorable ? null : args.passed ? 1 : 0, args.unscorable ? 1 : 0, args.code_digest, args.run_at_ms, args.test_log_excerpt ?? null);
|
|
1953
|
+
}
|
|
1954
|
+
/**
|
|
1955
|
+
* Aggregate the eval results for a (checkpoint, slate version):
|
|
1956
|
+
* `scorable` = rows with `unscorable = 0`; `passed` = scorable rows with
|
|
1957
|
+
* `passed = 1`. Unscorable rows are counted separately and never enter the
|
|
1958
|
+
* denominator. A checkpoint with no rows yields all-zero (the orchestrator
|
|
1959
|
+
* reads this to detect a not-yet-evaluated parent).
|
|
1960
|
+
*/
|
|
1961
|
+
getEvalAggregate(checkpoint_cid, slate_version) {
|
|
1962
|
+
const row = this.db
|
|
1963
|
+
.prepare(`SELECT
|
|
1964
|
+
COALESCE(SUM(CASE WHEN unscorable = 0 AND passed = 1 THEN 1 ELSE 0 END), 0) AS passed,
|
|
1965
|
+
COALESCE(SUM(CASE WHEN unscorable = 0 THEN 1 ELSE 0 END), 0) AS scorable,
|
|
1966
|
+
COALESCE(SUM(CASE WHEN unscorable = 1 THEN 1 ELSE 0 END), 0) AS unscorable
|
|
1967
|
+
FROM eval_results
|
|
1968
|
+
WHERE checkpoint_cid = ? AND slate_version = ?`)
|
|
1969
|
+
.get(checkpoint_cid, slate_version);
|
|
1970
|
+
return { passed: row.passed, scorable: row.scorable, unscorable: row.unscorable };
|
|
1971
|
+
}
|
|
1972
|
+
/**
|
|
1973
|
+
* Distinct `slate_hash` values recorded for a (checkpoint, slate version).
|
|
1974
|
+
* The eval orchestrator reads this to detect slate-content drift under a
|
|
1975
|
+
* stable version label — the held-out exam is only an honest before/after
|
|
1976
|
+
* when the parent and child were scored on the SAME slate content (defeating
|
|
1977
|
+
* confounder #1, task-selection). Empty when the checkpoint has no rows.
|
|
1978
|
+
*/
|
|
1979
|
+
getEvalSlateHashes(checkpoint_cid, slate_version) {
|
|
1980
|
+
const rows = this.db
|
|
1981
|
+
.prepare(`SELECT DISTINCT slate_hash
|
|
1982
|
+
FROM eval_results
|
|
1983
|
+
WHERE checkpoint_cid = ? AND slate_version = ?
|
|
1984
|
+
ORDER BY slate_hash`)
|
|
1985
|
+
.all(checkpoint_cid, slate_version);
|
|
1986
|
+
return rows.map((r) => r.slate_hash);
|
|
1987
|
+
}
|
|
1988
|
+
/** Per-task eval results for a (checkpoint, slate version), ordered by instance_id. */
|
|
1989
|
+
getEvalResults(checkpoint_cid, slate_version) {
|
|
1990
|
+
const rows = this.db
|
|
1991
|
+
.prepare(`SELECT checkpoint_cid, slate_hash, slate_version, instance_id, passed, unscorable, code_digest, run_at_ms, test_log_excerpt
|
|
1992
|
+
FROM eval_results
|
|
1993
|
+
WHERE checkpoint_cid = ? AND slate_version = ?
|
|
1994
|
+
ORDER BY instance_id`)
|
|
1995
|
+
.all(checkpoint_cid, slate_version);
|
|
1996
|
+
return rows.map((r) => ({
|
|
1997
|
+
checkpoint_cid: r.checkpoint_cid,
|
|
1998
|
+
slate_hash: r.slate_hash,
|
|
1999
|
+
slate_version: r.slate_version,
|
|
2000
|
+
instance_id: r.instance_id,
|
|
2001
|
+
passed: r.passed === null ? null : r.passed === 1,
|
|
2002
|
+
unscorable: r.unscorable === 1,
|
|
2003
|
+
code_digest: r.code_digest,
|
|
2004
|
+
run_at_ms: r.run_at_ms,
|
|
2005
|
+
test_log_excerpt: r.test_log_excerpt,
|
|
2006
|
+
}));
|
|
2007
|
+
}
|
|
1822
2008
|
close() {
|
|
1823
2009
|
this.db.close();
|
|
1824
2010
|
}
|