@jinn-network/client 0.1.2 → 0.1.3-canary.24b69ea4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/CONTRIBUTING.md +9 -2
- package/README.md +67 -47
- package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +36 -0
- package/deployments/deployment-jinn-mvi-l1-sepolia.json +36 -0
- package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +12 -0
- package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
- package/deployments/deployment-stolas-l2-baseSepolia-fast.json +1 -1
- package/deployments/deployment-task-coordinator-router-v3-baseSepolia-fast.json +38 -0
- package/dist/adapters/adapter.d.ts +19 -8
- package/dist/adapters/local/adapter.d.ts +10 -9
- package/dist/adapters/local/adapter.js +52 -79
- package/dist/adapters/local/adapter.js.map +1 -1
- package/dist/adapters/mech/adapter.d.ts +37 -15
- package/dist/adapters/mech/adapter.js +557 -364
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +80 -20
- package/dist/adapters/mech/contracts.js +372 -100
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/ipfs.d.ts +66 -12
- package/dist/adapters/mech/ipfs.js +165 -30
- package/dist/adapters/mech/ipfs.js.map +1 -1
- package/dist/adapters/mech/safe-revert.d.ts +40 -0
- package/dist/adapters/mech/safe-revert.js +261 -0
- package/dist/adapters/mech/safe-revert.js.map +1 -0
- package/dist/adapters/mech/safe.js +48 -22
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/task-subgraph.d.ts +23 -0
- package/dist/adapters/mech/task-subgraph.js +157 -0
- package/dist/adapters/mech/task-subgraph.js.map +1 -0
- package/dist/adapters/mech/types.d.ts +256 -84
- package/dist/adapters/mech/types.js +125 -50
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/agent/agent-ws.d.ts +57 -0
- package/dist/agent/agent-ws.js +301 -0
- package/dist/agent/agent-ws.js.map +1 -0
- package/dist/agent/auto-mode-detect.d.ts +6 -0
- package/dist/agent/auto-mode-detect.js +44 -0
- package/dist/agent/auto-mode-detect.js.map +1 -0
- package/dist/agent/operator-claude.d.ts +22 -0
- package/dist/agent/operator-claude.js +176 -0
- package/dist/agent/operator-claude.js.map +1 -0
- package/dist/api/admin-endpoint.d.ts +12 -0
- package/dist/api/admin-endpoint.js +71 -0
- package/dist/api/admin-endpoint.js.map +1 -0
- package/dist/api/agent-binding-endpoint.d.ts +26 -0
- package/dist/api/agent-binding-endpoint.js +28 -0
- package/dist/api/agent-binding-endpoint.js.map +1 -0
- package/dist/api/bootstrap-endpoint.d.ts +25 -0
- package/dist/api/bootstrap-endpoint.js +104 -0
- package/dist/api/bootstrap-endpoint.js.map +1 -0
- package/dist/api/captures.d.ts +22 -0
- package/dist/api/captures.js +88 -0
- package/dist/api/captures.js.map +1 -0
- package/dist/api/events-endpoint.d.ts +9 -0
- package/dist/api/events-endpoint.js +46 -0
- package/dist/api/events-endpoint.js.map +1 -0
- package/dist/api/fleet-build.d.ts +1 -1
- package/dist/api/fleet-build.js +17 -8
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.d.ts +16 -1
- package/dist/api/gather-status.js +194 -3
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/handshake.d.ts +17 -0
- package/dist/api/handshake.js +28 -0
- package/dist/api/handshake.js.map +1 -0
- package/dist/api/harness-status-endpoint.d.ts +20 -0
- package/dist/api/harness-status-endpoint.js +13 -0
- package/dist/api/harness-status-endpoint.js.map +1 -0
- package/dist/api/history-build.d.ts +2 -2
- package/dist/api/history-build.js +3 -3
- package/dist/api/history-build.js.map +1 -1
- package/dist/api/launcher-endpoints.d.ts +43 -0
- package/dist/api/launcher-endpoints.js +50 -0
- package/dist/api/launcher-endpoints.js.map +1 -0
- package/dist/api/launcher-status.d.ts +93 -0
- package/dist/api/launcher-status.js +84 -0
- package/dist/api/launcher-status.js.map +1 -0
- package/dist/api/launcher-tasks.d.ts +76 -0
- package/dist/api/launcher-tasks.js +127 -0
- package/dist/api/launcher-tasks.js.map +1 -0
- package/dist/api/leaderboard-api.d.ts +20 -0
- package/dist/api/leaderboard-api.js +18 -0
- package/dist/api/leaderboard-api.js.map +1 -0
- package/dist/api/operator-artifacts-endpoint.d.ts +19 -0
- package/dist/api/operator-artifacts-endpoint.js +271 -0
- package/dist/api/operator-artifacts-endpoint.js.map +1 -0
- package/dist/api/peers.js +21 -6
- package/dist/api/peers.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +16 -10
- package/dist/api/portfolio-v0-build.js +36 -31
- package/dist/api/portfolio-v0-build.js.map +1 -1
- package/dist/api/portfolio-v0-doctor.js +1 -1
- package/dist/api/portfolio-v0-doctor.js.map +1 -1
- package/dist/api/prediction-v1-build.d.ts +65 -0
- package/dist/api/prediction-v1-build.js +73 -0
- package/dist/api/prediction-v1-build.js.map +1 -0
- package/dist/api/rewards-build.js +3 -8
- package/dist/api/rewards-build.js.map +1 -1
- package/dist/api/server.d.ts +106 -1
- package/dist/api/server.js +396 -17
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +62 -0
- package/dist/api/setup-endpoints.js +752 -0
- package/dist/api/setup-endpoints.js.map +1 -0
- package/dist/api/solvernets-catalog-build.d.ts +47 -0
- package/dist/api/solvernets-catalog-build.js +19 -0
- package/dist/api/solvernets-catalog-build.js.map +1 -0
- package/dist/api/solvernets-endpoint.d.ts +15 -0
- package/dist/api/solvernets-endpoint.js +5 -0
- package/dist/api/solvernets-endpoint.js.map +1 -0
- package/dist/api/solvernets-endpoints.d.ts +104 -0
- package/dist/api/solvernets-endpoints.js +1121 -0
- package/dist/api/solvernets-endpoints.js.map +1 -0
- package/dist/api/status-build.d.ts +26 -2
- package/dist/api/status-build.js +46 -9
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +46 -1
- package/dist/api/status-rollup-build.js +174 -8
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/api/stop-hook.d.ts +36 -0
- package/dist/api/stop-hook.js +77 -0
- package/dist/api/stop-hook.js.map +1 -0
- package/dist/api/task-runs-build.d.ts +27 -0
- package/dist/api/task-runs-build.js +46 -0
- package/dist/api/task-runs-build.js.map +1 -0
- package/dist/api/ui-token.d.ts +5 -0
- package/dist/api/ui-token.js +36 -0
- package/dist/api/ui-token.js.map +1 -0
- package/dist/bin/jinn-stop-hook.d.ts +9 -0
- package/dist/bin/jinn-stop-hook.js +52 -0
- package/dist/bin/jinn-stop-hook.js.map +1 -0
- package/dist/build-info.d.ts +32 -0
- package/dist/build-info.js +69 -0
- package/dist/build-info.js.map +1 -0
- package/dist/build-info.json +6 -0
- package/dist/build-meta.json +1 -1
- package/dist/captures/dedup.d.ts +27 -0
- package/dist/captures/dedup.js +48 -0
- package/dist/captures/dedup.js.map +1 -0
- package/dist/captures/index.d.ts +4 -0
- package/dist/captures/index.js +5 -0
- package/dist/captures/index.js.map +1 -0
- package/dist/captures/live-publisher.d.ts +33 -0
- package/dist/captures/live-publisher.js +101 -0
- package/dist/captures/live-publisher.js.map +1 -0
- package/dist/captures/publish.d.ts +83 -0
- package/dist/captures/publish.js +212 -0
- package/dist/captures/publish.js.map +1 -0
- package/dist/captures/rate-limit.d.ts +39 -0
- package/dist/captures/rate-limit.js +79 -0
- package/dist/captures/rate-limit.js.map +1 -0
- package/dist/cli/command.d.ts +9 -0
- package/dist/cli/commands/auth.js +6 -3
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/balance.d.ts +7 -0
- package/dist/cli/commands/balance.js +38 -32
- package/dist/cli/commands/balance.js.map +1 -1
- package/dist/cli/commands/bootstrap.d.ts +13 -1
- package/dist/cli/commands/bootstrap.js +150 -133
- package/dist/cli/commands/bootstrap.js.map +1 -1
- package/dist/cli/commands/capture.d.ts +33 -0
- package/dist/cli/commands/capture.js +345 -0
- package/dist/cli/commands/capture.js.map +1 -0
- package/dist/cli/commands/checkpoint.d.ts +85 -0
- package/dist/cli/commands/checkpoint.js +75 -0
- package/dist/cli/commands/checkpoint.js.map +1 -0
- package/dist/cli/commands/claim-rewards.js +14 -2
- package/dist/cli/commands/claim-rewards.js.map +1 -1
- package/dist/cli/commands/conformance.d.ts +12 -0
- package/dist/cli/commands/conformance.js +140 -0
- package/dist/cli/commands/conformance.js.map +1 -0
- package/dist/cli/commands/create.d.ts +22 -0
- package/dist/cli/commands/create.js +226 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +49 -1
- package/dist/cli/commands/doctor.js +162 -134
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/fleet-scale.d.ts +19 -1
- package/dist/cli/commands/fleet-scale.js +378 -361
- package/dist/cli/commands/fleet-scale.js.map +1 -1
- package/dist/cli/commands/fleet.d.ts +7 -0
- package/dist/cli/commands/fleet.js +39 -33
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/fund-requirements.d.ts +14 -1
- package/dist/cli/commands/fund-requirements.js +182 -174
- package/dist/cli/commands/fund-requirements.js.map +1 -1
- package/dist/cli/commands/harnesses.d.ts +38 -0
- package/dist/cli/commands/harnesses.js +376 -0
- package/dist/cli/commands/harnesses.js.map +1 -0
- package/dist/cli/commands/history.d.ts +10 -1
- package/dist/cli/commands/history.js +68 -59
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/init.js +4 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/integrations.d.ts +13 -0
- package/dist/cli/commands/integrations.js +1010 -0
- package/dist/cli/commands/integrations.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +6 -1
- package/dist/cli/commands/logs.js +77 -70
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/migrate-agent-id.d.ts +26 -0
- package/dist/cli/commands/migrate-agent-id.js +164 -0
- package/dist/cli/commands/migrate-agent-id.js.map +1 -0
- package/dist/cli/commands/prediction-scoreboard.d.ts +10 -0
- package/dist/cli/commands/prediction-scoreboard.js +136 -0
- package/dist/cli/commands/prediction-scoreboard.js.map +1 -0
- package/dist/cli/commands/quickstart.d.ts +51 -1
- package/dist/cli/commands/quickstart.js +514 -296
- package/dist/cli/commands/quickstart.js.map +1 -1
- package/dist/cli/commands/rewards.d.ts +7 -0
- package/dist/cli/commands/rewards.js +46 -40
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/run.d.ts +14 -1
- package/dist/cli/commands/run.js +243 -91
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/solver-nets.js +231 -0
- package/dist/cli/commands/solver-nets.js.map +1 -0
- package/dist/cli/commands/solver-plugins.d.ts +9 -0
- package/dist/cli/commands/solver-plugins.js +186 -0
- package/dist/cli/commands/solver-plugins.js.map +1 -0
- package/dist/cli/commands/status.d.ts +13 -0
- package/dist/cli/commands/status.js +105 -34
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.js +87 -14
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/tasks.js +405 -0
- package/dist/cli/commands/tasks.js.map +1 -0
- package/dist/cli/commands/ui.d.ts +3 -0
- package/dist/cli/commands/ui.js +45 -0
- package/dist/cli/commands/ui.js.map +1 -0
- package/dist/cli/commands/update.d.ts +12 -0
- package/dist/cli/commands/update.js +321 -91
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/version.js +3 -2
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/commands/withdraw.d.ts +21 -1
- package/dist/cli/commands/withdraw.js +175 -159
- package/dist/cli/commands/withdraw.js.map +1 -1
- package/dist/cli/deployment-digest.js +0 -5
- package/dist/cli/deployment-digest.js.map +1 -1
- package/dist/cli/execution-context.d.ts +1 -1
- package/dist/cli/execution-context.js +4 -4
- package/dist/cli/execution-context.js.map +1 -1
- package/dist/cli/help.js +8 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.js +28 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/introspection-context.js +0 -1
- package/dist/cli/introspection-context.js.map +1 -1
- package/dist/cli/open-browser.d.ts +1 -0
- package/dist/cli/open-browser.js +18 -0
- package/dist/cli/open-browser.js.map +1 -0
- package/dist/cli/password.d.ts +3 -3
- package/dist/cli/password.js +6 -6
- package/dist/cli/password.js.map +1 -1
- package/dist/cli/task-native-readiness.d.ts +27 -0
- package/dist/cli/task-native-readiness.js +170 -0
- package/dist/cli/task-native-readiness.js.map +1 -0
- package/dist/config.d.ts +1897 -60
- package/dist/config.js +602 -33
- package/dist/config.js.map +1 -1
- package/dist/conformance/checks/artifacts.d.ts +37 -0
- package/dist/conformance/checks/artifacts.js +110 -0
- package/dist/conformance/checks/artifacts.js.map +1 -0
- package/dist/conformance/checks/envelope-schema.d.ts +17 -0
- package/dist/conformance/checks/envelope-schema.js +36 -0
- package/dist/conformance/checks/envelope-schema.js.map +1 -0
- package/dist/conformance/checks/hash-signature.d.ts +26 -0
- package/dist/conformance/checks/hash-signature.js +70 -0
- package/dist/conformance/checks/hash-signature.js.map +1 -0
- package/dist/conformance/checks/payload.d.ts +19 -0
- package/dist/conformance/checks/payload.js +52 -0
- package/dist/conformance/checks/payload.js.map +1 -0
- package/dist/conformance/checks/secret-scrub.d.ts +33 -0
- package/dist/conformance/checks/secret-scrub.js +118 -0
- package/dist/conformance/checks/secret-scrub.js.map +1 -0
- package/dist/conformance/checks/source-runtime.d.ts +43 -0
- package/dist/conformance/checks/source-runtime.js +68 -0
- package/dist/conformance/checks/source-runtime.js.map +1 -0
- package/dist/conformance/checks/source-static.d.ts +61 -0
- package/dist/conformance/checks/source-static.js +311 -0
- package/dist/conformance/checks/source-static.js.map +1 -0
- package/dist/conformance/checks/trajectory-chain.d.ts +18 -0
- package/dist/conformance/checks/trajectory-chain.js +51 -0
- package/dist/conformance/checks/trajectory-chain.js.map +1 -0
- package/dist/conformance/checks/trajectory-profile.d.ts +17 -0
- package/dist/conformance/checks/trajectory-profile.js +51 -0
- package/dist/conformance/checks/trajectory-profile.js.map +1 -0
- package/dist/conformance/checks/trajectory-schema.d.ts +20 -0
- package/dist/conformance/checks/trajectory-schema.js +40 -0
- package/dist/conformance/checks/trajectory-schema.js.map +1 -0
- package/dist/conformance/checks/verdict.d.ts +44 -0
- package/dist/conformance/checks/verdict.js +122 -0
- package/dist/conformance/checks/verdict.js.map +1 -0
- package/dist/conformance/harness.d.ts +32 -0
- package/dist/conformance/harness.js +227 -0
- package/dist/conformance/harness.js.map +1 -0
- package/dist/conformance/types.d.ts +88 -0
- package/dist/conformance/types.js +31 -0
- package/dist/conformance/types.js.map +1 -0
- package/dist/corpus/acquire.d.ts +42 -0
- package/dist/corpus/acquire.js +213 -0
- package/dist/corpus/acquire.js.map +1 -0
- package/dist/corpus/cache.d.ts +14 -0
- package/dist/corpus/cache.js +18 -0
- package/dist/corpus/cache.js.map +1 -0
- package/dist/corpus/envelope-projection.d.ts +12 -0
- package/dist/corpus/envelope-projection.js +110 -0
- package/dist/corpus/envelope-projection.js.map +1 -0
- package/dist/corpus/fetch.d.ts +9 -0
- package/dist/corpus/fetch.js +24 -0
- package/dist/corpus/fetch.js.map +1 -0
- package/dist/corpus/index.d.ts +19 -0
- package/dist/corpus/index.js +87 -0
- package/dist/corpus/index.js.map +1 -0
- package/dist/corpus/prediction-brier-scoreboard-report.d.ts +17 -0
- package/dist/corpus/prediction-brier-scoreboard-report.js +148 -0
- package/dist/corpus/prediction-brier-scoreboard-report.js.map +1 -0
- package/dist/corpus/prediction-brier-scoreboard.d.ts +56 -0
- package/dist/corpus/prediction-brier-scoreboard.js +269 -0
- package/dist/corpus/prediction-brier-scoreboard.js.map +1 -0
- package/dist/corpus/prediction-scoreable-verdicts.d.ts +4 -0
- package/dist/corpus/prediction-scoreable-verdicts.js +23 -0
- package/dist/corpus/prediction-scoreable-verdicts.js.map +1 -0
- package/dist/corpus/query.d.ts +17 -0
- package/dist/corpus/query.js +113 -0
- package/dist/corpus/query.js.map +1 -0
- package/dist/corpus/route-resolver.d.ts +16 -0
- package/dist/corpus/route-resolver.js +20 -0
- package/dist/corpus/route-resolver.js.map +1 -0
- package/dist/corpus/types.d.ts +151 -0
- package/dist/corpus/types.js +50 -0
- package/dist/corpus/types.js.map +1 -0
- package/dist/daemon/balance-topup-loop.js +2 -1
- package/dist/daemon/balance-topup-loop.js.map +1 -1
- package/dist/daemon/creator.d.ts +7 -7
- package/dist/daemon/creator.js +11 -14
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +83 -31
- package/dist/daemon/daemon.js +206 -67
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/delivery-watcher.js +50 -4
- package/dist/daemon/delivery-watcher.js.map +1 -1
- package/dist/daemon/freeze-fence.d.ts +42 -0
- package/dist/daemon/freeze-fence.js +71 -0
- package/dist/daemon/freeze-fence.js.map +1 -0
- package/dist/daemon/jinn-claim-loop-canonical.d.ts +207 -0
- package/dist/daemon/jinn-claim-loop-canonical.js +296 -0
- package/dist/daemon/jinn-claim-loop-canonical.js.map +1 -0
- package/dist/daemon/jinn-claim-loop-mock.d.ts +61 -0
- package/dist/daemon/jinn-claim-loop-mock.js +122 -0
- package/dist/daemon/jinn-claim-loop-mock.js.map +1 -0
- package/dist/daemon/jinn-claim-loop.d.ts +123 -0
- package/dist/daemon/jinn-claim-loop.js +256 -0
- package/dist/daemon/jinn-claim-loop.js.map +1 -0
- package/dist/daemon/reward-claim-loop.d.ts +2 -0
- package/dist/daemon/reward-claim-loop.js +32 -27
- package/dist/daemon/reward-claim-loop.js.map +1 -1
- package/dist/dashboard/assets/index-DBPsa50k.js +76 -0
- package/dist/dashboard/assets/index-D_NMfDfV.css +32 -0
- package/dist/dashboard/index.html +18 -74
- package/dist/earning/agent-wallet-binding.d.ts +133 -0
- package/dist/earning/agent-wallet-binding.js +202 -0
- package/dist/earning/agent-wallet-binding.js.map +1 -0
- package/dist/earning/bootstrap.d.ts +88 -1
- package/dist/earning/bootstrap.js +409 -56
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +328 -6
- package/dist/earning/contracts.js +295 -14
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/evidence-simhash.d.ts +1 -1
- package/dist/earning/faucet.d.ts +31 -0
- package/dist/earning/faucet.js +37 -0
- package/dist/earning/faucet.js.map +1 -1
- package/dist/earning/funding-plan.d.ts +89 -0
- package/dist/earning/funding-plan.js +202 -0
- package/dist/earning/funding-plan.js.map +1 -0
- package/dist/earning/migrate-agent-id.d.ts +129 -0
- package/dist/earning/migrate-agent-id.js +256 -0
- package/dist/earning/migrate-agent-id.js.map +1 -0
- package/dist/earning/orphan-sweep.d.ts +14 -0
- package/dist/earning/orphan-sweep.js +63 -2
- package/dist/earning/orphan-sweep.js.map +1 -1
- package/dist/earning/reconcile.d.ts +2 -0
- package/dist/earning/reconcile.js +30 -0
- package/dist/earning/reconcile.js.map +1 -1
- package/dist/earning/safe-adapter.js +45 -3
- package/dist/earning/safe-adapter.js.map +1 -1
- package/dist/earning/stolas-claim.d.ts +86 -6
- package/dist/earning/stolas-claim.js +123 -9
- package/dist/earning/stolas-claim.js.map +1 -1
- package/dist/earning/store.d.ts +47 -0
- package/dist/earning/store.js +113 -1
- package/dist/earning/store.js.map +1 -1
- package/dist/earning/testnet-setup-migration.d.ts +32 -0
- package/dist/earning/testnet-setup-migration.js +214 -0
- package/dist/earning/testnet-setup-migration.js.map +1 -0
- package/dist/earning/types.d.ts +57 -9
- package/dist/earning/types.js +51 -2
- package/dist/earning/types.js.map +1 -1
- package/dist/earning/viem-clients.d.ts +20 -0
- package/dist/earning/viem-clients.js +32 -1
- package/dist/earning/viem-clients.js.map +1 -1
- package/dist/erc8004/abis.d.ts +423 -0
- package/dist/erc8004/abis.js +265 -0
- package/dist/erc8004/abis.js.map +1 -0
- package/dist/erc8004/addresses.d.ts +40 -0
- package/dist/erc8004/addresses.js +64 -0
- package/dist/erc8004/addresses.js.map +1 -0
- package/dist/erc8004/identity.d.ts +273 -0
- package/dist/erc8004/identity.js +405 -0
- package/dist/erc8004/identity.js.map +1 -0
- package/dist/erc8004/index.d.ts +13 -0
- package/dist/erc8004/index.js +20 -0
- package/dist/erc8004/index.js.map +1 -0
- package/dist/erc8004/reputation.d.ts +349 -0
- package/dist/erc8004/reputation.js +464 -0
- package/dist/erc8004/reputation.js.map +1 -0
- package/dist/erc8004/subgraph.d.ts +46 -0
- package/dist/erc8004/subgraph.js +37 -0
- package/dist/erc8004/subgraph.js.map +1 -0
- package/dist/erc8004/validation.d.ts +145 -0
- package/dist/erc8004/validation.js +219 -0
- package/dist/erc8004/validation.js.map +1 -0
- package/dist/errors/persisted-bootstrap-error.d.ts +4 -0
- package/dist/errors/persisted-bootstrap-error.js +50 -0
- package/dist/errors/persisted-bootstrap-error.js.map +1 -0
- package/dist/events/emitter.d.ts +12 -0
- package/dist/events/emitter.js +23 -0
- package/dist/events/emitter.js.map +1 -0
- package/dist/events/ring-buffer.d.ts +25 -0
- package/dist/events/ring-buffer.js +46 -0
- package/dist/events/ring-buffer.js.map +1 -0
- package/dist/events/types.d.ts +42 -0
- package/dist/events/types.js +28 -0
- package/dist/events/types.js.map +1 -0
- package/dist/harnesses/capability/index.d.ts +82 -0
- package/dist/harnesses/capability/index.js +12 -0
- package/dist/harnesses/capability/index.js.map +1 -0
- package/dist/harnesses/capability/scoped-rpc.d.ts +12 -0
- package/dist/harnesses/capability/scoped-rpc.js +34 -0
- package/dist/harnesses/capability/scoped-rpc.js.map +1 -0
- package/dist/harnesses/capability/scoped-secrets.d.ts +8 -0
- package/dist/harnesses/capability/scoped-secrets.js +10 -0
- package/dist/harnesses/capability/scoped-secrets.js.map +1 -0
- package/dist/harnesses/capability/scoped-signer.d.ts +46 -0
- package/dist/harnesses/capability/scoped-signer.js +73 -0
- package/dist/harnesses/capability/scoped-signer.js.map +1 -0
- package/dist/harnesses/engine/artifact-scrub.d.ts +12 -0
- package/dist/harnesses/engine/artifact-scrub.js +104 -0
- package/dist/harnesses/engine/artifact-scrub.js.map +1 -0
- package/dist/harnesses/engine/canonical-json.d.ts +1 -0
- package/dist/harnesses/engine/canonical-json.js +66 -0
- package/dist/harnesses/engine/canonical-json.js.map +1 -0
- package/dist/harnesses/engine/delivery.d.ts +58 -0
- package/dist/harnesses/engine/delivery.js +67 -0
- package/dist/harnesses/engine/delivery.js.map +1 -0
- package/dist/harnesses/engine/engine.d.ts +519 -0
- package/dist/harnesses/engine/engine.js +1588 -0
- package/dist/harnesses/engine/engine.js.map +1 -0
- package/dist/harnesses/engine/envelope-assembly.d.ts +73 -0
- package/dist/harnesses/engine/envelope-assembly.js +60 -0
- package/dist/harnesses/engine/envelope-assembly.js.map +1 -0
- package/dist/harnesses/engine/packaging.d.ts +99 -0
- package/dist/harnesses/engine/packaging.js +424 -0
- package/dist/harnesses/engine/packaging.js.map +1 -0
- package/dist/harnesses/engine/persistence.d.ts +198 -0
- package/dist/harnesses/engine/persistence.js +443 -0
- package/dist/harnesses/engine/persistence.js.map +1 -0
- package/dist/harnesses/engine/recovery.d.ts +22 -0
- package/dist/harnesses/engine/recovery.js +24 -0
- package/dist/harnesses/engine/recovery.js.map +1 -0
- package/dist/harnesses/engine/registry.d.ts +55 -0
- package/dist/harnesses/engine/registry.js +66 -0
- package/dist/harnesses/engine/registry.js.map +1 -0
- package/dist/harnesses/engine/signing.d.ts +30 -0
- package/dist/harnesses/engine/signing.js +39 -0
- package/dist/harnesses/engine/signing.js.map +1 -0
- package/dist/harnesses/engine/state.d.ts +42 -0
- package/dist/harnesses/engine/state.js +87 -0
- package/dist/harnesses/engine/state.js.map +1 -0
- package/dist/harnesses/engine/validate-manifest.d.ts +23 -0
- package/dist/harnesses/engine/validate-manifest.js +63 -0
- package/dist/harnesses/engine/validate-manifest.js.map +1 -0
- package/dist/harnesses/engine/verification-stub.d.ts +18 -0
- package/dist/harnesses/engine/verification-stub.js +18 -0
- package/dist/harnesses/engine/verification-stub.js.map +1 -0
- package/dist/harnesses/external-impls/index.d.ts +3 -0
- package/dist/harnesses/external-impls/index.js +2 -0
- package/dist/harnesses/external-impls/index.js.map +1 -0
- package/dist/harnesses/external-impls/loader.d.ts +50 -0
- package/dist/harnesses/external-impls/loader.js +139 -0
- package/dist/harnesses/external-impls/loader.js.map +1 -0
- package/dist/harnesses/external-impls/package-hash.d.ts +26 -0
- package/dist/harnesses/external-impls/package-hash.js +102 -0
- package/dist/harnesses/external-impls/package-hash.js.map +1 -0
- package/dist/harnesses/external-impls/types.d.ts +42 -0
- package/dist/harnesses/external-impls/types.js +10 -0
- package/dist/harnesses/external-impls/types.js.map +1 -0
- package/dist/harnesses/freeze.d.ts +34 -0
- package/dist/harnesses/freeze.js +60 -0
- package/dist/harnesses/freeze.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.d.ts +57 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.js +239 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/claude-code.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/codex-code.d.ts +31 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/codex-code.js +257 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/codex-code.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/codex-workspace.d.ts +21 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/codex-workspace.js +193 -0
- package/dist/harnesses/impls/claude-code-learner/adapters/codex-workspace.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/harness.d.ts +22 -0
- package/dist/harnesses/impls/claude-code-learner/harness.js +62 -0
- package/dist/harnesses/impls/claude-code-learner/harness.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/harvest.d.ts +20 -0
- package/dist/harnesses/impls/claude-code-learner/harvest.js +510 -0
- package/dist/harnesses/impls/claude-code-learner/harvest.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/index.d.ts +18 -0
- package/dist/harnesses/impls/claude-code-learner/index.js +15 -0
- package/dist/harnesses/impls/claude-code-learner/index.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/plugin-path.d.ts +14 -0
- package/dist/harnesses/impls/claude-code-learner/plugin-path.js +30 -0
- package/dist/harnesses/impls/claude-code-learner/plugin-path.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.d.ts +50 -0
- package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.js +192 -0
- package/dist/harnesses/impls/claude-code-learner/test-utils/fake-plugin-outputs.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.d.ts +22 -0
- package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.js +35 -0
- package/dist/harnesses/impls/claude-code-learner/test-utils/noop-adapter.js.map +1 -0
- package/dist/harnesses/impls/claude-code-learner/types.d.ts +114 -0
- package/dist/harnesses/impls/claude-code-learner/types.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/index.d.ts +106 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/index.js +723 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/index.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +104 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.js +264 -0
- package/dist/harnesses/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction/index.d.ts +44 -0
- package/dist/harnesses/impls/claude-mcp-prediction/index.js +250 -0
- package/dist/harnesses/impls/claude-mcp-prediction/index.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js +135 -0
- package/dist/harnesses/impls/claude-mcp-prediction/mcp-tools.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction/prompt.d.ts +8 -0
- package/dist/harnesses/impls/claude-mcp-prediction/prompt.js +54 -0
- package/dist/harnesses/impls/claude-mcp-prediction/prompt.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.d.ts +43 -0
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js +21 -0
- package/dist/harnesses/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction/types.d.ts +84 -0
- package/dist/harnesses/impls/claude-mcp-prediction/types.js +6 -0
- package/dist/harnesses/impls/claude-mcp-prediction/types.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/index.d.ts +36 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js +241 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/index.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js +136 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.d.ts +7 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.js +46 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/prompt.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +37 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js +19 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/types.d.ts +64 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/types.js +6 -0
- package/dist/harnesses/impls/claude-mcp-prediction-apy/types.js.map +1 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.d.ts +84 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.js +206 -0
- package/dist/harnesses/impls/claude-mcp-shared/single-session-orchestrator.js.map +1 -0
- package/dist/harnesses/impls/evaluation-context.d.ts +23 -0
- package/dist/harnesses/impls/evaluation-context.js +25 -0
- package/dist/harnesses/impls/evaluation-context.js.map +1 -0
- package/dist/harnesses/impls/index.d.ts +84 -0
- package/dist/harnesses/impls/index.js +136 -0
- package/dist/harnesses/impls/index.js.map +1 -0
- package/dist/harnesses/impls/legacy-claude/index.d.ts +66 -0
- package/dist/harnesses/impls/legacy-claude/index.js +168 -0
- package/dist/harnesses/impls/legacy-claude/index.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.d.ts +44 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.js +569 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/index.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/score.js.map +1 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/types.d.ts +34 -0
- package/dist/harnesses/impls/portfolio-v0-evaluator/types.js.map +1 -0
- package/dist/harnesses/impls/prediction-apy-v0-baseline/index.d.ts +42 -0
- package/dist/harnesses/impls/prediction-apy-v0-baseline/index.js +114 -0
- package/dist/harnesses/impls/prediction-apy-v0-baseline/index.js.map +1 -0
- package/dist/harnesses/impls/prediction-apy-v0-baseline/strategy.js.map +1 -0
- package/dist/harnesses/impls/prediction-apy-v0-baseline/types.js.map +1 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +6 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.js +11 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.d.ts +42 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js +346 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/index.js.map +1 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +16 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.js +22 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/score.js.map +1 -0
- package/dist/harnesses/impls/prediction-apy-v0-evaluator/types.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-baseline/index.d.ts +33 -0
- package/dist/harnesses/impls/prediction-v0-baseline/index.js +109 -0
- package/dist/harnesses/impls/prediction-v0-baseline/index.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-baseline/strategy.d.ts +8 -0
- package/dist/harnesses/impls/prediction-v0-baseline/strategy.js +41 -0
- package/dist/harnesses/impls/prediction-v0-baseline/strategy.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-baseline/types.d.ts +7 -0
- package/dist/harnesses/impls/prediction-v0-baseline/types.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.d.ts +15 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.js +111 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/index.d.ts +36 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/index.js +342 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/index.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/score.js.map +1 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/types.js +2 -0
- package/dist/harnesses/impls/prediction-v0-evaluator/types.js.map +1 -0
- package/dist/harnesses/impls/prediction-v1-baseline/index.d.ts +31 -0
- package/dist/harnesses/impls/prediction-v1-baseline/index.js +79 -0
- package/dist/harnesses/impls/prediction-v1-baseline/index.js.map +1 -0
- package/dist/harnesses/impls/prediction-v1-evaluator/index.d.ts +32 -0
- package/dist/harnesses/impls/prediction-v1-evaluator/index.js +219 -0
- package/dist/harnesses/impls/prediction-v1-evaluator/index.js.map +1 -0
- package/dist/harnesses/impls/session-derived-evaluator/index.d.ts +4 -0
- package/dist/harnesses/impls/session-derived-evaluator/index.js +5 -0
- package/dist/harnesses/impls/session-derived-evaluator/index.js.map +1 -0
- package/dist/harnesses/impls/session-derived-evaluator/llm-judge.d.ts +16 -0
- package/dist/harnesses/impls/session-derived-evaluator/llm-judge.js +16 -0
- package/dist/harnesses/impls/session-derived-evaluator/llm-judge.js.map +1 -0
- package/dist/harnesses/impls/session-derived-evaluator/signals.d.ts +13 -0
- package/dist/harnesses/impls/session-derived-evaluator/signals.js +15 -0
- package/dist/harnesses/impls/session-derived-evaluator/signals.js.map +1 -0
- package/dist/harnesses/impls/session-derived-evaluator/structural-similarity.d.ts +7 -0
- package/dist/harnesses/impls/session-derived-evaluator/structural-similarity.js +28 -0
- package/dist/harnesses/impls/session-derived-evaluator/structural-similarity.js.map +1 -0
- package/dist/harnesses/impls/session-derived-evaluator/test-suite-rerun.d.ts +15 -0
- package/dist/harnesses/impls/session-derived-evaluator/test-suite-rerun.js +17 -0
- package/dist/harnesses/impls/session-derived-evaluator/test-suite-rerun.js.map +1 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.d.ts +20 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +107 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +74 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +288 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +33 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +96 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +61 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +42 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -0
- package/dist/harnesses/manifest/index.d.ts +3 -0
- package/dist/harnesses/manifest/index.js +3 -0
- package/dist/harnesses/manifest/index.js.map +1 -0
- package/dist/harnesses/manifest/load.d.ts +7 -0
- package/dist/harnesses/manifest/load.js +49 -0
- package/dist/harnesses/manifest/load.js.map +1 -0
- package/dist/harnesses/manifest/types.d.ts +75 -0
- package/dist/harnesses/manifest/types.js +8 -0
- package/dist/harnesses/manifest/types.js.map +1 -0
- package/dist/harnesses/manifest/verify.d.ts +15 -0
- package/dist/harnesses/manifest/verify.js +53 -0
- package/dist/harnesses/manifest/verify.js.map +1 -0
- package/dist/harnesses/mode-state.d.ts +7 -0
- package/dist/harnesses/mode-state.js +43 -0
- package/dist/harnesses/mode-state.js.map +1 -0
- package/dist/harnesses/names.d.ts +6 -0
- package/dist/harnesses/names.js +24 -0
- package/dist/harnesses/names.js.map +1 -0
- package/dist/harnesses/types.d.ts +276 -0
- package/dist/harnesses/types.js +28 -0
- package/dist/harnesses/types.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/main.d.ts +17 -2
- package/dist/main.js +1593 -147
- package/dist/main.js.map +1 -1
- package/dist/mcp/acquire-artifact.d.ts +41 -0
- package/dist/mcp/acquire-artifact.js +168 -0
- package/dist/mcp/acquire-artifact.js.map +1 -0
- package/dist/mcp/operator-server.d.ts +21 -4
- package/dist/mcp/operator-server.js +505 -30
- package/dist/mcp/operator-server.js.map +1 -1
- package/dist/mcp/search-records.d.ts +94 -0
- package/dist/mcp/search-records.js +396 -0
- package/dist/mcp/search-records.js.map +1 -0
- package/dist/mcp/server.d.ts +4 -4
- package/dist/mcp/server.js +240 -61
- package/dist/mcp/server.js.map +1 -1
- package/dist/observability/emit-event.d.ts +2 -2
- package/dist/observability/emit-event.js +2 -2
- package/dist/observability/emit-event.js.map +1 -1
- package/dist/operator-errors.d.ts +14 -0
- package/dist/operator-errors.js +39 -10
- package/dist/operator-errors.js.map +1 -1
- package/dist/plugins/digest.d.ts +1 -0
- package/dist/plugins/digest.js +28 -0
- package/dist/plugins/digest.js.map +1 -0
- package/dist/plugins/index.d.ts +6 -0
- package/dist/plugins/index.js +6 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/manifest.d.ts +7 -0
- package/dist/plugins/manifest.js +22 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/registry.d.ts +9 -0
- package/dist/plugins/registry.js +24 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/resolvers.d.ts +2 -0
- package/dist/plugins/resolvers.js +126 -0
- package/dist/plugins/resolvers.js.map +1 -0
- package/dist/plugins/types.d.ts +35 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/plugins/validator.d.ts +3 -0
- package/dist/plugins/validator.js +50 -0
- package/dist/plugins/validator.js.map +1 -0
- package/dist/preflight/claude-auth.d.ts +14 -12
- package/dist/preflight/claude-auth.js +23 -37
- package/dist/preflight/claude-auth.js.map +1 -1
- package/dist/preflight/claude-required.d.ts +8 -0
- package/dist/preflight/claude-required.js +17 -0
- package/dist/preflight/claude-required.js.map +1 -0
- package/dist/runner/claude.d.ts +3 -3
- package/dist/runner/claude.js +62 -26
- package/dist/runner/claude.js.map +1 -1
- package/dist/runner/runner.d.ts +29 -2
- package/dist/runner/simple.d.ts +2 -2
- package/dist/runner/simple.js +2 -2
- package/dist/runner/simple.js.map +1 -1
- package/dist/scripts/donation-consumption-acceptance.d.ts +71 -0
- package/dist/scripts/donation-consumption-acceptance.js +1117 -0
- package/dist/scripts/donation-consumption-acceptance.js.map +1 -0
- package/dist/scripts/fix-node-pty.mjs +113 -0
- package/dist/setup/claude-code-install.d.ts +19 -0
- package/dist/setup/claude-code-install.js +51 -0
- package/dist/setup/claude-code-install.js.map +1 -0
- package/dist/setup-mode.d.ts +34 -0
- package/dist/setup-mode.js +49 -0
- package/dist/setup-mode.js.map +1 -0
- package/dist/solver-nets/contracts.d.ts +2 -0
- package/dist/solver-nets/contracts.js +2 -0
- package/dist/solver-nets/contracts.js.map +1 -0
- package/dist/solver-nets/prediction-operator-ux.d.ts +112 -0
- package/dist/solver-nets/prediction-operator-ux.js +463 -0
- package/dist/solver-nets/prediction-operator-ux.js.map +1 -0
- package/dist/solver-nets/registry.d.ts +64 -0
- package/dist/solver-nets/registry.js +218 -0
- package/dist/solver-nets/registry.js.map +1 -0
- package/dist/solver-types/_session-derived-distill.d.ts +28 -0
- package/dist/solver-types/_session-derived-distill.js +52 -0
- package/dist/solver-types/_session-derived-distill.js.map +1 -0
- package/dist/solver-types/_session-derived-pool.d.ts +10 -0
- package/dist/solver-types/_session-derived-pool.js +27 -0
- package/dist/solver-types/_session-derived-pool.js.map +1 -0
- package/dist/solver-types/_session-derived-state.d.ts +17 -0
- package/dist/solver-types/_session-derived-state.js +25 -0
- package/dist/solver-types/_session-derived-state.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-aggregate.d.ts +31 -0
- package/dist/solver-types/_swe-rebench-v2-aggregate.js +49 -0
- package/dist/solver-types/_swe-rebench-v2-aggregate.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-escrow.d.ts +27 -0
- package/dist/solver-types/_swe-rebench-v2-escrow.js +26 -0
- package/dist/solver-types/_swe-rebench-v2-escrow.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-pool.d.ts +51 -0
- package/dist/solver-types/_swe-rebench-v2-pool.js +72 -0
- package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-state.d.ts +24 -0
- package/dist/solver-types/_swe-rebench-v2-state.js +54 -0
- package/dist/solver-types/_swe-rebench-v2-state.js.map +1 -0
- package/dist/solver-types/constants.d.ts +5 -0
- package/dist/solver-types/constants.js +6 -0
- package/dist/solver-types/constants.js.map +1 -0
- package/dist/solver-types/index.d.ts +10 -0
- package/dist/solver-types/index.js +32 -0
- package/dist/solver-types/index.js.map +1 -0
- package/dist/solver-types/learner-loop-test.d.ts +2 -0
- package/dist/solver-types/learner-loop-test.js +39 -0
- package/dist/solver-types/learner-loop-test.js.map +1 -0
- package/dist/solver-types/portfolio-v0.d.ts +2 -0
- package/dist/solver-types/portfolio-v0.js +13 -0
- package/dist/solver-types/portfolio-v0.js.map +1 -0
- package/dist/solver-types/prediction-apy-v0-auto.d.ts +27 -0
- package/dist/solver-types/prediction-apy-v0-auto.js +109 -0
- package/dist/solver-types/prediction-apy-v0-auto.js.map +1 -0
- package/dist/solver-types/prediction-apy-v0-template.d.ts +8 -0
- package/dist/solver-types/prediction-apy-v0-template.js +22 -0
- package/dist/solver-types/prediction-apy-v0-template.js.map +1 -0
- package/dist/solver-types/prediction-apy-v0.d.ts +3 -0
- package/dist/solver-types/prediction-apy-v0.js +25 -0
- package/dist/solver-types/prediction-apy-v0.js.map +1 -0
- package/dist/solver-types/prediction-v0-auto.d.ts +69 -0
- package/dist/solver-types/prediction-v0-auto.js +146 -0
- package/dist/solver-types/prediction-v0-auto.js.map +1 -0
- package/dist/solver-types/prediction-v0-template.d.ts +70 -0
- package/dist/solver-types/prediction-v0-template.js +145 -0
- package/dist/solver-types/prediction-v0-template.js.map +1 -0
- package/dist/solver-types/prediction-v0.d.ts +13 -0
- package/dist/solver-types/prediction-v0.js +31 -0
- package/dist/solver-types/prediction-v0.js.map +1 -0
- package/dist/solver-types/prediction-v1-auto.d.ts +122 -0
- package/dist/solver-types/prediction-v1-auto.js +366 -0
- package/dist/solver-types/prediction-v1-auto.js.map +1 -0
- package/dist/solver-types/prediction-v1.d.ts +11 -0
- package/dist/solver-types/prediction-v1.js +27 -0
- package/dist/solver-types/prediction-v1.js.map +1 -0
- package/dist/solver-types/session-derived.d.ts +2 -0
- package/dist/solver-types/session-derived.js +24 -0
- package/dist/solver-types/session-derived.js.map +1 -0
- package/dist/solver-types/solver-type.d.ts +53 -0
- package/dist/solver-types/solver-type.js +6 -0
- package/dist/solver-types/solver-type.js.map +1 -0
- package/dist/solver-types/swe-rebench-v2-auto.d.ts +38 -0
- package/dist/solver-types/swe-rebench-v2-auto.js +56 -0
- package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -0
- package/dist/solver-types/swe-rebench-v2.d.ts +69 -0
- package/dist/solver-types/swe-rebench-v2.js +356 -0
- package/dist/solver-types/swe-rebench-v2.js.map +1 -0
- package/dist/solvernets/daemon-init.d.ts +291 -0
- package/dist/solvernets/daemon-init.js +431 -0
- package/dist/solvernets/daemon-init.js.map +1 -0
- package/dist/solvernets/launch-state-machine.d.ts +165 -0
- package/dist/solvernets/launch-state-machine.js +406 -0
- package/dist/solvernets/launch-state-machine.js.map +1 -0
- package/dist/solvernets/launched-record-dispatcher.d.ts +55 -0
- package/dist/solvernets/launched-record-dispatcher.js +169 -0
- package/dist/solvernets/launched-record-dispatcher.js.map +1 -0
- package/dist/solvernets/lifecycle-transitions.d.ts +183 -0
- package/dist/solvernets/lifecycle-transitions.js +386 -0
- package/dist/solvernets/lifecycle-transitions.js.map +1 -0
- package/dist/solvernets/manifest.d.ts +120 -0
- package/dist/solvernets/manifest.js +166 -0
- package/dist/solvernets/manifest.js.map +1 -0
- package/dist/solvernets/most-recent-wins.d.ts +77 -0
- package/dist/solvernets/most-recent-wins.js +82 -0
- package/dist/solvernets/most-recent-wins.js.map +1 -0
- package/dist/solvernets/registry-client-erc8004.d.ts +239 -0
- package/dist/solvernets/registry-client-erc8004.js +382 -0
- package/dist/solvernets/registry-client-erc8004.js.map +1 -0
- package/dist/solvernets/registry-client.d.ts +121 -0
- package/dist/solvernets/registry-client.js +19 -0
- package/dist/solvernets/registry-client.js.map +1 -0
- package/dist/solvernets/store.d.ts +298 -0
- package/dist/solvernets/store.js +271 -0
- package/dist/solvernets/store.js.map +1 -0
- package/dist/store/captures.d.ts +85 -0
- package/dist/store/captures.js +167 -0
- package/dist/store/captures.js.map +1 -0
- package/dist/store/store.d.ts +235 -21
- package/dist/store/store.js +1000 -46
- package/dist/store/store.js.map +1 -1
- package/dist/tasks/posting-service.d.ts +25 -0
- package/dist/tasks/posting-service.js +149 -0
- package/dist/tasks/posting-service.js.map +1 -0
- package/dist/tasks/signing.d.ts +4 -0
- package/dist/tasks/signing.js +18 -0
- package/dist/tasks/signing.js.map +1 -0
- package/dist/tasks/sources.d.ts +46 -0
- package/dist/tasks/sources.js +45 -0
- package/dist/tasks/sources.js.map +1 -0
- package/dist/templates/harnesses/alternative-harness/README.md.tmpl +44 -0
- package/dist/templates/harnesses/alternative-harness/gitignore.tmpl +3 -0
- package/dist/templates/harnesses/alternative-harness/jinn.manifest.json.tmpl +22 -0
- package/dist/templates/harnesses/alternative-harness/package.json.tmpl +26 -0
- package/dist/templates/harnesses/alternative-harness/src/coordinator.ts.tmpl +50 -0
- package/dist/templates/harnesses/alternative-harness/src/harness.ts.tmpl +31 -0
- package/dist/templates/harnesses/alternative-harness/src/index.ts.tmpl +44 -0
- package/dist/templates/harnesses/alternative-harness/src/mock-harness.ts.tmpl +41 -0
- package/dist/templates/harnesses/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
- package/dist/templates/harnesses/alternative-harness/src/phases/execute.ts.tmpl +33 -0
- package/dist/templates/harnesses/alternative-harness/src/phases/improve.ts.tmpl +31 -0
- package/dist/templates/harnesses/alternative-harness/src/phases/memory.ts.tmpl +31 -0
- package/dist/templates/harnesses/alternative-harness/src/phases/orient.ts.tmpl +21 -0
- package/dist/templates/harnesses/alternative-harness/src/phases/plan.ts.tmpl +25 -0
- package/dist/templates/harnesses/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
- package/dist/templates/harnesses/alternative-harness/test/coordinator.test.ts.tmpl +53 -0
- package/dist/templates/harnesses/alternative-harness/test/unit.test.ts.tmpl +55 -0
- package/dist/templates/harnesses/alternative-harness/tsconfig.json.tmpl +16 -0
- package/dist/templates/harnesses/evaluator/README.md.tmpl +36 -0
- package/dist/templates/harnesses/evaluator/gitignore.tmpl +3 -0
- package/dist/templates/harnesses/evaluator/jinn.manifest.json.tmpl +22 -0
- package/dist/templates/harnesses/evaluator/package.json.tmpl +26 -0
- package/dist/templates/harnesses/evaluator/src/index.ts.tmpl +35 -0
- package/dist/templates/harnesses/evaluator/test/unit.test.ts.tmpl +49 -0
- package/dist/templates/harnesses/evaluator/tsconfig.json.tmpl +16 -0
- package/dist/templates/harnesses/forecaster/README.md.tmpl +25 -0
- package/dist/templates/harnesses/forecaster/gitignore.tmpl +5 -0
- package/dist/templates/harnesses/forecaster/jinn.manifest.json.tmpl +22 -0
- package/dist/templates/harnesses/forecaster/package.json.tmpl +26 -0
- package/dist/templates/harnesses/forecaster/src/index.ts.tmpl +33 -0
- package/dist/templates/harnesses/forecaster/test/unit.test.ts.tmpl +42 -0
- package/dist/templates/harnesses/forecaster/tsconfig.json.tmpl +16 -0
- package/dist/trajectory/collector.d.ts +59 -0
- package/dist/trajectory/collector.js +164 -0
- package/dist/trajectory/collector.js.map +1 -0
- package/dist/trajectory/emit.d.ts +29 -0
- package/dist/trajectory/emit.js +81 -0
- package/dist/trajectory/emit.js.map +1 -0
- package/dist/trajectory/harness-bundle-rules/aider.d.ts +13 -0
- package/dist/trajectory/harness-bundle-rules/aider.js +26 -0
- package/dist/trajectory/harness-bundle-rules/aider.js.map +1 -0
- package/dist/trajectory/harness-bundle-rules/claude-code.d.ts +16 -0
- package/dist/trajectory/harness-bundle-rules/claude-code.js +71 -0
- package/dist/trajectory/harness-bundle-rules/claude-code.js.map +1 -0
- package/dist/trajectory/harness-bundle-rules/codex.d.ts +13 -0
- package/dist/trajectory/harness-bundle-rules/codex.js +96 -0
- package/dist/trajectory/harness-bundle-rules/codex.js.map +1 -0
- package/dist/trajectory/harness-bundle-rules/continue.d.ts +10 -0
- package/dist/trajectory/harness-bundle-rules/continue.js +43 -0
- package/dist/trajectory/harness-bundle-rules/continue.js.map +1 -0
- package/dist/trajectory/harness-bundle-rules/cursor.d.ts +20 -0
- package/dist/trajectory/harness-bundle-rules/cursor.js +55 -0
- package/dist/trajectory/harness-bundle-rules/cursor.js.map +1 -0
- package/dist/trajectory/harness-bundle-rules/gemini-cli.d.ts +15 -0
- package/dist/trajectory/harness-bundle-rules/gemini-cli.js +112 -0
- package/dist/trajectory/harness-bundle-rules/gemini-cli.js.map +1 -0
- package/dist/trajectory/harness-bundle-rules/types.d.ts +25 -0
- package/dist/trajectory/harness-bundle-rules/types.js +15 -0
- package/dist/trajectory/harness-bundle-rules/types.js.map +1 -0
- package/dist/trajectory/harness-bundle-schema.d.ts +74 -0
- package/dist/trajectory/harness-bundle-schema.js +34 -0
- package/dist/trajectory/harness-bundle-schema.js.map +1 -0
- package/dist/trajectory/harness-bundle.d.ts +73 -0
- package/dist/trajectory/harness-bundle.js +128 -0
- package/dist/trajectory/harness-bundle.js.map +1 -0
- package/dist/trajectory/hash-chain.d.ts +18 -0
- package/dist/trajectory/hash-chain.js +23 -0
- package/dist/trajectory/hash-chain.js.map +1 -0
- package/dist/trajectory/index.d.ts +28 -0
- package/dist/trajectory/index.js +28 -0
- package/dist/trajectory/index.js.map +1 -0
- package/dist/trajectory/llm-proxy-spans.d.ts +14 -0
- package/dist/trajectory/llm-proxy-spans.js +51 -0
- package/dist/trajectory/llm-proxy-spans.js.map +1 -0
- package/dist/trajectory/llm-proxy.d.ts +32 -0
- package/dist/trajectory/llm-proxy.js +97 -0
- package/dist/trajectory/llm-proxy.js.map +1 -0
- package/dist/trajectory/processors/credential-scrub.d.ts +11 -0
- package/dist/trajectory/processors/credential-scrub.js +40 -0
- package/dist/trajectory/processors/credential-scrub.js.map +1 -0
- package/dist/trajectory/processors/identity-scrub.d.ts +18 -0
- package/dist/trajectory/processors/identity-scrub.js +43 -0
- package/dist/trajectory/processors/identity-scrub.js.map +1 -0
- package/dist/trajectory/processors/manifest-builder.d.ts +18 -0
- package/dist/trajectory/processors/manifest-builder.js +26 -0
- package/dist/trajectory/processors/manifest-builder.js.map +1 -0
- package/dist/trajectory/processors/path-scrub.d.ts +15 -0
- package/dist/trajectory/processors/path-scrub.js +52 -0
- package/dist/trajectory/processors/path-scrub.js.map +1 -0
- package/dist/trajectory/processors/sentinel.d.ts +16 -0
- package/dist/trajectory/processors/sentinel.js +17 -0
- package/dist/trajectory/processors/sentinel.js.map +1 -0
- package/dist/trajectory/processors/sqlite-exporter.d.ts +32 -0
- package/dist/trajectory/processors/sqlite-exporter.js +48 -0
- package/dist/trajectory/processors/sqlite-exporter.js.map +1 -0
- package/dist/trajectory/processors/transcript-content-scrub.d.ts +9 -0
- package/dist/trajectory/processors/transcript-content-scrub.js +58 -0
- package/dist/trajectory/processors/transcript-content-scrub.js.map +1 -0
- package/dist/trajectory/receiver.d.ts +37 -0
- package/dist/trajectory/receiver.js +584 -0
- package/dist/trajectory/receiver.js.map +1 -0
- package/dist/trajectory/schema.d.ts +102 -14
- package/dist/trajectory/schema.js +29 -0
- package/dist/trajectory/schema.js.map +1 -1
- package/dist/trajectory/secret-scrub.d.ts +32 -0
- package/dist/trajectory/secret-scrub.js +51 -0
- package/dist/trajectory/secret-scrub.js.map +1 -0
- package/dist/trajectory/span-profile.d.ts +27 -0
- package/dist/trajectory/span-profile.js +51 -0
- package/dist/trajectory/span-profile.js.map +1 -0
- package/dist/trajectory/synthetic-span-builder.d.ts +50 -0
- package/dist/trajectory/synthetic-span-builder.js +115 -0
- package/dist/trajectory/synthetic-span-builder.js.map +1 -0
- package/dist/trajectory/transcript-parsers/aider-history.d.ts +42 -0
- package/dist/trajectory/transcript-parsers/aider-history.js +182 -0
- package/dist/trajectory/transcript-parsers/aider-history.js.map +1 -0
- package/dist/trajectory/transcript-parsers/claude-code-jsonl.d.ts +37 -0
- package/dist/trajectory/transcript-parsers/claude-code-jsonl.js +143 -0
- package/dist/trajectory/transcript-parsers/claude-code-jsonl.js.map +1 -0
- package/dist/trajectory/transcript-parsers/codex-session.d.ts +36 -0
- package/dist/trajectory/transcript-parsers/codex-session.js +135 -0
- package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -0
- package/dist/trajectory/transcript-parsers/continue-devdata.d.ts +41 -0
- package/dist/trajectory/transcript-parsers/continue-devdata.js +191 -0
- package/dist/trajectory/transcript-parsers/continue-devdata.js.map +1 -0
- package/dist/trajectory/transcript-parsers/cursor-sqlite.d.ts +38 -0
- package/dist/trajectory/transcript-parsers/cursor-sqlite.js +119 -0
- package/dist/trajectory/transcript-parsers/cursor-sqlite.js.map +1 -0
- package/dist/trajectory/transcript-parsers/gemini-session.d.ts +35 -0
- package/dist/trajectory/transcript-parsers/gemini-session.js +138 -0
- package/dist/trajectory/transcript-parsers/gemini-session.js.map +1 -0
- package/dist/trajectory/transcript-parsers/types.d.ts +101 -0
- package/dist/trajectory/transcript-parsers/types.js +33 -0
- package/dist/trajectory/transcript-parsers/types.js.map +1 -0
- package/dist/trajectory/transcript-watcher.d.ts +62 -0
- package/dist/trajectory/transcript-watcher.js +157 -0
- package/dist/trajectory/transcript-watcher.js.map +1 -0
- package/dist/trajectory/wrappers/http.d.ts +37 -0
- package/dist/trajectory/wrappers/http.js +85 -0
- package/dist/trajectory/wrappers/http.js.map +1 -0
- package/dist/trajectory/wrappers/mcp.d.ts +17 -0
- package/dist/trajectory/wrappers/mcp.js +58 -0
- package/dist/trajectory/wrappers/mcp.js.map +1 -0
- package/dist/trajectory/wrappers/subprocess.d.ts +32 -0
- package/dist/trajectory/wrappers/subprocess.js +70 -0
- package/dist/trajectory/wrappers/subprocess.js.map +1 -0
- package/dist/tx-retry.js +90 -9
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/envelope.d.ts +2742 -0
- package/dist/types/envelope.js +149 -0
- package/dist/types/envelope.js.map +1 -0
- package/dist/types/index.d.ts +4 -4
- package/dist/types/index.js +4 -4
- package/dist/types/index.js.map +1 -1
- package/dist/types/payloads/index.d.ts +12 -0
- package/dist/types/payloads/index.js +62 -0
- package/dist/types/payloads/index.js.map +1 -0
- package/dist/types/payloads/portfolio-v0.d.ts +481 -0
- package/dist/types/payloads/portfolio-v0.js +94 -0
- package/dist/types/payloads/portfolio-v0.js.map +1 -0
- package/dist/types/payloads/prediction-apy-v0.d.ts +231 -0
- package/dist/types/payloads/prediction-apy-v0.js +63 -0
- package/dist/types/payloads/prediction-apy-v0.js.map +1 -0
- package/dist/types/payloads/prediction-v0.d.ts +262 -0
- package/dist/types/payloads/prediction-v0.js +73 -0
- package/dist/types/payloads/prediction-v0.js.map +1 -0
- package/dist/types/payloads/prediction-v1.d.ts +2 -0
- package/dist/types/payloads/prediction-v1.js +2 -0
- package/dist/types/payloads/prediction-v1.js.map +1 -0
- package/dist/types/portfolio.d.ts +31 -698
- package/dist/types/portfolio.js +20 -110
- package/dist/types/portfolio.js.map +1 -1
- package/dist/types/prediction-apy.d.ts +26 -366
- package/dist/types/prediction-apy.js +12 -68
- package/dist/types/prediction-apy.js.map +1 -1
- package/dist/types/prediction-v1.d.ts +2 -0
- package/dist/types/prediction-v1.js +2 -0
- package/dist/types/prediction-v1.js.map +1 -0
- package/dist/types/prediction.d.ts +546 -382
- package/dist/types/prediction.js +16 -87
- package/dist/types/prediction.js.map +1 -1
- package/dist/types/session-provenance.d.ts +71 -0
- package/dist/types/session-provenance.js +19 -0
- package/dist/types/session-provenance.js.map +1 -0
- package/dist/types/task-document.d.ts +1121 -0
- package/dist/types/task-document.js +99 -0
- package/dist/types/task-document.js.map +1 -0
- package/dist/types/task.d.ts +805 -0
- package/dist/types/task.js +88 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/window.d.ts +12 -0
- package/dist/types/window.js +6 -0
- package/dist/types/window.js.map +1 -0
- package/dist/util/path-safety.d.ts +21 -0
- package/dist/util/path-safety.js +28 -0
- package/dist/util/path-safety.js.map +1 -0
- package/dist/util/redact-rpc-urls.d.ts +5 -0
- package/dist/util/redact-rpc-urls.js +9 -0
- package/dist/util/redact-rpc-urls.js.map +1 -0
- package/dist/vendor/@jinn-network/sdk/README.md +89 -0
- package/dist/vendor/@jinn-network/sdk/dist/capabilities.d.ts +52 -0
- package/dist/vendor/@jinn-network/sdk/dist/capabilities.js +1 -0
- package/dist/vendor/@jinn-network/sdk/dist/checkpoint.d.ts +120 -0
- package/dist/vendor/@jinn-network/sdk/dist/checkpoint.js +39 -0
- package/dist/vendor/@jinn-network/sdk/dist/contracts.d.ts +145 -0
- package/dist/vendor/@jinn-network/sdk/dist/contracts.js +317 -0
- package/dist/vendor/@jinn-network/sdk/dist/harness.d.ts +120 -0
- package/dist/vendor/@jinn-network/sdk/dist/harness.js +31 -0
- package/dist/vendor/@jinn-network/sdk/dist/index.d.ts +4 -0
- package/dist/vendor/@jinn-network/sdk/dist/index.js +7 -0
- package/dist/vendor/@jinn-network/sdk/dist/json-schema.d.ts +32 -0
- package/dist/vendor/@jinn-network/sdk/dist/json-schema.js +131 -0
- package/dist/vendor/@jinn-network/sdk/dist/manifest.d.ts +69 -0
- package/dist/vendor/@jinn-network/sdk/dist/manifest.js +3 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.d.ts +223 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/prediction-v1.js +64 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.d.ts +359 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/session-derived.js +60 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.d.ts +110 -0
- package/dist/vendor/@jinn-network/sdk/dist/payloads/swe-rebench-v2.js +58 -0
- package/dist/vendor/@jinn-network/sdk/dist/plugins.d.ts +36 -0
- package/dist/vendor/@jinn-network/sdk/dist/plugins.js +54 -0
- package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.d.ts +870 -0
- package/dist/vendor/@jinn-network/sdk/dist/prediction-v1.js +80 -0
- package/dist/vendor/@jinn-network/sdk/dist/session-derived/distill-prompt-v1.d.ts +2 -0
- package/dist/vendor/@jinn-network/sdk/dist/session-derived/distill-prompt-v1.js +10 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/index.d.ts +6 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/index.js +8 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +559 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +126 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/prediction-v1.d.ts +6 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/prediction-v1.js +3 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.d.ts +4 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/swe-rebench-v2.js +2 -0
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.d.ts +66 -0
- package/dist/vendor/@jinn-network/sdk/dist/swe-rebench-v2.js +44 -0
- package/dist/vendor/@jinn-network/sdk/dist/types.d.ts +116 -0
- package/dist/vendor/@jinn-network/sdk/dist/types.js +21 -0
- package/dist/vendor/@jinn-network/sdk/package.json +43 -0
- package/dist/venues/hyperliquid/account-value.d.ts +1 -1
- package/dist/venues/hyperliquid/account-value.js +1 -1
- package/dist/venues/polymarket/client.d.ts +77 -0
- package/dist/venues/polymarket/client.js +309 -0
- package/dist/venues/polymarket/client.js.map +1 -0
- package/dist/withdraw/run-withdraw-plan.js +0 -2
- package/dist/withdraw/run-withdraw-plan.js.map +1 -1
- package/dist/x402/acquire.d.ts +14 -3
- package/dist/x402/acquire.js +28 -11
- package/dist/x402/acquire.js.map +1 -1
- package/dist/x402/handler.d.ts +15 -3
- package/dist/x402/handler.js +189 -24
- package/dist/x402/handler.js.map +1 -1
- package/package.json +60 -15
- package/plugins/claude-code-learner/.claude-plugin/plugin.json +9 -0
- package/plugins/claude-code-learner/.codex-plugin/plugin.json +39 -0
- package/plugins/claude-code-learner/AGENTS.md +40 -0
- package/plugins/claude-code-learner/CLAUDE.md +33 -0
- package/plugins/claude-code-learner/README.md +59 -0
- package/plugins/claude-code-learner/hooks/hooks.json +16 -0
- package/plugins/claude-code-learner/hooks/session-start +38 -0
- package/plugins/claude-code-learner/skills/learn/SKILL.md +412 -0
- package/plugins/claude-code-learner/skills/learn/analyst-prompt.md +68 -0
- package/plugins/claude-code-learner/skills/learn/consolidator-prompt.md +94 -0
- package/plugins/claude-code-learner/skills/learn/explorer-prompt.md +53 -0
- package/plugins/claude-code-learner/skills/learn/planner-prompt.md +87 -0
- package/plugins/claude-code-learner/skills/learn/promoter-prompt.md +113 -0
- package/plugins/claude-code-learner/skills/learn/step-worker-prompt.md +47 -0
- package/plugins/claude-code-learner/skills/learn/strategist-prompt.md +85 -0
- package/plugins/jinn-prediction-plugin/.claude-plugin/plugin.json +19 -0
- package/plugins/jinn-prediction-plugin/.mcp.json +8 -0
- package/plugins/jinn-prediction-plugin/GEMINI.md +7 -0
- package/plugins/jinn-prediction-plugin/gemini-extension.json +13 -0
- package/plugins/jinn-prediction-plugin/jinn.plugin.json +26 -0
- package/plugins/jinn-prediction-plugin/mcp/polymarket-server.mjs +322 -0
- package/plugins/jinn-prediction-plugin/schemas/prediction-v0-solution.schema.json +12 -0
- package/plugins/jinn-prediction-plugin/schemas/prediction-v0-task.schema.json +25 -0
- package/plugins/jinn-prediction-plugin/schemas/prediction-v0-verdict.schema.json +11 -0
- package/plugins/jinn-prediction-plugin/schemas/prediction-v1-solution.schema.json +34 -0
- package/plugins/jinn-prediction-plugin/schemas/prediction-v1-task.schema.json +118 -0
- package/plugins/jinn-prediction-plugin/schemas/prediction-v1-verdict.schema.json +84 -0
- package/plugins/jinn-prediction-plugin/skills/base-rate-forecasting/SKILL.md +3 -0
- package/plugins/jinn-prediction-plugin/skills/calibration/SKILL.md +3 -0
- package/plugins/jinn-prediction-plugin/skills/common-biases/SKILL.md +3 -0
- package/plugins/jinn-prediction-plugin/skills/polymarket-task-handling/SKILL.md +5 -0
- package/plugins/jinn-prediction-plugin/skills/prediction-corpus-retrieval/SKILL.md +35 -0
- package/plugins/network-tools/.claude-plugin/plugin.json +12 -0
- package/plugins/network-tools/.codex-plugin/plugin.json +39 -0
- package/plugins/network-tools/.mcp.json +11 -0
- package/plugins/network-tools/jinn.plugin.json +29 -0
- package/plugins/network-tools/mcp/jinn-client-server.mjs +110 -0
- package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +5 -0
- package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +39 -0
- package/plugins/swe-rebench-v2-runtime/README.md +11 -0
- package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +12 -0
- package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +25 -0
- package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +64 -0
- package/skills/jinn-operator/SKILL.md +120 -101
- package/templates/harnesses/alternative-harness/README.md.tmpl +44 -0
- package/templates/harnesses/alternative-harness/gitignore.tmpl +3 -0
- package/templates/harnesses/alternative-harness/jinn.manifest.json.tmpl +22 -0
- package/templates/harnesses/alternative-harness/package.json.tmpl +26 -0
- package/templates/harnesses/alternative-harness/src/coordinator.ts.tmpl +50 -0
- package/templates/harnesses/alternative-harness/src/harness.ts.tmpl +31 -0
- package/templates/harnesses/alternative-harness/src/index.ts.tmpl +44 -0
- package/templates/harnesses/alternative-harness/src/mock-harness.ts.tmpl +41 -0
- package/templates/harnesses/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
- package/templates/harnesses/alternative-harness/src/phases/execute.ts.tmpl +33 -0
- package/templates/harnesses/alternative-harness/src/phases/improve.ts.tmpl +31 -0
- package/templates/harnesses/alternative-harness/src/phases/memory.ts.tmpl +31 -0
- package/templates/harnesses/alternative-harness/src/phases/orient.ts.tmpl +21 -0
- package/templates/harnesses/alternative-harness/src/phases/plan.ts.tmpl +25 -0
- package/templates/harnesses/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
- package/templates/harnesses/alternative-harness/test/coordinator.test.ts.tmpl +53 -0
- package/templates/harnesses/alternative-harness/test/unit.test.ts.tmpl +55 -0
- package/templates/harnesses/alternative-harness/tsconfig.json.tmpl +16 -0
- package/templates/harnesses/evaluator/README.md.tmpl +36 -0
- package/templates/harnesses/evaluator/gitignore.tmpl +3 -0
- package/templates/harnesses/evaluator/jinn.manifest.json.tmpl +22 -0
- package/templates/harnesses/evaluator/package.json.tmpl +26 -0
- package/templates/harnesses/evaluator/src/index.ts.tmpl +35 -0
- package/templates/harnesses/evaluator/test/unit.test.ts.tmpl +49 -0
- package/templates/harnesses/evaluator/tsconfig.json.tmpl +16 -0
- package/templates/harnesses/forecaster/README.md.tmpl +25 -0
- package/templates/harnesses/forecaster/gitignore.tmpl +5 -0
- package/templates/harnesses/forecaster/jinn.manifest.json.tmpl +22 -0
- package/templates/harnesses/forecaster/package.json.tmpl +26 -0
- package/templates/harnesses/forecaster/src/index.ts.tmpl +33 -0
- package/templates/harnesses/forecaster/test/unit.test.ts.tmpl +42 -0
- package/templates/harnesses/forecaster/tsconfig.json.tmpl +16 -0
- package/dist/adapters/claim-registry/abi.d.ts +0 -127
- package/dist/adapters/claim-registry/abi.js +0 -93
- package/dist/adapters/claim-registry/abi.js.map +0 -1
- package/dist/adapters/claim-registry/client.d.ts +0 -89
- package/dist/adapters/claim-registry/client.js +0 -205
- package/dist/adapters/claim-registry/client.js.map +0 -1
- package/dist/adapters/mech/claim-policy.d.ts +0 -40
- package/dist/adapters/mech/claim-policy.js +0 -104
- package/dist/adapters/mech/claim-policy.js.map +0 -1
- package/dist/bin/jinn-mcp.d.ts +0 -2
- package/dist/bin/jinn-mcp.js +0 -10
- package/dist/bin/jinn-mcp.js.map +0 -1
- package/dist/cli/commands/intents.d.ts +0 -17
- package/dist/cli/commands/intents.js +0 -489
- package/dist/cli/commands/intents.js.map +0 -1
- package/dist/cli/commands/plugin-install.js +0 -803
- package/dist/cli/commands/plugin-install.js.map +0 -1
- package/dist/cli/commands/submit-intent.js +0 -245
- package/dist/cli/commands/submit-intent.js.map +0 -1
- package/dist/cli/intent-registry-access.d.ts +0 -62
- package/dist/cli/intent-registry-access.js +0 -165
- package/dist/cli/intent-registry-access.js.map +0 -1
- package/dist/discovery/registry.d.ts +0 -97
- package/dist/discovery/registry.js +0 -177
- package/dist/discovery/registry.js.map +0 -1
- package/dist/discovery/subgraph.d.ts +0 -37
- package/dist/discovery/subgraph.js +0 -87
- package/dist/discovery/subgraph.js.map +0 -1
- package/dist/intents/kinds/constants.d.ts +0 -5
- package/dist/intents/kinds/constants.js +0 -6
- package/dist/intents/kinds/constants.js.map +0 -1
- package/dist/intents/kinds/index.d.ts +0 -28
- package/dist/intents/kinds/index.js +0 -50
- package/dist/intents/kinds/index.js.map +0 -1
- package/dist/intents/kinds/portfolio-v0.d.ts +0 -2
- package/dist/intents/kinds/portfolio-v0.js +0 -13
- package/dist/intents/kinds/portfolio-v0.js.map +0 -1
- package/dist/intents/kinds/prediction-apy-v0.d.ts +0 -3
- package/dist/intents/kinds/prediction-apy-v0.js +0 -21
- package/dist/intents/kinds/prediction-apy-v0.js.map +0 -1
- package/dist/intents/kinds/prediction-v0.d.ts +0 -3
- package/dist/intents/kinds/prediction-v0.js +0 -32
- package/dist/intents/kinds/prediction-v0.js.map +0 -1
- package/dist/intents/kinds/spec-kind.d.ts +0 -38
- package/dist/intents/kinds/spec-kind.js +0 -6
- package/dist/intents/kinds/spec-kind.js.map +0 -1
- package/dist/intents/posting-service.d.ts +0 -26
- package/dist/intents/posting-service.js +0 -218
- package/dist/intents/posting-service.js.map +0 -1
- package/dist/intents/prediction-apy-v0-auto.d.ts +0 -11
- package/dist/intents/prediction-apy-v0-auto.js +0 -46
- package/dist/intents/prediction-apy-v0-auto.js.map +0 -1
- package/dist/intents/prediction-apy-v0-template.d.ts +0 -8
- package/dist/intents/prediction-apy-v0-template.js +0 -22
- package/dist/intents/prediction-apy-v0-template.js.map +0 -1
- package/dist/intents/prediction-v0-auto.d.ts +0 -53
- package/dist/intents/prediction-v0-auto.js +0 -84
- package/dist/intents/prediction-v0-auto.js.map +0 -1
- package/dist/intents/prediction-v0-template.d.ts +0 -70
- package/dist/intents/prediction-v0-template.js +0 -145
- package/dist/intents/prediction-v0-template.js.map +0 -1
- package/dist/intents/sources.d.ts +0 -39
- package/dist/intents/sources.js +0 -42
- package/dist/intents/sources.js.map +0 -1
- package/dist/restorer/engine/canonical-json.d.ts +0 -18
- package/dist/restorer/engine/canonical-json.js +0 -59
- package/dist/restorer/engine/canonical-json.js.map +0 -1
- package/dist/restorer/engine/claim.d.ts +0 -69
- package/dist/restorer/engine/claim.js +0 -104
- package/dist/restorer/engine/claim.js.map +0 -1
- package/dist/restorer/engine/delivery.d.ts +0 -52
- package/dist/restorer/engine/delivery.js +0 -63
- package/dist/restorer/engine/delivery.js.map +0 -1
- package/dist/restorer/engine/engine.d.ts +0 -213
- package/dist/restorer/engine/engine.js +0 -769
- package/dist/restorer/engine/engine.js.map +0 -1
- package/dist/restorer/engine/manifest-assembly.d.ts +0 -67
- package/dist/restorer/engine/manifest-assembly.js +0 -79
- package/dist/restorer/engine/manifest-assembly.js.map +0 -1
- package/dist/restorer/engine/packaging.d.ts +0 -87
- package/dist/restorer/engine/packaging.js +0 -350
- package/dist/restorer/engine/packaging.js.map +0 -1
- package/dist/restorer/engine/persistence.d.ts +0 -170
- package/dist/restorer/engine/persistence.js +0 -381
- package/dist/restorer/engine/persistence.js.map +0 -1
- package/dist/restorer/engine/recovery.d.ts +0 -22
- package/dist/restorer/engine/recovery.js +0 -24
- package/dist/restorer/engine/recovery.js.map +0 -1
- package/dist/restorer/engine/registry.d.ts +0 -62
- package/dist/restorer/engine/registry.js +0 -73
- package/dist/restorer/engine/registry.js.map +0 -1
- package/dist/restorer/engine/signing.d.ts +0 -30
- package/dist/restorer/engine/signing.js +0 -39
- package/dist/restorer/engine/signing.js.map +0 -1
- package/dist/restorer/engine/state.d.ts +0 -42
- package/dist/restorer/engine/state.js +0 -87
- package/dist/restorer/engine/state.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +0 -64
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +0 -104
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +0 -721
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +0 -97
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +0 -226
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +0 -44
- package/dist/restorer/impls/claude-mcp-prediction/index.js +0 -239
- package/dist/restorer/impls/claude-mcp-prediction/index.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js +0 -135
- package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction/prompt.d.ts +0 -8
- package/dist/restorer/impls/claude-mcp-prediction/prompt.js +0 -54
- package/dist/restorer/impls/claude-mcp-prediction/prompt.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +0 -36
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +0 -137
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +0 -84
- package/dist/restorer/impls/claude-mcp-prediction/types.js +0 -6
- package/dist/restorer/impls/claude-mcp-prediction/types.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +0 -34
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +0 -233
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js +0 -136
- package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.d.ts +0 -7
- package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js +0 -46
- package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +0 -27
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +0 -128
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +0 -1
- package/dist/restorer/impls/claude-mcp-prediction-apy/types.d.ts +0 -64
- package/dist/restorer/impls/claude-mcp-prediction-apy/types.js +0 -6
- package/dist/restorer/impls/claude-mcp-prediction-apy/types.js.map +0 -1
- package/dist/restorer/impls/evaluation-context.d.ts +0 -16
- package/dist/restorer/impls/evaluation-context.js +0 -18
- package/dist/restorer/impls/evaluation-context.js.map +0 -1
- package/dist/restorer/impls/index.d.ts +0 -46
- package/dist/restorer/impls/index.js +0 -88
- package/dist/restorer/impls/index.js.map +0 -1
- package/dist/restorer/impls/legacy-claude/index.d.ts +0 -52
- package/dist/restorer/impls/legacy-claude/index.js +0 -140
- package/dist/restorer/impls/legacy-claude/index.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +0 -68
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +0 -117
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +0 -78
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +0 -274
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +0 -23
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +0 -49
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +0 -25
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +0 -44
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +0 -17
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +0 -43
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +0 -44
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js +0 -440
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +0 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +0 -34
- package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +0 -1
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +0 -40
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +0 -107
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +0 -1
- package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js.map +0 -1
- package/dist/restorer/impls/prediction-apy-v0-baseline/types.js.map +0 -1
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +0 -6
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +0 -11
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +0 -1
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +0 -42
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +0 -208
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +0 -1
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +0 -7
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +0 -29
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +0 -1
- package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js.map +0 -1
- package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +0 -31
- package/dist/restorer/impls/prediction-v0-baseline/index.js +0 -100
- package/dist/restorer/impls/prediction-v0-baseline/index.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +0 -8
- package/dist/restorer/impls/prediction-v0-baseline/strategy.js +0 -41
- package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +0 -7
- package/dist/restorer/impls/prediction-v0-baseline/types.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +0 -20
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +0 -9
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +0 -3
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +0 -13
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +0 -111
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +0 -5
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +0 -36
- package/dist/restorer/impls/prediction-v0-evaluator/index.js +0 -234
- package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +0 -1
- package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +0 -1
- package/dist/restorer/types.d.ts +0 -194
- package/dist/restorer/types.js +0 -28
- package/dist/restorer/types.js.map +0 -1
- package/dist/types/desired-state.d.ts +0 -94
- package/dist/types/desired-state.js +0 -36
- package/dist/types/desired-state.js.map +0 -1
- /package/dist/cli/commands/{plugin-install.d.ts → solver-nets.d.ts} +0 -0
- /package/dist/cli/commands/{submit-intent.d.ts → tasks.d.ts} +0 -0
- /package/dist/{restorer/impls/prediction-apy-v0-baseline → harnesses/impls/claude-code-learner}/types.js +0 -0
- /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/api-wallet.js +0 -0
- /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/mcp-tools.js +0 -0
- /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/safety-rails.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/claude-mcp-hyperliquid/safety-rails.js +0 -0
- /package/dist/{restorer → harnesses}/impls/claude-mcp-prediction/mcp-tools.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/claude-mcp-prediction-apy/mcp-tools.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/availability.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/checks/availability.js +0 -0
- /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/score.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/score.js +0 -0
- /package/dist/{restorer → harnesses}/impls/portfolio-v0-evaluator/types.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/strategy.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/strategy.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-baseline/types.d.ts +0 -0
- /package/dist/{restorer/impls/prediction-apy-v0-evaluator → harnesses/impls/prediction-apy-v0-baseline}/types.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/score.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/score.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-apy-v0-evaluator/types.d.ts +0 -0
- /package/dist/{restorer/impls/prediction-v0-baseline → harnesses/impls/prediction-apy-v0-evaluator}/types.js +0 -0
- /package/dist/{restorer/impls/prediction-v0-evaluator → harnesses/impls/prediction-v0-baseline}/types.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/canonical-metrics.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/availability.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/eligibility.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/checks/spec.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/score.d.ts +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/score.js +0 -0
- /package/dist/{restorer → harnesses}/impls/prediction-v0-evaluator/types.d.ts +0 -0
package/dist/store/store.js
CHANGED
|
@@ -1,7 +1,31 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
import { mkdirSync } from 'node:fs';
|
|
3
3
|
import { dirname } from 'node:path';
|
|
4
|
-
import {
|
|
4
|
+
import { TASK_RUNS_SCHEMA } from '../harnesses/engine/persistence.js';
|
|
5
|
+
function readClaimPolicyMaxClaims(taskPayload) {
|
|
6
|
+
if (!taskPayload)
|
|
7
|
+
return undefined;
|
|
8
|
+
try {
|
|
9
|
+
const parsed = JSON.parse(taskPayload);
|
|
10
|
+
const value = parsed.claimPolicy?.maxClaims ?? parsed.signedTask?.claimPolicy?.maxClaims;
|
|
11
|
+
return Number.isInteger(value) && value > 0 ? value : undefined;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function derivePostedTaskLocalState(args) {
|
|
18
|
+
if (args.runs.some((run) => run.state === 'FAILED'))
|
|
19
|
+
return 'failed';
|
|
20
|
+
if (args.runs.some((run) => run.state === 'COMPLETE' || run.delivery_tx_hash))
|
|
21
|
+
return 'settled';
|
|
22
|
+
if (args.maxClaims !== undefined && args.localRestorationClaims >= args.maxClaims) {
|
|
23
|
+
return 'fully-claimed';
|
|
24
|
+
}
|
|
25
|
+
if (args.localRestorationClaims > 0 || args.runs.length > 0)
|
|
26
|
+
return 'claims-in-flight';
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
5
29
|
const SCHEMA = `
|
|
6
30
|
CREATE TABLE IF NOT EXISTS own_activity (
|
|
7
31
|
request_id TEXT PRIMARY KEY,
|
|
@@ -15,7 +39,9 @@ CREATE TABLE IF NOT EXISTS config (
|
|
|
15
39
|
|
|
16
40
|
CREATE TABLE IF NOT EXISTS artifacts (
|
|
17
41
|
id TEXT PRIMARY KEY,
|
|
18
|
-
|
|
42
|
+
task_id TEXT NOT NULL,
|
|
43
|
+
protocol_task_id TEXT,
|
|
44
|
+
task_cid TEXT,
|
|
19
45
|
request_id TEXT NOT NULL,
|
|
20
46
|
title TEXT NOT NULL,
|
|
21
47
|
content TEXT,
|
|
@@ -28,7 +54,6 @@ CREATE TABLE IF NOT EXISTS artifacts (
|
|
|
28
54
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
29
55
|
);
|
|
30
56
|
|
|
31
|
-
CREATE INDEX IF NOT EXISTS idx_artifacts_desired_state ON artifacts (desired_state_id);
|
|
32
57
|
CREATE INDEX IF NOT EXISTS idx_artifacts_outcome ON artifacts (outcome);
|
|
33
58
|
CREATE INDEX IF NOT EXISTS idx_artifacts_remote ON artifacts (remote);
|
|
34
59
|
|
|
@@ -39,7 +64,7 @@ CREATE TABLE IF NOT EXISTS activity_events (
|
|
|
39
64
|
request_id TEXT,
|
|
40
65
|
service_index INTEGER,
|
|
41
66
|
tx_hash TEXT,
|
|
42
|
-
|
|
67
|
+
solver_type TEXT,
|
|
43
68
|
outcome TEXT,
|
|
44
69
|
detail TEXT
|
|
45
70
|
);
|
|
@@ -71,21 +96,118 @@ CREATE TABLE IF NOT EXISTS balance_cache (
|
|
|
71
96
|
error TEXT
|
|
72
97
|
);
|
|
73
98
|
|
|
74
|
-
CREATE TABLE IF NOT EXISTS
|
|
99
|
+
CREATE TABLE IF NOT EXISTS task_posts (
|
|
75
100
|
creator_safe_address TEXT NOT NULL,
|
|
76
101
|
source_key TEXT NOT NULL,
|
|
77
102
|
policy_type TEXT NOT NULL CHECK (policy_type IN ('once_per_safe', 'once_per_bucket', 'interval')),
|
|
78
103
|
scope_key TEXT NOT NULL DEFAULT '',
|
|
79
|
-
|
|
104
|
+
task_id TEXT NOT NULL,
|
|
80
105
|
request_id TEXT NOT NULL,
|
|
81
106
|
first_posted_at TEXT NOT NULL,
|
|
82
107
|
last_posted_at TEXT NOT NULL,
|
|
83
108
|
post_count INTEGER NOT NULL DEFAULT 1,
|
|
84
109
|
PRIMARY KEY (creator_safe_address, source_key, policy_type, scope_key)
|
|
85
110
|
);
|
|
86
|
-
CREATE INDEX IF NOT EXISTS idx_intent_posts_desired_state ON intent_posts (desired_state_id);
|
|
87
111
|
|
|
88
|
-
CREATE TABLE IF NOT EXISTS
|
|
112
|
+
CREATE TABLE IF NOT EXISTS served_artifacts (
|
|
113
|
+
sha256 TEXT PRIMARY KEY,
|
|
114
|
+
artifact_type TEXT NOT NULL,
|
|
115
|
+
request_id TEXT,
|
|
116
|
+
envelope_cid TEXT,
|
|
117
|
+
content BLOB NOT NULL,
|
|
118
|
+
content_size INTEGER NOT NULL,
|
|
119
|
+
price_usdc TEXT NOT NULL,
|
|
120
|
+
created_at TEXT NOT NULL
|
|
121
|
+
);
|
|
122
|
+
CREATE INDEX IF NOT EXISTS idx_served_artifacts_request ON served_artifacts (request_id);
|
|
123
|
+
CREATE INDEX IF NOT EXISTS idx_served_artifacts_envelope ON served_artifacts (envelope_cid);
|
|
124
|
+
CREATE INDEX IF NOT EXISTS idx_served_artifacts_artifact_type ON served_artifacts (artifact_type);
|
|
125
|
+
|
|
126
|
+
CREATE TABLE IF NOT EXISTS artifact_access_events (
|
|
127
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
128
|
+
sha256 TEXT NOT NULL,
|
|
129
|
+
artifact_type TEXT,
|
|
130
|
+
price_usdc TEXT,
|
|
131
|
+
outcome TEXT NOT NULL CHECK (outcome IN (
|
|
132
|
+
'free_served',
|
|
133
|
+
'payment_required',
|
|
134
|
+
'paid_served',
|
|
135
|
+
'verification_failed',
|
|
136
|
+
'settlement_failed',
|
|
137
|
+
'payment_malformed',
|
|
138
|
+
'not_found'
|
|
139
|
+
)),
|
|
140
|
+
http_status INTEGER NOT NULL,
|
|
141
|
+
payer TEXT,
|
|
142
|
+
settlement_tx TEXT,
|
|
143
|
+
error_reason TEXT,
|
|
144
|
+
remote_addr TEXT,
|
|
145
|
+
user_agent TEXT,
|
|
146
|
+
created_at TEXT NOT NULL
|
|
147
|
+
);
|
|
148
|
+
CREATE INDEX IF NOT EXISTS idx_artifact_access_events_sha ON artifact_access_events (sha256);
|
|
149
|
+
CREATE INDEX IF NOT EXISTS idx_artifact_access_events_created ON artifact_access_events (created_at DESC);
|
|
150
|
+
CREATE INDEX IF NOT EXISTS idx_artifact_access_events_outcome ON artifact_access_events (outcome);
|
|
151
|
+
|
|
152
|
+
CREATE TABLE IF NOT EXISTS network_artifacts (
|
|
153
|
+
sha256 TEXT PRIMARY KEY,
|
|
154
|
+
artifact_type TEXT NOT NULL,
|
|
155
|
+
envelope_cid TEXT,
|
|
156
|
+
content BLOB NOT NULL,
|
|
157
|
+
content_size INTEGER NOT NULL,
|
|
158
|
+
source TEXT NOT NULL CHECK (source IN ('origin', 'route-resolver', 'self-store-mirror')),
|
|
159
|
+
source_operator TEXT,
|
|
160
|
+
source_endpoint TEXT,
|
|
161
|
+
paid_amount_usdc TEXT NOT NULL,
|
|
162
|
+
fetched_at TEXT NOT NULL,
|
|
163
|
+
last_used_at TEXT NOT NULL,
|
|
164
|
+
peer_catalog_id TEXT
|
|
165
|
+
);
|
|
166
|
+
CREATE INDEX IF NOT EXISTS idx_network_artifacts_envelope ON network_artifacts (envelope_cid);
|
|
167
|
+
CREATE INDEX IF NOT EXISTS idx_network_artifacts_artifact_type ON network_artifacts (artifact_type);
|
|
168
|
+
CREATE INDEX IF NOT EXISTS idx_network_artifacts_last_used ON network_artifacts (last_used_at DESC);
|
|
169
|
+
|
|
170
|
+
CREATE TABLE IF NOT EXISTS envelope_projections (
|
|
171
|
+
envelope_id TEXT PRIMARY KEY,
|
|
172
|
+
envelope_cid TEXT,
|
|
173
|
+
envelope_sha256 TEXT,
|
|
174
|
+
signature_hash TEXT NOT NULL,
|
|
175
|
+
solver_type TEXT NOT NULL,
|
|
176
|
+
role TEXT NOT NULL,
|
|
177
|
+
task_cid TEXT,
|
|
178
|
+
task_id TEXT,
|
|
179
|
+
request_id TEXT,
|
|
180
|
+
generated_at INTEGER NOT NULL,
|
|
181
|
+
evidence_tier TEXT NOT NULL,
|
|
182
|
+
participant_safe_address TEXT,
|
|
183
|
+
participant_agent_eoa TEXT,
|
|
184
|
+
executor_impl_name TEXT,
|
|
185
|
+
executor_impl_version TEXT,
|
|
186
|
+
executor_runtime_bundle_digest TEXT,
|
|
187
|
+
executor_plugins_json TEXT NOT NULL DEFAULT '[]',
|
|
188
|
+
solution_envelope_cid TEXT,
|
|
189
|
+
solution_envelope_sha256 TEXT,
|
|
190
|
+
solution_envelope_ref TEXT,
|
|
191
|
+
metadata_json TEXT NOT NULL DEFAULT '{}',
|
|
192
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
193
|
+
);
|
|
194
|
+
CREATE INDEX IF NOT EXISTS idx_envelope_projections_solver_role ON envelope_projections (solver_type, role);
|
|
195
|
+
CREATE INDEX IF NOT EXISTS idx_envelope_projections_task_cid ON envelope_projections (task_cid);
|
|
196
|
+
CREATE INDEX IF NOT EXISTS idx_envelope_projections_request ON envelope_projections (request_id);
|
|
197
|
+
CREATE INDEX IF NOT EXISTS idx_envelope_projections_generated ON envelope_projections (generated_at DESC);
|
|
198
|
+
|
|
199
|
+
CREATE TABLE IF NOT EXISTS envelope_projection_metadata (
|
|
200
|
+
envelope_id TEXT NOT NULL,
|
|
201
|
+
key TEXT NOT NULL,
|
|
202
|
+
value_text TEXT NOT NULL,
|
|
203
|
+
value_type TEXT NOT NULL CHECK (value_type IN ('string', 'number', 'boolean')),
|
|
204
|
+
PRIMARY KEY (envelope_id, key),
|
|
205
|
+
FOREIGN KEY (envelope_id) REFERENCES envelope_projections(envelope_id) ON DELETE CASCADE
|
|
206
|
+
);
|
|
207
|
+
CREATE INDEX IF NOT EXISTS idx_envelope_projection_metadata_key_value
|
|
208
|
+
ON envelope_projection_metadata (key, value_text);
|
|
209
|
+
|
|
210
|
+
CREATE TABLE IF NOT EXISTS task_post_locks (
|
|
89
211
|
creator_safe_address TEXT NOT NULL,
|
|
90
212
|
source_key TEXT NOT NULL,
|
|
91
213
|
policy_type TEXT NOT NULL CHECK (policy_type IN ('once_per_safe', 'once_per_bucket', 'interval')),
|
|
@@ -95,6 +217,39 @@ CREATE TABLE IF NOT EXISTS intent_post_locks (
|
|
|
95
217
|
PRIMARY KEY (creator_safe_address, source_key, policy_type, scope_key)
|
|
96
218
|
);
|
|
97
219
|
|
|
220
|
+
CREATE TABLE IF NOT EXISTS pending_captures (
|
|
221
|
+
session_id TEXT PRIMARY KEY,
|
|
222
|
+
captured_at TEXT NOT NULL,
|
|
223
|
+
originating_tool_name TEXT NOT NULL,
|
|
224
|
+
originating_tool_version TEXT,
|
|
225
|
+
capture_path TEXT NOT NULL CHECK (capture_path IN ('A','B','C','D')),
|
|
226
|
+
status TEXT NOT NULL CHECK (status IN ('pending','approved','skipped')),
|
|
227
|
+
span_count INTEGER NOT NULL,
|
|
228
|
+
duration_ms INTEGER NOT NULL,
|
|
229
|
+
redacted_span_count INTEGER NOT NULL,
|
|
230
|
+
repo_remote_url TEXT,
|
|
231
|
+
repo_commit_hash TEXT,
|
|
232
|
+
envelope_cid TEXT,
|
|
233
|
+
published_at TEXT,
|
|
234
|
+
skipped_at TEXT
|
|
235
|
+
);
|
|
236
|
+
CREATE INDEX IF NOT EXISTS pending_captures_status_capturedat
|
|
237
|
+
ON pending_captures (status, captured_at DESC);
|
|
238
|
+
|
|
239
|
+
CREATE TABLE IF NOT EXISTS capture_spans (
|
|
240
|
+
session_id TEXT NOT NULL,
|
|
241
|
+
span_id TEXT NOT NULL,
|
|
242
|
+
trace_id TEXT NOT NULL,
|
|
243
|
+
parent_span_id TEXT,
|
|
244
|
+
name TEXT NOT NULL,
|
|
245
|
+
start_time_unix_nano TEXT NOT NULL,
|
|
246
|
+
end_time_unix_nano TEXT NOT NULL,
|
|
247
|
+
attributes_json TEXT NOT NULL,
|
|
248
|
+
redacted_keys_json TEXT NOT NULL,
|
|
249
|
+
PRIMARY KEY (session_id, span_id)
|
|
250
|
+
);
|
|
251
|
+
CREATE INDEX IF NOT EXISTS capture_spans_session ON capture_spans (session_id);
|
|
252
|
+
|
|
98
253
|
`;
|
|
99
254
|
export class Store {
|
|
100
255
|
/** Exposed for engine persistence layer — treat as package-internal. */
|
|
@@ -108,9 +263,119 @@ export class Store {
|
|
|
108
263
|
this.db = new Database(dbPath);
|
|
109
264
|
this.db.pragma('journal_mode = WAL');
|
|
110
265
|
this.db.exec(SCHEMA);
|
|
111
|
-
this.db.exec(
|
|
266
|
+
this.db.exec(TASK_RUNS_SCHEMA);
|
|
267
|
+
this.ensureArtifactsTaskColumns();
|
|
112
268
|
this.ensureRewardClaimsTxIndex();
|
|
269
|
+
this.ensureNetworkArtifactsPeerCatalogId();
|
|
270
|
+
this.ensureTaskPostsTaskCoordinatorColumns();
|
|
271
|
+
this.ensureEnvelopeProjectionColumns();
|
|
113
272
|
this.backfillActivityEvents();
|
|
273
|
+
this.recordLegacyRestorationIntentsIgnored();
|
|
274
|
+
}
|
|
275
|
+
/** Older request-first DBs keyed artifacts by desired_state_id before Task-native IDs landed. */
|
|
276
|
+
ensureArtifactsTaskColumns() {
|
|
277
|
+
const cols = this.db.prepare(`PRAGMA table_info(artifacts)`).all();
|
|
278
|
+
const names = new Set(cols.map((c) => c.name));
|
|
279
|
+
if (!names.has('task_id')) {
|
|
280
|
+
this.db.exec(`ALTER TABLE artifacts ADD COLUMN task_id TEXT`);
|
|
281
|
+
if (names.has('desired_state_id')) {
|
|
282
|
+
this.db.exec(`UPDATE artifacts SET task_id = desired_state_id WHERE task_id IS NULL`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
if (!names.has('protocol_task_id')) {
|
|
286
|
+
this.db.exec(`ALTER TABLE artifacts ADD COLUMN protocol_task_id TEXT`);
|
|
287
|
+
}
|
|
288
|
+
if (!names.has('task_cid')) {
|
|
289
|
+
this.db.exec(`ALTER TABLE artifacts ADD COLUMN task_cid TEXT`);
|
|
290
|
+
}
|
|
291
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_artifacts_task ON artifacts (task_id)`);
|
|
292
|
+
}
|
|
293
|
+
/** Older on-disk DBs predate `peer_catalog_id` on network_artifacts. */
|
|
294
|
+
ensureNetworkArtifactsPeerCatalogId() {
|
|
295
|
+
const cols = this.db.prepare(`PRAGMA table_info(network_artifacts)`).all();
|
|
296
|
+
if (!cols.some((c) => c.name === 'peer_catalog_id')) {
|
|
297
|
+
this.db.exec(`ALTER TABLE network_artifacts ADD COLUMN peer_catalog_id TEXT`);
|
|
298
|
+
}
|
|
299
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_network_artifacts_peer_catalog ON network_artifacts (peer_catalog_id)`);
|
|
300
|
+
}
|
|
301
|
+
/** Fresh v1 state is Task-first; older local DBs get additive columns only. */
|
|
302
|
+
ensureTaskPostsTaskCoordinatorColumns() {
|
|
303
|
+
const cols = this.db.prepare(`PRAGMA table_info(task_posts)`).all();
|
|
304
|
+
const names = new Set(cols.map((c) => c.name));
|
|
305
|
+
if (!names.has('task_id')) {
|
|
306
|
+
this.db.exec(`ALTER TABLE task_posts ADD COLUMN task_id TEXT`);
|
|
307
|
+
}
|
|
308
|
+
if (!names.has('protocol_task_id')) {
|
|
309
|
+
this.db.exec(`ALTER TABLE task_posts ADD COLUMN protocol_task_id TEXT`);
|
|
310
|
+
}
|
|
311
|
+
if (!names.has('task_cid')) {
|
|
312
|
+
this.db.exec(`ALTER TABLE task_posts ADD COLUMN task_cid TEXT`);
|
|
313
|
+
}
|
|
314
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_task_posts_task ON task_posts (task_id)`);
|
|
315
|
+
}
|
|
316
|
+
/** Older local DBs may have the projection table from before Task grouping fields landed. */
|
|
317
|
+
ensureEnvelopeProjectionColumns() {
|
|
318
|
+
const cols = this.db.prepare(`PRAGMA table_info(envelope_projections)`).all();
|
|
319
|
+
const names = new Set(cols.map((c) => c.name));
|
|
320
|
+
const addColumn = (name, ddl) => {
|
|
321
|
+
if (!names.has(name))
|
|
322
|
+
this.db.exec(`ALTER TABLE envelope_projections ADD COLUMN ${ddl}`);
|
|
323
|
+
};
|
|
324
|
+
addColumn('task_id', 'task_id TEXT');
|
|
325
|
+
addColumn('executor_runtime_bundle_digest', 'executor_runtime_bundle_digest TEXT');
|
|
326
|
+
addColumn('executor_plugins_json', `executor_plugins_json TEXT NOT NULL DEFAULT '[]'`);
|
|
327
|
+
addColumn('solution_envelope_cid', 'solution_envelope_cid TEXT');
|
|
328
|
+
addColumn('solution_envelope_sha256', 'solution_envelope_sha256 TEXT');
|
|
329
|
+
addColumn('solution_envelope_ref', 'solution_envelope_ref TEXT');
|
|
330
|
+
addColumn('metadata_json', `metadata_json TEXT NOT NULL DEFAULT '{}'`);
|
|
331
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_envelope_projections_task_id ON envelope_projections (task_id)`);
|
|
332
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_envelope_projections_solution_ref ON envelope_projections (solution_envelope_ref)`);
|
|
333
|
+
this.db.exec(`CREATE INDEX IF NOT EXISTS idx_envelope_projections_generated ON envelope_projections (generated_at DESC)`);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Task-native startup ignores the retired request-first `restoration_intents`
|
|
337
|
+
* table. Keep a one-time local marker when old in-flight rows are present so
|
|
338
|
+
* operators can see why they were not resumed without blocking Store startup.
|
|
339
|
+
*/
|
|
340
|
+
recordLegacyRestorationIntentsIgnored() {
|
|
341
|
+
const table = this.db.prepare(`SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'restoration_intents'`).get();
|
|
342
|
+
if (!table)
|
|
343
|
+
return;
|
|
344
|
+
const cols = this.db.prepare(`PRAGMA table_info(restoration_intents)`).all();
|
|
345
|
+
const names = new Set(cols.map((c) => c.name));
|
|
346
|
+
if (!names.has('state'))
|
|
347
|
+
return;
|
|
348
|
+
try {
|
|
349
|
+
const row = this.db.prepare(`SELECT COUNT(*) AS count
|
|
350
|
+
FROM restoration_intents
|
|
351
|
+
WHERE state NOT IN ('COMPLETE', 'FAILED')`).get();
|
|
352
|
+
const count = row?.count ?? 0;
|
|
353
|
+
if (count <= 0)
|
|
354
|
+
return;
|
|
355
|
+
const detail = `Ignored ${count} legacy request-first restoration_intents row${count === 1 ? '' : 's'}; ` +
|
|
356
|
+
'Task-native recovery does not resume ClaimRegistry/request-first jobs.';
|
|
357
|
+
const ts = new Date().toISOString();
|
|
358
|
+
const marker = {
|
|
359
|
+
schemaVersion: 1,
|
|
360
|
+
ignoredAt: ts,
|
|
361
|
+
table: 'restoration_intents',
|
|
362
|
+
inFlightRows: count,
|
|
363
|
+
reason: 'legacy_request_first_task_native_update',
|
|
364
|
+
};
|
|
365
|
+
const tx = this.db.transaction(() => {
|
|
366
|
+
this.db.prepare(`INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)`).run('legacy_restoration_intents_ignored_v1', JSON.stringify(marker));
|
|
367
|
+
this.db.prepare(`INSERT INTO activity_events (ts, kind, outcome, detail)
|
|
368
|
+
SELECT @ts, 'legacy_ignored', 'ignored', @detail
|
|
369
|
+
WHERE NOT EXISTS (
|
|
370
|
+
SELECT 1 FROM activity_events
|
|
371
|
+
WHERE kind = 'legacy_ignored' AND detail = @detail
|
|
372
|
+
)`).run({ ts, detail });
|
|
373
|
+
});
|
|
374
|
+
tx();
|
|
375
|
+
}
|
|
376
|
+
catch {
|
|
377
|
+
// Legacy schemas varied. Never let stale request-first state block Store startup.
|
|
378
|
+
}
|
|
114
379
|
}
|
|
115
380
|
/** Idempotent: older DBs before idx_reward_claims_tx may lack the unique index. */
|
|
116
381
|
ensureRewardClaimsTxIndex() {
|
|
@@ -147,10 +412,11 @@ export class Store {
|
|
|
147
412
|
setConfigValue(key, value) {
|
|
148
413
|
this.db.prepare('INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)').run(key, value);
|
|
149
414
|
}
|
|
150
|
-
|
|
151
|
-
const row = this.db.prepare(`SELECT creator_safe_address, source_key, policy_type, scope_key,
|
|
415
|
+
getTaskPostRecord(args) {
|
|
416
|
+
const row = this.db.prepare(`SELECT creator_safe_address, source_key, policy_type, scope_key, task_id,
|
|
417
|
+
protocol_task_id, task_cid, request_id,
|
|
152
418
|
first_posted_at, last_posted_at, post_count
|
|
153
|
-
FROM
|
|
419
|
+
FROM task_posts
|
|
154
420
|
WHERE creator_safe_address = @creatorSafeAddress
|
|
155
421
|
AND source_key = @sourceKey
|
|
156
422
|
AND policy_type = @policyType
|
|
@@ -162,37 +428,163 @@ export class Store {
|
|
|
162
428
|
sourceKey: row.source_key,
|
|
163
429
|
policyType: row.policy_type,
|
|
164
430
|
scopeKey: row.scope_key,
|
|
165
|
-
|
|
431
|
+
taskId: row.task_id,
|
|
432
|
+
protocolTaskId: row.protocol_task_id,
|
|
433
|
+
taskCid: row.task_cid,
|
|
166
434
|
requestId: row.request_id,
|
|
167
435
|
firstPostedAt: row.first_posted_at,
|
|
168
436
|
lastPostedAt: row.last_posted_at,
|
|
169
437
|
postCount: row.post_count,
|
|
170
438
|
};
|
|
171
439
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
440
|
+
/**
|
|
441
|
+
* Posted Tasks for the launcher mode (`GET /v1/launcher/tasks`,
|
|
442
|
+
* spec/2026-05-05-launcher-role-and-mode.md §5.3). Returns rows from
|
|
443
|
+
* `task_posts` filtered by creator Safe address, sorted by `last_posted_at
|
|
444
|
+
* DESC` (most recent first). The `solverType` is denormalised in by joining
|
|
445
|
+
* `activity_events` on `request_id` for the `task_posted` kind — that's
|
|
446
|
+
* where `posting-service.ts` writes the SolverType when the post lands.
|
|
447
|
+
*
|
|
448
|
+
* `before` filters to rows with `last_posted_at < before` (ISO-8601). When
|
|
449
|
+
* `before` is undefined, returns the most recent `limit` rows.
|
|
450
|
+
*
|
|
451
|
+
* Caller-side: `gatherLauncherTasks` (`api/launcher-tasks.ts`) maps the
|
|
452
|
+
* solver_type back to the operator's SolverNet name via config lookup.
|
|
453
|
+
*/
|
|
454
|
+
listPostedTasksByCreator(args) {
|
|
455
|
+
const limit = Math.max(0, Math.min(args.limit, 1000));
|
|
456
|
+
if (limit === 0)
|
|
457
|
+
return [];
|
|
458
|
+
const params = {
|
|
459
|
+
creator: args.creatorSafeAddress,
|
|
460
|
+
limit,
|
|
461
|
+
};
|
|
462
|
+
let beforeClause = '';
|
|
463
|
+
if (args.before) {
|
|
464
|
+
beforeClause = ' AND tp.last_posted_at < @before';
|
|
465
|
+
params['before'] = args.before;
|
|
466
|
+
}
|
|
467
|
+
// LEFT JOIN: a stale `task_posts` row from before activity_events backfill
|
|
468
|
+
// (or one whose event was lost to `recordActivityEvent` failure) still
|
|
469
|
+
// surfaces with a NULL solver_type — the gather function falls back to
|
|
470
|
+
// `solverNet: 'unknown'` rather than dropping the row, because the
|
|
471
|
+
// operator should still see the Task they posted.
|
|
472
|
+
const rows = this.db.prepare(`SELECT
|
|
473
|
+
tp.task_id,
|
|
474
|
+
tp.task_cid,
|
|
475
|
+
tp.protocol_task_id,
|
|
476
|
+
tp.request_id,
|
|
477
|
+
tp.last_posted_at,
|
|
478
|
+
(
|
|
479
|
+
SELECT ae.solver_type
|
|
480
|
+
FROM activity_events ae
|
|
481
|
+
WHERE ae.request_id = tp.request_id
|
|
482
|
+
AND ae.kind = 'task_posted'
|
|
483
|
+
AND ae.solver_type IS NOT NULL
|
|
484
|
+
ORDER BY ae.id DESC
|
|
485
|
+
LIMIT 1
|
|
486
|
+
) AS solver_type
|
|
487
|
+
FROM task_posts tp
|
|
488
|
+
WHERE tp.creator_safe_address = @creator${beforeClause}
|
|
489
|
+
ORDER BY tp.last_posted_at DESC
|
|
490
|
+
LIMIT @limit`).all(params);
|
|
491
|
+
const localRunsForPost = this.db.prepare(`SELECT request_id, state, task_role, task_payload, delivery_tx_hash, state_updated_at
|
|
492
|
+
FROM task_runs
|
|
493
|
+
WHERE request_id = @requestId
|
|
494
|
+
OR (@taskId != '' AND task_id = @taskId)
|
|
495
|
+
OR (@protocolTaskId != '' AND task_id = @protocolTaskId)
|
|
496
|
+
OR (@taskCid != '' AND task_cid = @taskCid)
|
|
497
|
+
ORDER BY state_updated_at DESC`);
|
|
498
|
+
return rows.map((r) => {
|
|
499
|
+
// task_id was added by an additive migration; the column exists on every
|
|
500
|
+
// post-migration insert (posting-service.ts always writes it). Older
|
|
501
|
+
// rows fall back to protocol_task_id (chain Task ID) and finally
|
|
502
|
+
// request_id so the response shape's `taskId` is always populated.
|
|
503
|
+
const taskId = r.task_id ?? r.protocol_task_id ?? r.request_id;
|
|
504
|
+
const protocolTaskId = r.protocol_task_id ?? '';
|
|
505
|
+
const taskCid = r.task_cid ?? '';
|
|
506
|
+
const runs = localRunsForPost.all({
|
|
507
|
+
requestId: r.request_id,
|
|
508
|
+
taskId,
|
|
509
|
+
protocolTaskId,
|
|
510
|
+
taskCid,
|
|
511
|
+
});
|
|
512
|
+
const maxClaims = runs
|
|
513
|
+
.map((run) => readClaimPolicyMaxClaims(run.task_payload))
|
|
514
|
+
.find((value) => value !== undefined);
|
|
515
|
+
const localRestorationClaims = new Set(runs
|
|
516
|
+
.filter((run) => run.task_role !== 'evaluation')
|
|
517
|
+
.map((run) => run.request_id)).size;
|
|
518
|
+
const state = derivePostedTaskLocalState({
|
|
519
|
+
runs,
|
|
520
|
+
localRestorationClaims,
|
|
521
|
+
maxClaims,
|
|
522
|
+
});
|
|
523
|
+
return {
|
|
524
|
+
taskId,
|
|
525
|
+
taskCid,
|
|
526
|
+
solverType: r.solver_type,
|
|
527
|
+
requestId: r.request_id,
|
|
528
|
+
postedAt: r.last_posted_at,
|
|
529
|
+
...(state ? { state } : {}),
|
|
530
|
+
...(runs.length > 0 || maxClaims !== undefined
|
|
531
|
+
? {
|
|
532
|
+
claims: {
|
|
533
|
+
current: localRestorationClaims,
|
|
534
|
+
...(maxClaims !== undefined ? { max: maxClaims } : {}),
|
|
535
|
+
},
|
|
536
|
+
}
|
|
537
|
+
: {}),
|
|
538
|
+
};
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
/** Count of posted Tasks for this creator with the given solver_type. v1
|
|
542
|
+
* treats every posted Task as in-flight (state derivation lands with
|
|
543
|
+
* router-watcher hardening, jinn-mono-l2zl.12). */
|
|
544
|
+
countPostedTasksByCreatorAndSolverType(args) {
|
|
545
|
+
const row = this.db.prepare(`SELECT COUNT(DISTINCT tp.task_id) AS c
|
|
546
|
+
FROM task_posts tp
|
|
547
|
+
INNER JOIN activity_events ae
|
|
548
|
+
ON ae.request_id = tp.request_id
|
|
549
|
+
AND ae.kind = 'task_posted'
|
|
550
|
+
WHERE tp.creator_safe_address = @creator
|
|
551
|
+
AND ae.solver_type = @solverType`).get({
|
|
552
|
+
creator: args.creatorSafeAddress,
|
|
553
|
+
solverType: args.solverType,
|
|
554
|
+
});
|
|
555
|
+
return row?.c ?? 0;
|
|
556
|
+
}
|
|
557
|
+
upsertTaskPostRecord(record) {
|
|
558
|
+
const params = {
|
|
559
|
+
...record,
|
|
560
|
+
protocolTaskId: record.protocolTaskId ?? null,
|
|
561
|
+
taskCid: record.taskCid ?? null,
|
|
562
|
+
};
|
|
563
|
+
this.db.prepare(`INSERT INTO task_posts
|
|
564
|
+
(creator_safe_address, source_key, policy_type, scope_key, task_id, protocol_task_id, task_cid, request_id,
|
|
175
565
|
first_posted_at, last_posted_at, post_count)
|
|
176
566
|
VALUES
|
|
177
|
-
(@creatorSafeAddress, @sourceKey, @policyType, @scopeKey, @
|
|
567
|
+
(@creatorSafeAddress, @sourceKey, @policyType, @scopeKey, @taskId, @protocolTaskId, @taskCid, @requestId,
|
|
178
568
|
@firstPostedAt, @lastPostedAt, @postCount)
|
|
179
569
|
ON CONFLICT(creator_safe_address, source_key, policy_type, scope_key) DO UPDATE SET
|
|
180
|
-
|
|
570
|
+
task_id = excluded.task_id,
|
|
571
|
+
protocol_task_id = excluded.protocol_task_id,
|
|
572
|
+
task_cid = excluded.task_cid,
|
|
181
573
|
request_id = excluded.request_id,
|
|
182
574
|
first_posted_at = excluded.first_posted_at,
|
|
183
575
|
last_posted_at = excluded.last_posted_at,
|
|
184
|
-
post_count = excluded.post_count`).run(
|
|
576
|
+
post_count = excluded.post_count`).run(params);
|
|
185
577
|
}
|
|
186
|
-
|
|
578
|
+
acquireTaskPostLock(args) {
|
|
187
579
|
const tx = this.db.transaction((params) => {
|
|
188
580
|
const existing = this.db.prepare(`SELECT owner_token, locked_at
|
|
189
|
-
FROM
|
|
581
|
+
FROM task_post_locks
|
|
190
582
|
WHERE creator_safe_address = @creatorSafeAddress
|
|
191
583
|
AND source_key = @sourceKey
|
|
192
584
|
AND policy_type = @policyType
|
|
193
585
|
AND scope_key = @scopeKey`).get(params);
|
|
194
586
|
if (!existing) {
|
|
195
|
-
this.db.prepare(`INSERT INTO
|
|
587
|
+
this.db.prepare(`INSERT INTO task_post_locks
|
|
196
588
|
(creator_safe_address, source_key, policy_type, scope_key, owner_token, locked_at)
|
|
197
589
|
VALUES
|
|
198
590
|
(@creatorSafeAddress, @sourceKey, @policyType, @scopeKey, @ownerToken, @lockedAt)`).run(params);
|
|
@@ -206,7 +598,7 @@ export class Store {
|
|
|
206
598
|
if (!isStale) {
|
|
207
599
|
return false;
|
|
208
600
|
}
|
|
209
|
-
this.db.prepare(`UPDATE
|
|
601
|
+
this.db.prepare(`UPDATE task_post_locks
|
|
210
602
|
SET owner_token = @ownerToken, locked_at = @lockedAt
|
|
211
603
|
WHERE creator_safe_address = @creatorSafeAddress
|
|
212
604
|
AND source_key = @sourceKey
|
|
@@ -216,8 +608,8 @@ export class Store {
|
|
|
216
608
|
});
|
|
217
609
|
return tx(args);
|
|
218
610
|
}
|
|
219
|
-
|
|
220
|
-
this.db.prepare(`DELETE FROM
|
|
611
|
+
releaseTaskPostLock(args) {
|
|
612
|
+
this.db.prepare(`DELETE FROM task_post_locks
|
|
221
613
|
WHERE creator_safe_address = @creatorSafeAddress
|
|
222
614
|
AND source_key = @sourceKey
|
|
223
615
|
AND policy_type = @policyType
|
|
@@ -244,14 +636,14 @@ export class Store {
|
|
|
244
636
|
return legacyRows.map(r => ({ requestId: r.request_id, role: r.role }));
|
|
245
637
|
}
|
|
246
638
|
recordActivityEvent(event) {
|
|
247
|
-
this.db.prepare(`INSERT INTO activity_events (ts, kind, request_id, service_index, tx_hash,
|
|
248
|
-
VALUES (@ts, @kind, @requestId, @serviceIndex, @txHash, @
|
|
639
|
+
this.db.prepare(`INSERT INTO activity_events (ts, kind, request_id, service_index, tx_hash, solver_type, outcome, detail)
|
|
640
|
+
VALUES (@ts, @kind, @requestId, @serviceIndex, @txHash, @solverType, @outcome, @detail)`).run({
|
|
249
641
|
ts: event.ts ?? null,
|
|
250
642
|
kind: event.kind,
|
|
251
643
|
requestId: event.requestId ?? null,
|
|
252
644
|
serviceIndex: event.serviceIndex ?? null,
|
|
253
645
|
txHash: event.txHash ?? null,
|
|
254
|
-
|
|
646
|
+
solverType: event.solverType ?? null,
|
|
255
647
|
outcome: event.outcome ?? null,
|
|
256
648
|
detail: event.detail ?? null,
|
|
257
649
|
});
|
|
@@ -269,7 +661,7 @@ export class Store {
|
|
|
269
661
|
params['cursor'] = opts.cursor;
|
|
270
662
|
}
|
|
271
663
|
const where = clauses.length > 0 ? `WHERE ${clauses.join(' AND ')}` : '';
|
|
272
|
-
const rows = this.db.prepare(`SELECT id, ts, kind, request_id, service_index, tx_hash,
|
|
664
|
+
const rows = this.db.prepare(`SELECT id, ts, kind, request_id, service_index, tx_hash, solver_type, outcome, detail
|
|
273
665
|
FROM activity_events
|
|
274
666
|
${where}
|
|
275
667
|
ORDER BY id DESC
|
|
@@ -281,7 +673,7 @@ export class Store {
|
|
|
281
673
|
requestId: r.request_id,
|
|
282
674
|
serviceIndex: r.service_index,
|
|
283
675
|
txHash: r.tx_hash,
|
|
284
|
-
|
|
676
|
+
solverType: r.solver_type,
|
|
285
677
|
outcome: r.outcome,
|
|
286
678
|
detail: r.detail,
|
|
287
679
|
}));
|
|
@@ -290,7 +682,7 @@ export class Store {
|
|
|
290
682
|
getActivityEventsAfterId(afterId, limit) {
|
|
291
683
|
const effectiveLimit = Math.max(0, Math.min(limit, 1000));
|
|
292
684
|
const rows = this.db
|
|
293
|
-
.prepare(`SELECT id, ts, kind, request_id, service_index, tx_hash,
|
|
685
|
+
.prepare(`SELECT id, ts, kind, request_id, service_index, tx_hash, solver_type, outcome, detail
|
|
294
686
|
FROM activity_events
|
|
295
687
|
WHERE id > @afterId
|
|
296
688
|
ORDER BY id ASC
|
|
@@ -303,7 +695,7 @@ export class Store {
|
|
|
303
695
|
requestId: r.request_id,
|
|
304
696
|
serviceIndex: r.service_index,
|
|
305
697
|
txHash: r.tx_hash,
|
|
306
|
-
|
|
698
|
+
solverType: r.solver_type,
|
|
307
699
|
outcome: r.outcome,
|
|
308
700
|
detail: r.detail,
|
|
309
701
|
}));
|
|
@@ -410,6 +802,10 @@ export class Store {
|
|
|
410
802
|
});
|
|
411
803
|
tx();
|
|
412
804
|
}
|
|
805
|
+
getTaskEvidenceHash(requestId) {
|
|
806
|
+
const row = this.db.prepare('SELECT evidence_hash FROM task_runs WHERE request_id = ?').get(requestId);
|
|
807
|
+
return row?.evidence_hash ?? null;
|
|
808
|
+
}
|
|
413
809
|
getLastProcessedBlock() {
|
|
414
810
|
const row = this.db.prepare('SELECT value FROM config WHERE key = ?').get('last_processed_block');
|
|
415
811
|
return row?.value ? BigInt(row.value) : null;
|
|
@@ -419,8 +815,8 @@ export class Store {
|
|
|
419
815
|
}
|
|
420
816
|
insertArtifact(artifact) {
|
|
421
817
|
this.db.prepare(`
|
|
422
|
-
INSERT OR REPLACE INTO artifacts (id,
|
|
423
|
-
VALUES (@id, @
|
|
818
|
+
INSERT OR REPLACE INTO artifacts (id, task_id, request_id, title, content, tags, outcome)
|
|
819
|
+
VALUES (@id, @taskId, @requestId, @title, @content, @tags, @outcome)
|
|
424
820
|
`).run({
|
|
425
821
|
...artifact,
|
|
426
822
|
tags: JSON.stringify(artifact.tags),
|
|
@@ -437,9 +833,9 @@ export class Store {
|
|
|
437
833
|
conditions.push('request_id = @requestId');
|
|
438
834
|
params['requestId'] = query.requestId;
|
|
439
835
|
}
|
|
440
|
-
if (query.
|
|
441
|
-
conditions.push('
|
|
442
|
-
params['
|
|
836
|
+
if (query.taskId) {
|
|
837
|
+
conditions.push('task_id = @taskId');
|
|
838
|
+
params['taskId'] = query.taskId;
|
|
443
839
|
}
|
|
444
840
|
if (query.after) {
|
|
445
841
|
conditions.push('created_at >= @after');
|
|
@@ -457,7 +853,7 @@ export class Store {
|
|
|
457
853
|
}
|
|
458
854
|
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
459
855
|
const limit = query.limit ?? 50;
|
|
460
|
-
const rows = this.db.prepare(`SELECT id, title, content, tags, outcome, request_id,
|
|
856
|
+
const rows = this.db.prepare(`SELECT id, title, content, tags, outcome, request_id, task_id, created_at FROM artifacts ${where} ORDER BY created_at DESC LIMIT ${limit}`).all(params);
|
|
461
857
|
return rows.map(row => ({
|
|
462
858
|
...row,
|
|
463
859
|
tags: JSON.parse(row.tags),
|
|
@@ -465,19 +861,29 @@ export class Store {
|
|
|
465
861
|
}
|
|
466
862
|
insertRemoteArtifact(artifact) {
|
|
467
863
|
this.db.prepare(`
|
|
468
|
-
INSERT OR REPLACE INTO artifacts (id,
|
|
469
|
-
VALUES (@id, @
|
|
864
|
+
INSERT OR REPLACE INTO artifacts (id, task_id, request_id, title, tags, outcome, remote, owner_address, endpoint, price)
|
|
865
|
+
VALUES (@id, @taskId, @requestId, @title, @tags, @outcome, 1, @ownerAddress, @endpoint, @price)
|
|
470
866
|
`).run({
|
|
471
867
|
...artifact,
|
|
472
868
|
tags: JSON.stringify(artifact.tags),
|
|
473
869
|
price: artifact.price ?? null,
|
|
474
870
|
});
|
|
475
871
|
}
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
872
|
+
/**
|
|
873
|
+
* Text body for a catalog artifact id: local `artifacts.content`, else a peer-cached
|
|
874
|
+
* blob in `network_artifacts` (via `peer_catalog_id`).
|
|
875
|
+
*/
|
|
876
|
+
resolveCatalogArtifactContent(id) {
|
|
877
|
+
const local = this.db.prepare('SELECT content FROM artifacts WHERE id = ?').get(id);
|
|
878
|
+
if (local?.content != null)
|
|
879
|
+
return local.content;
|
|
880
|
+
const net = this.db.prepare(`SELECT content FROM network_artifacts WHERE peer_catalog_id = ? ORDER BY fetched_at DESC LIMIT 1`).get(id);
|
|
881
|
+
if (!net)
|
|
882
|
+
return null;
|
|
883
|
+
return net.content.toString('utf-8');
|
|
479
884
|
}
|
|
480
|
-
|
|
885
|
+
/** Endpoint / owner for a remote (peer-synced) catalog row in `artifacts`. */
|
|
886
|
+
getRemoteDiscoveryMetadata(id) {
|
|
481
887
|
const row = this.db.prepare('SELECT endpoint, owner_address, price FROM artifacts WHERE id = ? AND remote = 1').get(id);
|
|
482
888
|
if (!row)
|
|
483
889
|
return null;
|
|
@@ -493,11 +899,559 @@ export class Store {
|
|
|
493
899
|
return null;
|
|
494
900
|
return { ...row, tags: JSON.parse(row.tags) };
|
|
495
901
|
}
|
|
496
|
-
|
|
497
|
-
this.db.prepare(
|
|
902
|
+
saveServedArtifact(input) {
|
|
903
|
+
this.db.prepare(`INSERT OR REPLACE INTO served_artifacts
|
|
904
|
+
(sha256, artifact_type, request_id, envelope_cid, content, content_size, price_usdc, created_at)
|
|
905
|
+
VALUES
|
|
906
|
+
(@sha256, @artifactType, @requestId, @envelopeCid, @content, @contentSize, @priceUsdc, @createdAt)`).run({
|
|
907
|
+
sha256: input.sha256,
|
|
908
|
+
artifactType: input.artifactType,
|
|
909
|
+
requestId: input.requestId ?? null,
|
|
910
|
+
envelopeCid: input.envelopeCid ?? null,
|
|
911
|
+
content: input.content,
|
|
912
|
+
contentSize: input.content.length,
|
|
913
|
+
priceUsdc: input.priceUsdc,
|
|
914
|
+
createdAt: input.createdAt,
|
|
915
|
+
});
|
|
916
|
+
}
|
|
917
|
+
getServedArtifact(sha256) {
|
|
918
|
+
const row = this.db.prepare(`SELECT sha256, artifact_type, request_id, envelope_cid, content, content_size, price_usdc, created_at
|
|
919
|
+
FROM served_artifacts WHERE sha256 = ?`).get(sha256);
|
|
920
|
+
if (!row)
|
|
921
|
+
return null;
|
|
922
|
+
return {
|
|
923
|
+
sha256: row.sha256,
|
|
924
|
+
artifactType: row.artifact_type,
|
|
925
|
+
requestId: row.request_id,
|
|
926
|
+
envelopeCid: row.envelope_cid,
|
|
927
|
+
content: row.content,
|
|
928
|
+
contentSize: row.content_size,
|
|
929
|
+
priceUsdc: row.price_usdc,
|
|
930
|
+
createdAt: row.created_at,
|
|
931
|
+
};
|
|
932
|
+
}
|
|
933
|
+
getServedArtifactMetadata(sha256) {
|
|
934
|
+
const row = this.db.prepare(`SELECT sha256, artifact_type, request_id, envelope_cid, content_size, price_usdc, created_at
|
|
935
|
+
FROM served_artifacts WHERE sha256 = ?`).get(sha256);
|
|
936
|
+
if (!row)
|
|
937
|
+
return null;
|
|
938
|
+
return {
|
|
939
|
+
sha256: row.sha256,
|
|
940
|
+
artifactType: row.artifact_type,
|
|
941
|
+
requestId: row.request_id,
|
|
942
|
+
envelopeCid: row.envelope_cid,
|
|
943
|
+
contentSize: row.content_size,
|
|
944
|
+
priceUsdc: row.price_usdc,
|
|
945
|
+
createdAt: row.created_at,
|
|
946
|
+
};
|
|
947
|
+
}
|
|
948
|
+
listServedArtifactMetadata(filter = {}) {
|
|
949
|
+
const limit = Math.min(Math.max(1, filter.limit ?? 100), 500);
|
|
950
|
+
const sql = filter.artifactType
|
|
951
|
+
? `SELECT sha256, artifact_type, request_id, envelope_cid, content_size, price_usdc, created_at
|
|
952
|
+
FROM served_artifacts
|
|
953
|
+
WHERE artifact_type = @artifactType
|
|
954
|
+
ORDER BY created_at DESC
|
|
955
|
+
LIMIT @limit`
|
|
956
|
+
: `SELECT sha256, artifact_type, request_id, envelope_cid, content_size, price_usdc, created_at
|
|
957
|
+
FROM served_artifacts
|
|
958
|
+
ORDER BY created_at DESC
|
|
959
|
+
LIMIT @limit`;
|
|
960
|
+
const rows = this.db.prepare(sql).all({
|
|
961
|
+
limit,
|
|
962
|
+
...(filter.artifactType ? { artifactType: filter.artifactType } : {}),
|
|
963
|
+
});
|
|
964
|
+
return rows.map((row) => ({
|
|
965
|
+
sha256: row.sha256,
|
|
966
|
+
artifactType: row.artifact_type,
|
|
967
|
+
requestId: row.request_id,
|
|
968
|
+
envelopeCid: row.envelope_cid,
|
|
969
|
+
contentSize: row.content_size,
|
|
970
|
+
priceUsdc: row.price_usdc,
|
|
971
|
+
createdAt: row.created_at,
|
|
972
|
+
}));
|
|
973
|
+
}
|
|
974
|
+
recordArtifactAccessEvent(input) {
|
|
975
|
+
this.db.prepare(`INSERT INTO artifact_access_events
|
|
976
|
+
(sha256, artifact_type, price_usdc, outcome, http_status, payer,
|
|
977
|
+
settlement_tx, error_reason, remote_addr, user_agent, created_at)
|
|
978
|
+
VALUES
|
|
979
|
+
(@sha256, @artifactType, @priceUsdc, @outcome, @httpStatus, @payer,
|
|
980
|
+
@settlementTx, @errorReason, @remoteAddr, @userAgent, @createdAt)`).run({
|
|
981
|
+
sha256: input.sha256,
|
|
982
|
+
artifactType: input.artifactType ?? null,
|
|
983
|
+
priceUsdc: input.priceUsdc ?? null,
|
|
984
|
+
outcome: input.outcome,
|
|
985
|
+
httpStatus: input.httpStatus,
|
|
986
|
+
payer: input.payer ?? null,
|
|
987
|
+
settlementTx: input.settlementTx ?? null,
|
|
988
|
+
errorReason: input.errorReason ?? null,
|
|
989
|
+
remoteAddr: input.remoteAddr ?? null,
|
|
990
|
+
userAgent: input.userAgent ?? null,
|
|
991
|
+
createdAt: input.createdAt,
|
|
992
|
+
});
|
|
993
|
+
}
|
|
994
|
+
listArtifactAccessEvents(filter = {}) {
|
|
995
|
+
const limit = Math.min(Math.max(1, filter.limit ?? 50), 500);
|
|
996
|
+
const sql = filter.sha256
|
|
997
|
+
? `SELECT id, sha256, artifact_type, price_usdc, outcome, http_status,
|
|
998
|
+
payer, settlement_tx, error_reason, remote_addr, user_agent, created_at
|
|
999
|
+
FROM artifact_access_events
|
|
1000
|
+
WHERE sha256 = @sha256
|
|
1001
|
+
ORDER BY created_at DESC, id DESC
|
|
1002
|
+
LIMIT @limit`
|
|
1003
|
+
: `SELECT id, sha256, artifact_type, price_usdc, outcome, http_status,
|
|
1004
|
+
payer, settlement_tx, error_reason, remote_addr, user_agent, created_at
|
|
1005
|
+
FROM artifact_access_events
|
|
1006
|
+
ORDER BY created_at DESC, id DESC
|
|
1007
|
+
LIMIT @limit`;
|
|
1008
|
+
const rows = this.db.prepare(sql).all({
|
|
1009
|
+
limit,
|
|
1010
|
+
...(filter.sha256 ? { sha256: filter.sha256 } : {}),
|
|
1011
|
+
});
|
|
1012
|
+
return rows.map((row) => ({
|
|
1013
|
+
id: row.id,
|
|
1014
|
+
sha256: row.sha256,
|
|
1015
|
+
artifactType: row.artifact_type,
|
|
1016
|
+
priceUsdc: row.price_usdc,
|
|
1017
|
+
outcome: row.outcome,
|
|
1018
|
+
httpStatus: row.http_status,
|
|
1019
|
+
payer: row.payer,
|
|
1020
|
+
settlementTx: row.settlement_tx,
|
|
1021
|
+
errorReason: row.error_reason,
|
|
1022
|
+
remoteAddr: row.remote_addr,
|
|
1023
|
+
userAgent: row.user_agent,
|
|
1024
|
+
createdAt: row.created_at,
|
|
1025
|
+
}));
|
|
1026
|
+
}
|
|
1027
|
+
getArtifactAccessSummary() {
|
|
1028
|
+
const row = this.db.prepare(`SELECT
|
|
1029
|
+
COUNT(*) AS access_count,
|
|
1030
|
+
COALESCE(SUM(CASE WHEN outcome = 'paid_served' THEN 1 ELSE 0 END), 0) AS paid_serve_count,
|
|
1031
|
+
COALESCE(SUM(CASE WHEN outcome = 'free_served' THEN 1 ELSE 0 END), 0) AS free_serve_count,
|
|
1032
|
+
COALESCE(SUM(CASE WHEN outcome IN ('verification_failed', 'settlement_failed', 'payment_malformed') THEN 1 ELSE 0 END), 0) AS failed_payment_count,
|
|
1033
|
+
COALESCE(SUM(CASE WHEN outcome = 'payment_required' THEN 1 ELSE 0 END), 0) AS payment_required_count,
|
|
1034
|
+
COALESCE(SUM(CASE WHEN outcome = 'paid_served' THEN CAST(price_usdc AS REAL) ELSE 0 END), 0) AS revenue_usdc,
|
|
1035
|
+
MAX(created_at) AS last_access_at,
|
|
1036
|
+
MAX(CASE WHEN outcome = 'paid_served' THEN created_at ELSE NULL END) AS last_paid_at
|
|
1037
|
+
FROM artifact_access_events`).get();
|
|
1038
|
+
return {
|
|
1039
|
+
accessCount: row.access_count,
|
|
1040
|
+
paidServeCount: row.paid_serve_count,
|
|
1041
|
+
freeServeCount: row.free_serve_count,
|
|
1042
|
+
failedPaymentCount: row.failed_payment_count,
|
|
1043
|
+
paymentRequiredCount: row.payment_required_count,
|
|
1044
|
+
revenueUsdc: String(row.revenue_usdc),
|
|
1045
|
+
lastAccessAt: row.last_access_at,
|
|
1046
|
+
lastPaidAt: row.last_paid_at,
|
|
1047
|
+
};
|
|
1048
|
+
}
|
|
1049
|
+
getArtifactAccessStatsBySha(sha256s) {
|
|
1050
|
+
const unique = Array.from(new Set(sha256s)).filter((sha256) => sha256.length > 0);
|
|
1051
|
+
if (unique.length === 0)
|
|
1052
|
+
return {};
|
|
1053
|
+
const placeholders = unique.map((_, idx) => `@sha${idx}`).join(', ');
|
|
1054
|
+
const params = Object.fromEntries(unique.map((sha256, idx) => [`sha${idx}`, sha256]));
|
|
1055
|
+
const rows = this.db.prepare(`SELECT
|
|
1056
|
+
sha256,
|
|
1057
|
+
COUNT(*) AS access_count,
|
|
1058
|
+
COALESCE(SUM(CASE WHEN outcome = 'paid_served' THEN 1 ELSE 0 END), 0) AS paid_serve_count,
|
|
1059
|
+
COALESCE(SUM(CASE WHEN outcome = 'free_served' THEN 1 ELSE 0 END), 0) AS free_serve_count,
|
|
1060
|
+
COALESCE(SUM(CASE WHEN outcome IN ('verification_failed', 'settlement_failed', 'payment_malformed') THEN 1 ELSE 0 END), 0) AS failed_payment_count,
|
|
1061
|
+
COALESCE(SUM(CASE WHEN outcome = 'payment_required' THEN 1 ELSE 0 END), 0) AS payment_required_count,
|
|
1062
|
+
COALESCE(SUM(CASE WHEN outcome = 'paid_served' THEN CAST(price_usdc AS REAL) ELSE 0 END), 0) AS revenue_usdc,
|
|
1063
|
+
MAX(created_at) AS last_access_at,
|
|
1064
|
+
MAX(CASE WHEN outcome = 'paid_served' THEN created_at ELSE NULL END) AS last_paid_at
|
|
1065
|
+
FROM artifact_access_events
|
|
1066
|
+
WHERE sha256 IN (${placeholders})
|
|
1067
|
+
GROUP BY sha256`).all(params);
|
|
1068
|
+
return Object.fromEntries(rows.map((row) => [
|
|
1069
|
+
row.sha256,
|
|
1070
|
+
{
|
|
1071
|
+
accessCount: row.access_count,
|
|
1072
|
+
paidServeCount: row.paid_serve_count,
|
|
1073
|
+
freeServeCount: row.free_serve_count,
|
|
1074
|
+
failedPaymentCount: row.failed_payment_count,
|
|
1075
|
+
paymentRequiredCount: row.payment_required_count,
|
|
1076
|
+
revenueUsdc: String(row.revenue_usdc),
|
|
1077
|
+
lastAccessAt: row.last_access_at,
|
|
1078
|
+
lastPaidAt: row.last_paid_at,
|
|
1079
|
+
},
|
|
1080
|
+
]));
|
|
1081
|
+
}
|
|
1082
|
+
setServedArtifactEnvelopeCid(sha256, envelopeCid) {
|
|
1083
|
+
this.db.prepare(`UPDATE served_artifacts SET envelope_cid = ? WHERE sha256 = ?`).run(envelopeCid, sha256);
|
|
1084
|
+
}
|
|
1085
|
+
getServedArtifactsByRequestId(requestId) {
|
|
1086
|
+
const rows = this.db.prepare(`SELECT sha256, artifact_type, request_id, envelope_cid, content, content_size, price_usdc, created_at
|
|
1087
|
+
FROM served_artifacts WHERE request_id = ? ORDER BY created_at ASC`).all(requestId);
|
|
1088
|
+
return rows.map((row) => ({
|
|
1089
|
+
sha256: row.sha256,
|
|
1090
|
+
artifactType: row.artifact_type,
|
|
1091
|
+
requestId: row.request_id,
|
|
1092
|
+
envelopeCid: row.envelope_cid,
|
|
1093
|
+
content: row.content,
|
|
1094
|
+
contentSize: row.content_size,
|
|
1095
|
+
priceUsdc: row.price_usdc,
|
|
1096
|
+
createdAt: row.created_at,
|
|
1097
|
+
}));
|
|
1098
|
+
}
|
|
1099
|
+
saveNetworkArtifact(input) {
|
|
1100
|
+
if (input.peerCatalogId) {
|
|
1101
|
+
this.db.prepare(`DELETE FROM network_artifacts WHERE peer_catalog_id = ?`).run(input.peerCatalogId);
|
|
1102
|
+
}
|
|
1103
|
+
this.db.prepare(`INSERT OR REPLACE INTO network_artifacts
|
|
1104
|
+
(sha256, artifact_type, envelope_cid, content, content_size, source,
|
|
1105
|
+
source_operator, source_endpoint, paid_amount_usdc, fetched_at, last_used_at, peer_catalog_id)
|
|
1106
|
+
VALUES
|
|
1107
|
+
(@sha256, @artifactType, @envelopeCid, @content, @contentSize, @source,
|
|
1108
|
+
@sourceOperator, @sourceEndpoint, @paidAmountUsdc, @fetchedAt, @fetchedAt, @peerCatalogId)`).run({
|
|
1109
|
+
sha256: input.sha256,
|
|
1110
|
+
artifactType: input.artifactType,
|
|
1111
|
+
envelopeCid: input.envelopeCid ?? null,
|
|
1112
|
+
content: input.content,
|
|
1113
|
+
contentSize: input.content.length,
|
|
1114
|
+
source: input.source,
|
|
1115
|
+
sourceOperator: input.sourceOperator ?? null,
|
|
1116
|
+
sourceEndpoint: input.sourceEndpoint ?? null,
|
|
1117
|
+
paidAmountUsdc: input.paidAmountUsdc,
|
|
1118
|
+
fetchedAt: input.fetchedAt,
|
|
1119
|
+
peerCatalogId: input.peerCatalogId ?? null,
|
|
1120
|
+
});
|
|
1121
|
+
}
|
|
1122
|
+
getNetworkArtifact(sha256) {
|
|
1123
|
+
const row = this.db.prepare(`SELECT sha256, artifact_type, envelope_cid, content, content_size, source,
|
|
1124
|
+
source_operator, source_endpoint, paid_amount_usdc, fetched_at, last_used_at,
|
|
1125
|
+
peer_catalog_id
|
|
1126
|
+
FROM network_artifacts WHERE sha256 = ?`).get(sha256);
|
|
1127
|
+
if (!row)
|
|
1128
|
+
return null;
|
|
1129
|
+
return {
|
|
1130
|
+
sha256: row.sha256,
|
|
1131
|
+
artifactType: row.artifact_type,
|
|
1132
|
+
envelopeCid: row.envelope_cid,
|
|
1133
|
+
content: row.content,
|
|
1134
|
+
contentSize: row.content_size,
|
|
1135
|
+
source: row.source,
|
|
1136
|
+
sourceOperator: row.source_operator,
|
|
1137
|
+
sourceEndpoint: row.source_endpoint,
|
|
1138
|
+
paidAmountUsdc: row.paid_amount_usdc,
|
|
1139
|
+
fetchedAt: row.fetched_at,
|
|
1140
|
+
lastUsedAt: row.last_used_at,
|
|
1141
|
+
peerCatalogId: row.peer_catalog_id,
|
|
1142
|
+
};
|
|
1143
|
+
}
|
|
1144
|
+
getNetworkArtifactMetadata(sha256) {
|
|
1145
|
+
const row = this.db.prepare(`SELECT sha256, artifact_type, envelope_cid, content_size, source,
|
|
1146
|
+
source_operator, source_endpoint, paid_amount_usdc, fetched_at, last_used_at,
|
|
1147
|
+
peer_catalog_id
|
|
1148
|
+
FROM network_artifacts WHERE sha256 = ?`).get(sha256);
|
|
1149
|
+
if (!row)
|
|
1150
|
+
return null;
|
|
1151
|
+
return {
|
|
1152
|
+
sha256: row.sha256,
|
|
1153
|
+
artifactType: row.artifact_type,
|
|
1154
|
+
envelopeCid: row.envelope_cid,
|
|
1155
|
+
contentSize: row.content_size,
|
|
1156
|
+
source: row.source,
|
|
1157
|
+
sourceOperator: row.source_operator,
|
|
1158
|
+
sourceEndpoint: row.source_endpoint,
|
|
1159
|
+
paidAmountUsdc: row.paid_amount_usdc,
|
|
1160
|
+
fetchedAt: row.fetched_at,
|
|
1161
|
+
lastUsedAt: row.last_used_at,
|
|
1162
|
+
peerCatalogId: row.peer_catalog_id,
|
|
1163
|
+
};
|
|
1164
|
+
}
|
|
1165
|
+
listNetworkArtifactMetadata(filter = {}) {
|
|
1166
|
+
const limit = Math.min(Math.max(1, filter.limit ?? 100), 500);
|
|
1167
|
+
const sql = filter.artifactType
|
|
1168
|
+
? `SELECT sha256, artifact_type, envelope_cid, content_size, source,
|
|
1169
|
+
source_operator, source_endpoint, paid_amount_usdc, fetched_at,
|
|
1170
|
+
last_used_at, peer_catalog_id
|
|
1171
|
+
FROM network_artifacts
|
|
1172
|
+
WHERE artifact_type = @artifactType
|
|
1173
|
+
ORDER BY fetched_at DESC
|
|
1174
|
+
LIMIT @limit`
|
|
1175
|
+
: `SELECT sha256, artifact_type, envelope_cid, content_size, source,
|
|
1176
|
+
source_operator, source_endpoint, paid_amount_usdc, fetched_at,
|
|
1177
|
+
last_used_at, peer_catalog_id
|
|
1178
|
+
FROM network_artifacts
|
|
1179
|
+
ORDER BY fetched_at DESC
|
|
1180
|
+
LIMIT @limit`;
|
|
1181
|
+
const rows = this.db.prepare(sql).all({
|
|
1182
|
+
limit,
|
|
1183
|
+
...(filter.artifactType ? { artifactType: filter.artifactType } : {}),
|
|
1184
|
+
});
|
|
1185
|
+
return rows.map((row) => ({
|
|
1186
|
+
sha256: row.sha256,
|
|
1187
|
+
artifactType: row.artifact_type,
|
|
1188
|
+
envelopeCid: row.envelope_cid,
|
|
1189
|
+
contentSize: row.content_size,
|
|
1190
|
+
source: row.source,
|
|
1191
|
+
sourceOperator: row.source_operator,
|
|
1192
|
+
sourceEndpoint: row.source_endpoint,
|
|
1193
|
+
paidAmountUsdc: row.paid_amount_usdc,
|
|
1194
|
+
fetchedAt: row.fetched_at,
|
|
1195
|
+
lastUsedAt: row.last_used_at,
|
|
1196
|
+
peerCatalogId: row.peer_catalog_id,
|
|
1197
|
+
}));
|
|
1198
|
+
}
|
|
1199
|
+
touchNetworkArtifactUsage(sha256, ts) {
|
|
1200
|
+
this.db.prepare(`UPDATE network_artifacts SET last_used_at = ? WHERE sha256 = ?`).run(ts, sha256);
|
|
1201
|
+
}
|
|
1202
|
+
/**
|
|
1203
|
+
* Local fast-path search across own (served) artifacts and cached (network)
|
|
1204
|
+
* artifacts. Used by MCP record search to prepend locally held matches to
|
|
1205
|
+
* corpus query results without loading artifact bytes.
|
|
1206
|
+
*/
|
|
1207
|
+
searchOwnAndCached(filter) {
|
|
1208
|
+
const limit = Math.min(Math.max(1, filter.limit), 500);
|
|
1209
|
+
const ownSql = filter.artifactType
|
|
1210
|
+
? `SELECT sha256, artifact_type, envelope_cid, content_size, price_usdc, created_at FROM served_artifacts WHERE artifact_type = @type ORDER BY created_at DESC LIMIT @limit`
|
|
1211
|
+
: `SELECT sha256, artifact_type, envelope_cid, content_size, price_usdc, created_at FROM served_artifacts ORDER BY created_at DESC LIMIT @limit`;
|
|
1212
|
+
const cachedSql = filter.artifactType
|
|
1213
|
+
? `SELECT sha256, artifact_type, envelope_cid, content_size, source_operator, source_endpoint, paid_amount_usdc, fetched_at FROM network_artifacts WHERE artifact_type = @type ORDER BY fetched_at DESC LIMIT @limit`
|
|
1214
|
+
: `SELECT sha256, artifact_type, envelope_cid, content_size, source_operator, source_endpoint, paid_amount_usdc, fetched_at FROM network_artifacts ORDER BY fetched_at DESC LIMIT @limit`;
|
|
1215
|
+
const params = { limit };
|
|
1216
|
+
if (filter.artifactType)
|
|
1217
|
+
params['type'] = filter.artifactType;
|
|
1218
|
+
const own = this.db.prepare(ownSql).all(params);
|
|
1219
|
+
const cached = this.db.prepare(cachedSql).all(params);
|
|
1220
|
+
return [
|
|
1221
|
+
...own.map((r) => ({
|
|
1222
|
+
sha256: r.sha256,
|
|
1223
|
+
artifactType: r.artifact_type,
|
|
1224
|
+
source: 'served',
|
|
1225
|
+
envelopeCid: r.envelope_cid,
|
|
1226
|
+
createdAt: r.created_at,
|
|
1227
|
+
contentSize: r.content_size,
|
|
1228
|
+
priceUsdc: r.price_usdc,
|
|
1229
|
+
})),
|
|
1230
|
+
...cached.map((r) => ({
|
|
1231
|
+
sha256: r.sha256,
|
|
1232
|
+
artifactType: r.artifact_type,
|
|
1233
|
+
source: 'network',
|
|
1234
|
+
envelopeCid: r.envelope_cid,
|
|
1235
|
+
createdAt: r.fetched_at,
|
|
1236
|
+
contentSize: r.content_size,
|
|
1237
|
+
sourceEndpoint: r.source_endpoint,
|
|
1238
|
+
sourceOperator: r.source_operator,
|
|
1239
|
+
paidAmountUsdc: r.paid_amount_usdc,
|
|
1240
|
+
})),
|
|
1241
|
+
];
|
|
1242
|
+
}
|
|
1243
|
+
saveEnvelopeProjection(projection) {
|
|
1244
|
+
const tx = this.db.transaction((p) => {
|
|
1245
|
+
this.db.prepare(`INSERT INTO envelope_projections
|
|
1246
|
+
(envelope_id, envelope_cid, envelope_sha256, signature_hash, solver_type, role,
|
|
1247
|
+
task_cid, task_id, request_id, generated_at, evidence_tier,
|
|
1248
|
+
participant_safe_address, participant_agent_eoa,
|
|
1249
|
+
executor_impl_name, executor_impl_version, executor_runtime_bundle_digest,
|
|
1250
|
+
executor_plugins_json, solution_envelope_cid, solution_envelope_sha256,
|
|
1251
|
+
solution_envelope_ref, metadata_json)
|
|
1252
|
+
VALUES
|
|
1253
|
+
(@envelopeId, @envelopeCid, @envelopeSha256, @signatureHash, @solverType, @role,
|
|
1254
|
+
@taskCid, @taskId, @requestId, @generatedAt, @evidenceTier,
|
|
1255
|
+
@participantSafeAddress, @participantAgentEoa,
|
|
1256
|
+
@executorImplName, @executorImplVersion, @executorRuntimeBundleDigest,
|
|
1257
|
+
@executorPluginsJson, @solutionEnvelopeCid, @solutionEnvelopeSha256,
|
|
1258
|
+
@solutionEnvelopeRef, @metadataJson)
|
|
1259
|
+
ON CONFLICT(envelope_id) DO UPDATE SET
|
|
1260
|
+
envelope_cid = excluded.envelope_cid,
|
|
1261
|
+
envelope_sha256 = excluded.envelope_sha256,
|
|
1262
|
+
signature_hash = excluded.signature_hash,
|
|
1263
|
+
solver_type = excluded.solver_type,
|
|
1264
|
+
role = excluded.role,
|
|
1265
|
+
task_cid = excluded.task_cid,
|
|
1266
|
+
task_id = excluded.task_id,
|
|
1267
|
+
request_id = excluded.request_id,
|
|
1268
|
+
generated_at = excluded.generated_at,
|
|
1269
|
+
evidence_tier = excluded.evidence_tier,
|
|
1270
|
+
participant_safe_address = excluded.participant_safe_address,
|
|
1271
|
+
participant_agent_eoa = excluded.participant_agent_eoa,
|
|
1272
|
+
executor_impl_name = excluded.executor_impl_name,
|
|
1273
|
+
executor_impl_version = excluded.executor_impl_version,
|
|
1274
|
+
executor_runtime_bundle_digest = excluded.executor_runtime_bundle_digest,
|
|
1275
|
+
executor_plugins_json = excluded.executor_plugins_json,
|
|
1276
|
+
solution_envelope_cid = excluded.solution_envelope_cid,
|
|
1277
|
+
solution_envelope_sha256 = excluded.solution_envelope_sha256,
|
|
1278
|
+
solution_envelope_ref = excluded.solution_envelope_ref,
|
|
1279
|
+
metadata_json = excluded.metadata_json`).run({
|
|
1280
|
+
envelopeId: p.envelopeId,
|
|
1281
|
+
envelopeCid: p.envelopeCid,
|
|
1282
|
+
envelopeSha256: p.envelopeSha256,
|
|
1283
|
+
signatureHash: p.signatureHash,
|
|
1284
|
+
solverType: p.solverType,
|
|
1285
|
+
role: p.role,
|
|
1286
|
+
taskCid: p.taskCid,
|
|
1287
|
+
taskId: p.taskId,
|
|
1288
|
+
requestId: p.requestId,
|
|
1289
|
+
generatedAt: p.generatedAt,
|
|
1290
|
+
evidenceTier: p.evidenceTier,
|
|
1291
|
+
participantSafeAddress: p.participantSafeAddress,
|
|
1292
|
+
participantAgentEoa: p.participantAgentEoa,
|
|
1293
|
+
executorImplName: p.executorImplName,
|
|
1294
|
+
executorImplVersion: p.executorImplVersion,
|
|
1295
|
+
executorRuntimeBundleDigest: p.executorRuntimeBundleDigest,
|
|
1296
|
+
executorPluginsJson: JSON.stringify(p.executorPlugins),
|
|
1297
|
+
solutionEnvelopeCid: p.solutionEnvelopeCid,
|
|
1298
|
+
solutionEnvelopeSha256: p.solutionEnvelopeSha256,
|
|
1299
|
+
solutionEnvelopeRef: p.solutionEnvelopeRef,
|
|
1300
|
+
metadataJson: JSON.stringify(p.metadata),
|
|
1301
|
+
});
|
|
1302
|
+
this.db.prepare(`DELETE FROM envelope_projection_metadata WHERE envelope_id = ?`).run(p.envelopeId);
|
|
1303
|
+
const insertMetadata = this.db.prepare(`INSERT INTO envelope_projection_metadata (envelope_id, key, value_text, value_type)
|
|
1304
|
+
VALUES (@envelopeId, @key, @valueText, @valueType)`);
|
|
1305
|
+
for (const [key, value] of Object.entries(p.metadata)) {
|
|
1306
|
+
insertMetadata.run({
|
|
1307
|
+
envelopeId: p.envelopeId,
|
|
1308
|
+
key,
|
|
1309
|
+
valueText: metadataValueText(value),
|
|
1310
|
+
valueType: typeof value,
|
|
1311
|
+
});
|
|
1312
|
+
}
|
|
1313
|
+
});
|
|
1314
|
+
tx(projection);
|
|
1315
|
+
}
|
|
1316
|
+
queryEnvelopeProjections(query = {}) {
|
|
1317
|
+
const conditions = [];
|
|
1318
|
+
const params = {};
|
|
1319
|
+
if (query.envelopeRefs && query.envelopeRefs.length > 0) {
|
|
1320
|
+
const placeholders = query.envelopeRefs.map((ref, index) => {
|
|
1321
|
+
const key = `envelopeRef${index}`;
|
|
1322
|
+
params[key] = ref;
|
|
1323
|
+
return `@${key}`;
|
|
1324
|
+
}).join(', ');
|
|
1325
|
+
conditions.push(`(envelope_id IN (${placeholders})
|
|
1326
|
+
OR envelope_cid IN (${placeholders})
|
|
1327
|
+
OR envelope_sha256 IN (${placeholders})
|
|
1328
|
+
OR signature_hash IN (${placeholders}))`);
|
|
1329
|
+
}
|
|
1330
|
+
if (query.solverType) {
|
|
1331
|
+
conditions.push('solver_type = @solverType');
|
|
1332
|
+
params['solverType'] = query.solverType;
|
|
1333
|
+
}
|
|
1334
|
+
if (query.role) {
|
|
1335
|
+
conditions.push('role = @role');
|
|
1336
|
+
params['role'] = query.role;
|
|
1337
|
+
}
|
|
1338
|
+
if (query.taskCid) {
|
|
1339
|
+
conditions.push('task_cid = @taskCid');
|
|
1340
|
+
params['taskCid'] = query.taskCid;
|
|
1341
|
+
}
|
|
1342
|
+
if (query.taskId) {
|
|
1343
|
+
conditions.push('task_id = @taskId');
|
|
1344
|
+
params['taskId'] = query.taskId;
|
|
1345
|
+
}
|
|
1346
|
+
if (query.requestId) {
|
|
1347
|
+
conditions.push('request_id = @requestId');
|
|
1348
|
+
params['requestId'] = query.requestId;
|
|
1349
|
+
}
|
|
1350
|
+
if (query.participant?.safeAddress) {
|
|
1351
|
+
conditions.push('participant_safe_address = @participantSafeAddress');
|
|
1352
|
+
params['participantSafeAddress'] = query.participant.safeAddress;
|
|
1353
|
+
}
|
|
1354
|
+
if (query.participant?.agentEoa) {
|
|
1355
|
+
conditions.push('participant_agent_eoa = @participantAgentEoa');
|
|
1356
|
+
params['participantAgentEoa'] = query.participant.agentEoa;
|
|
1357
|
+
}
|
|
1358
|
+
if (query.solutionEnvelopeRef) {
|
|
1359
|
+
conditions.push('solution_envelope_ref = @solutionEnvelopeRef');
|
|
1360
|
+
params['solutionEnvelopeRef'] = query.solutionEnvelopeRef;
|
|
1361
|
+
}
|
|
1362
|
+
if (query.generatedAfter !== undefined) {
|
|
1363
|
+
conditions.push('generated_at >= @generatedAfter');
|
|
1364
|
+
params['generatedAfter'] = query.generatedAfter;
|
|
1365
|
+
}
|
|
1366
|
+
if (query.generatedBefore !== undefined) {
|
|
1367
|
+
conditions.push('generated_at <= @generatedBefore');
|
|
1368
|
+
params['generatedBefore'] = query.generatedBefore;
|
|
1369
|
+
}
|
|
1370
|
+
let metadataIndex = 0;
|
|
1371
|
+
for (const [key, value] of Object.entries(query.metadata ?? {})) {
|
|
1372
|
+
const keyParam = `metadataKey${metadataIndex}`;
|
|
1373
|
+
const valueParam = `metadataValue${metadataIndex}`;
|
|
1374
|
+
conditions.push(`EXISTS (
|
|
1375
|
+
SELECT 1 FROM envelope_projection_metadata m${metadataIndex}
|
|
1376
|
+
WHERE m${metadataIndex}.envelope_id = envelope_projections.envelope_id
|
|
1377
|
+
AND m${metadataIndex}.key = @${keyParam}
|
|
1378
|
+
AND m${metadataIndex}.value_text = @${valueParam}
|
|
1379
|
+
)`);
|
|
1380
|
+
params[keyParam] = key;
|
|
1381
|
+
params[valueParam] = metadataValueText(value);
|
|
1382
|
+
metadataIndex += 1;
|
|
1383
|
+
}
|
|
1384
|
+
const limit = Math.max(0, Math.min(query.limit ?? 100, 1000));
|
|
1385
|
+
params['limit'] = limit;
|
|
1386
|
+
const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
1387
|
+
const rows = this.db.prepare(`SELECT envelope_id, envelope_cid, envelope_sha256, signature_hash, solver_type, role,
|
|
1388
|
+
task_cid, task_id, request_id, generated_at, evidence_tier,
|
|
1389
|
+
participant_safe_address, participant_agent_eoa,
|
|
1390
|
+
executor_impl_name, executor_impl_version, executor_runtime_bundle_digest,
|
|
1391
|
+
executor_plugins_json, solution_envelope_cid, solution_envelope_sha256,
|
|
1392
|
+
solution_envelope_ref, metadata_json
|
|
1393
|
+
FROM envelope_projections
|
|
1394
|
+
${where}
|
|
1395
|
+
ORDER BY generated_at DESC, envelope_id ASC
|
|
1396
|
+
LIMIT @limit`).all(params);
|
|
1397
|
+
return rows.map(rowToEnvelopeProjection);
|
|
498
1398
|
}
|
|
499
1399
|
close() {
|
|
500
1400
|
this.db.close();
|
|
501
1401
|
}
|
|
502
1402
|
}
|
|
1403
|
+
function rowToEnvelopeProjection(row) {
|
|
1404
|
+
return {
|
|
1405
|
+
envelopeId: row.envelope_id,
|
|
1406
|
+
envelopeCid: row.envelope_cid,
|
|
1407
|
+
envelopeSha256: row.envelope_sha256,
|
|
1408
|
+
signatureHash: row.signature_hash,
|
|
1409
|
+
solverType: row.solver_type,
|
|
1410
|
+
role: row.role,
|
|
1411
|
+
taskCid: row.task_cid,
|
|
1412
|
+
taskId: row.task_id,
|
|
1413
|
+
requestId: row.request_id,
|
|
1414
|
+
generatedAt: row.generated_at,
|
|
1415
|
+
evidenceTier: row.evidence_tier,
|
|
1416
|
+
participantSafeAddress: row.participant_safe_address,
|
|
1417
|
+
participantAgentEoa: row.participant_agent_eoa,
|
|
1418
|
+
executorImplName: row.executor_impl_name,
|
|
1419
|
+
executorImplVersion: row.executor_impl_version,
|
|
1420
|
+
executorRuntimeBundleDigest: row.executor_runtime_bundle_digest,
|
|
1421
|
+
executorPlugins: parseStringArray(row.executor_plugins_json),
|
|
1422
|
+
solutionEnvelopeCid: row.solution_envelope_cid,
|
|
1423
|
+
solutionEnvelopeSha256: row.solution_envelope_sha256,
|
|
1424
|
+
solutionEnvelopeRef: row.solution_envelope_ref,
|
|
1425
|
+
metadata: parseMetadata(row.metadata_json),
|
|
1426
|
+
};
|
|
1427
|
+
}
|
|
1428
|
+
function metadataValueText(value) {
|
|
1429
|
+
return String(value);
|
|
1430
|
+
}
|
|
1431
|
+
function parseStringArray(json) {
|
|
1432
|
+
try {
|
|
1433
|
+
const parsed = JSON.parse(json);
|
|
1434
|
+
return Array.isArray(parsed) ? parsed.filter((value) => typeof value === 'string') : [];
|
|
1435
|
+
}
|
|
1436
|
+
catch {
|
|
1437
|
+
return [];
|
|
1438
|
+
}
|
|
1439
|
+
}
|
|
1440
|
+
function parseMetadata(json) {
|
|
1441
|
+
try {
|
|
1442
|
+
const parsed = JSON.parse(json);
|
|
1443
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
1444
|
+
return {};
|
|
1445
|
+
const out = {};
|
|
1446
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
1447
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
1448
|
+
out[key] = value;
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
return out;
|
|
1452
|
+
}
|
|
1453
|
+
catch {
|
|
1454
|
+
return {};
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
503
1457
|
//# sourceMappingURL=store.js.map
|