@jinn-network/client 0.1.6 → 0.1.7-canary.17a8ecb8
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 +33 -0
- package/README.md +67 -1
- package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +23 -4
- package/deployments/deployment-jinn-mvi-l1-sepolia.json +23 -4
- package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +5 -4
- package/dist/adapters/mech/adapter.d.ts +38 -1
- package/dist/adapters/mech/adapter.js +268 -57
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +17 -4
- package/dist/adapters/mech/contracts.js +8 -2
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/safe-revert.d.ts +20 -0
- package/dist/adapters/mech/safe-revert.js +12 -4
- package/dist/adapters/mech/safe-revert.js.map +1 -1
- package/dist/adapters/mech/safe.d.ts +6 -2
- package/dist/adapters/mech/safe.js +32 -11
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +6 -1
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/adapters/mech/verdict-code.d.ts +1 -0
- package/dist/adapters/mech/verdict-code.js +18 -0
- package/dist/adapters/mech/verdict-code.js.map +1 -1
- package/dist/api/activity-events-endpoint.d.ts +14 -0
- package/dist/api/activity-events-endpoint.js +59 -0
- package/dist/api/activity-events-endpoint.js.map +1 -0
- package/dist/api/admin-endpoint.d.ts +15 -3
- package/dist/api/admin-endpoint.js +24 -2
- package/dist/api/admin-endpoint.js.map +1 -1
- package/dist/api/bootstrap-endpoint.d.ts +1 -2
- package/dist/api/bootstrap-endpoint.js +49 -1
- package/dist/api/bootstrap-endpoint.js.map +1 -1
- package/dist/api/codex-doctor-endpoint.d.ts +73 -0
- package/dist/api/codex-doctor-endpoint.js +177 -0
- package/dist/api/codex-doctor-endpoint.js.map +1 -0
- package/dist/api/discovery-endpoint.d.ts +1 -0
- package/dist/api/discovery-endpoint.js +26 -0
- package/dist/api/discovery-endpoint.js.map +1 -1
- package/dist/api/fleet-build.d.ts +1 -0
- package/dist/api/fleet-build.js +2 -1
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.d.ts +14 -0
- package/dist/api/gather-status.js +494 -19
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/hermes-doctor-endpoint.d.ts +117 -0
- package/dist/api/hermes-doctor-endpoint.js +229 -23
- package/dist/api/hermes-doctor-endpoint.js.map +1 -1
- package/dist/api/launcher-status.d.ts +22 -17
- package/dist/api/launcher-status.js +13 -11
- package/dist/api/launcher-status.js.map +1 -1
- package/dist/api/launcher-tasks.d.ts +1 -1
- package/dist/api/launcher-tasks.js +12 -8
- package/dist/api/launcher-tasks.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +10 -0
- package/dist/api/portfolio-v0-build.js +24 -5
- package/dist/api/portfolio-v0-build.js.map +1 -1
- package/dist/api/prediction-v1-build.d.ts +10 -0
- package/dist/api/prediction-v1-build.js +7 -1
- package/dist/api/prediction-v1-build.js.map +1 -1
- package/dist/api/server.d.ts +31 -1
- package/dist/api/server.js +72 -1
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +16 -0
- package/dist/api/setup-endpoints.js +89 -135
- package/dist/api/setup-endpoints.js.map +1 -1
- package/dist/api/setup-retry-endpoint.d.ts +19 -0
- package/dist/api/setup-retry-endpoint.js +32 -0
- package/dist/api/setup-retry-endpoint.js.map +1 -0
- package/dist/api/solvernets-endpoints.d.ts +8 -0
- package/dist/api/solvernets-endpoints.js +71 -43
- package/dist/api/solvernets-endpoints.js.map +1 -1
- package/dist/api/status-build.d.ts +112 -0
- package/dist/api/status-build.js +98 -18
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/task-run-routing.d.ts +7 -0
- package/dist/api/task-run-routing.js +12 -0
- package/dist/api/task-run-routing.js.map +1 -0
- package/dist/api/task-runs-build.d.ts +21 -0
- package/dist/api/task-runs-build.js +14 -1
- package/dist/api/task-runs-build.js.map +1 -1
- package/dist/build-info.json +4 -4
- package/dist/build-meta.json +1 -1
- package/dist/chain-read-errors.d.ts +10 -0
- package/dist/chain-read-errors.js +15 -0
- package/dist/chain-read-errors.js.map +1 -1
- package/dist/cli/commands/auth.js +1 -1
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/create.js +3 -2
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.js +2 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/rewards.js +11 -7
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/solver-nets.js +101 -15
- package/dist/cli/commands/solver-nets.js.map +1 -1
- package/dist/cli/commands/solver-plugins-block.d.ts +33 -0
- package/dist/cli/commands/solver-plugins-block.js +118 -0
- package/dist/cli/commands/solver-plugins-block.js.map +1 -0
- package/dist/cli/commands/solver-plugins-feedback.d.ts +72 -0
- package/dist/cli/commands/solver-plugins-feedback.js +262 -0
- package/dist/cli/commands/solver-plugins-feedback.js.map +1 -0
- package/dist/cli/commands/solver-plugins-read.d.ts +54 -0
- package/dist/cli/commands/solver-plugins-read.js +259 -0
- package/dist/cli/commands/solver-plugins-read.js.map +1 -0
- package/dist/cli/commands/solver-plugins.d.ts +35 -0
- package/dist/cli/commands/solver-plugins.js +399 -2
- package/dist/cli/commands/solver-plugins.js.map +1 -1
- package/dist/cli/commands/status.js +1 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/tasks.js +101 -11
- package/dist/cli/commands/tasks.js.map +1 -1
- package/dist/cli/commands/update.d.ts +10 -0
- package/dist/cli/commands/update.js +36 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/introspection-context.js +5 -0
- package/dist/cli/introspection-context.js.map +1 -1
- package/dist/cli/task-native-readiness.d.ts +10 -1
- package/dist/cli/task-native-readiness.js +30 -6
- package/dist/cli/task-native-readiness.js.map +1 -1
- package/dist/config.d.ts +273 -235
- package/dist/config.js +305 -114
- package/dist/config.js.map +1 -1
- package/dist/daemon/checkpoint-loop.d.ts +48 -0
- package/dist/daemon/checkpoint-loop.js +76 -0
- package/dist/daemon/checkpoint-loop.js.map +1 -0
- package/dist/daemon/creator.d.ts +1 -1
- package/dist/daemon/creator.js +7 -3
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +22 -0
- package/dist/daemon/daemon.js +156 -23
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/eviction-loop.d.ts +40 -0
- package/dist/daemon/eviction-loop.js +67 -0
- package/dist/daemon/eviction-loop.js.map +1 -0
- package/dist/daemon/gate-logger.d.ts +9 -0
- package/dist/daemon/gate-logger.js +2 -0
- package/dist/daemon/gate-logger.js.map +1 -0
- package/dist/daemon/jinn-claim-loop-wiring.d.ts +33 -0
- package/dist/daemon/jinn-claim-loop-wiring.js +40 -0
- package/dist/daemon/jinn-claim-loop-wiring.js.map +1 -0
- package/dist/daemon/jinn-claim-loop.d.ts +24 -17
- package/dist/daemon/jinn-claim-loop.js +77 -23
- package/dist/daemon/jinn-claim-loop.js.map +1 -1
- package/dist/daemon/readiness-gate.d.ts +1 -4
- package/dist/daemon/readiness-gate.js.map +1 -1
- package/dist/daemon/skip-log-dedup.d.ts +69 -0
- package/dist/daemon/skip-log-dedup.js +106 -0
- package/dist/daemon/skip-log-dedup.js.map +1 -0
- package/dist/daemon/spend-cap-gate.d.ts +40 -0
- package/dist/daemon/spend-cap-gate.js +46 -0
- package/dist/daemon/spend-cap-gate.js.map +1 -0
- package/dist/dashboard/assets/index-8yHQgi7p.js +345 -0
- package/dist/dashboard/assets/index-BOBhJ76-.css +32 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/discovery/factory.d.ts +17 -5
- package/dist/discovery/factory.js +46 -18
- package/dist/discovery/factory.js.map +1 -1
- package/dist/discovery/http.js +142 -3
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.d.ts +5 -0
- package/dist/discovery/onchain.js +407 -15
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +45 -1
- package/dist/discovery/types.js +8 -10
- package/dist/discovery/types.js.map +1 -1
- package/dist/discovery/with-fallback.d.ts +7 -0
- package/dist/discovery/with-fallback.js +10 -0
- package/dist/discovery/with-fallback.js.map +1 -1
- package/dist/earning/bootstrap.d.ts +92 -1
- package/dist/earning/bootstrap.js +203 -63
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +14 -0
- package/dist/earning/contracts.js +17 -5
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/funding-plan.js +27 -18
- package/dist/earning/funding-plan.js.map +1 -1
- package/dist/earning/jinn-rewards.d.ts +46 -0
- package/dist/earning/jinn-rewards.js +32 -0
- package/dist/earning/jinn-rewards.js.map +1 -1
- package/dist/earning/safe-adapter.d.ts +2 -0
- package/dist/earning/safe-adapter.js +37 -11
- package/dist/earning/safe-adapter.js.map +1 -1
- package/dist/earning/store.d.ts +8 -0
- package/dist/earning/store.js.map +1 -1
- package/dist/earning/testnet-setup-migration.d.ts +12 -0
- package/dist/earning/testnet-setup-migration.js +27 -1
- package/dist/earning/testnet-setup-migration.js.map +1 -1
- package/dist/earning/types.d.ts +21 -6
- package/dist/earning/viem-clients.d.ts +11 -4
- package/dist/earning/viem-clients.js +14 -5
- package/dist/earning/viem-clients.js.map +1 -1
- package/dist/erc8004/reputation.d.ts +8 -0
- package/dist/erc8004/reputation.js +22 -3
- package/dist/erc8004/reputation.js.map +1 -1
- package/dist/events/types.d.ts +2 -2
- package/dist/harnesses/cost-estimates.d.ts +145 -0
- package/dist/harnesses/cost-estimates.js +297 -0
- package/dist/harnesses/cost-estimates.js.map +1 -0
- package/dist/harnesses/engine/engine.d.ts +72 -0
- package/dist/harnesses/engine/engine.js +118 -8
- package/dist/harnesses/engine/engine.js.map +1 -1
- package/dist/harnesses/engine/persistence.d.ts +51 -1
- package/dist/harnesses/engine/persistence.js +118 -5
- package/dist/harnesses/engine/persistence.js.map +1 -1
- package/dist/harnesses/engine/work-dir-reaper.d.ts +65 -0
- package/dist/harnesses/engine/work-dir-reaper.js +100 -0
- package/dist/harnesses/engine/work-dir-reaper.js.map +1 -0
- package/dist/harnesses/impls/hermes-agent/adapter.js +40 -0
- package/dist/harnesses/impls/hermes-agent/adapter.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/bootstrap.d.ts +20 -0
- package/dist/harnesses/impls/hermes-agent/bootstrap.js +40 -6
- package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/harness.d.ts +59 -1
- package/dist/harnesses/impls/hermes-agent/harness.js +104 -0
- package/dist/harnesses/impls/hermes-agent/harness.js.map +1 -1
- package/dist/harnesses/impls/index.d.ts +7 -0
- package/dist/harnesses/impls/index.js +16 -1
- package/dist/harnesses/impls/index.js.map +1 -1
- package/dist/harnesses/impls/learner/harness.d.ts +38 -4
- package/dist/harnesses/impls/learner/harness.js +96 -2
- package/dist/harnesses/impls/learner/harness.js.map +1 -1
- package/dist/harnesses/impls/learner/plugin-path.d.ts +0 -13
- package/dist/harnesses/impls/learner/plugin-path.js +35 -15
- package/dist/harnesses/impls/learner/plugin-path.js.map +1 -1
- package/dist/harnesses/impls/learner/types.d.ts +11 -0
- package/dist/harnesses/impls/stub.d.ts +58 -0
- package/dist/harnesses/impls/stub.js +89 -0
- package/dist/harnesses/impls/stub.js.map +1 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.d.ts +69 -50
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js +178 -93
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/eval-runner.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.d.ts +12 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js +121 -7
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/harness.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.d.ts +88 -4
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js +143 -22
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/hf-fetcher.js.map +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.d.ts +6 -0
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js +1 -1
- package/dist/harnesses/impls/swe-rebench-v2-evaluator/index.js.map +1 -1
- package/dist/harnesses/readiness-registry.js +9 -1
- package/dist/harnesses/readiness-registry.js.map +1 -1
- package/dist/main.js +413 -111
- package/dist/main.js.map +1 -1
- package/dist/observability/emit-event.d.ts +3 -2
- package/dist/observability/emit-event.js +22 -1
- package/dist/observability/emit-event.js.map +1 -1
- package/dist/operator-errors.d.ts +7 -0
- package/dist/operator-errors.js +13 -1
- package/dist/operator-errors.js.map +1 -1
- package/dist/plugins/learner/.claude-plugin/plugin.json +9 -0
- package/dist/plugins/learner/.codex-plugin/plugin.json +39 -0
- package/dist/plugins/learner/AGENTS.md +40 -0
- package/dist/plugins/learner/CLAUDE.md +33 -0
- package/dist/plugins/learner/README.md +59 -0
- package/dist/plugins/learner/hooks/hooks.json +16 -0
- package/dist/plugins/learner/hooks/session-start +38 -0
- package/dist/plugins/learner/skills/learn/SKILL.md +412 -0
- package/dist/plugins/learner/skills/learn/analyst-prompt.md +68 -0
- package/dist/plugins/learner/skills/learn/consolidator-prompt.md +94 -0
- package/dist/plugins/learner/skills/learn/explorer-prompt.md +53 -0
- package/dist/plugins/learner/skills/learn/planner-prompt.md +87 -0
- package/dist/plugins/learner/skills/learn/promoter-prompt.md +113 -0
- package/dist/plugins/learner/skills/learn/step-worker-prompt.md +47 -0
- package/dist/plugins/learner/skills/learn/strategist-prompt.md +85 -0
- package/dist/preflight/rpc-network.d.ts +40 -0
- package/dist/preflight/rpc-network.js +67 -1
- package/dist/preflight/rpc-network.js.map +1 -1
- package/dist/restart-daemon.d.ts +90 -0
- package/dist/restart-daemon.js +95 -0
- package/dist/restart-daemon.js.map +1 -0
- package/dist/rpc/transport.d.ts +109 -0
- package/dist/rpc/transport.js +220 -0
- package/dist/rpc/transport.js.map +1 -0
- package/dist/scripts/donation-consumption-acceptance.js +7 -28
- package/dist/scripts/donation-consumption-acceptance.js.map +1 -1
- package/dist/setup/halt-mode.d.ts +14 -0
- package/dist/setup/halt-mode.js +17 -0
- package/dist/setup/halt-mode.js.map +1 -0
- package/dist/solver-nets/prediction-operator-ux.d.ts +1 -2
- package/dist/solver-nets/prediction-operator-ux.js +90 -47
- package/dist/solver-nets/prediction-operator-ux.js.map +1 -1
- package/dist/solver-nets/registry.d.ts +20 -1
- package/dist/solver-nets/registry.js +38 -25
- package/dist/solver-nets/registry.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-pool-cache.d.ts +58 -0
- package/dist/solver-types/_swe-rebench-v2-pool-cache.js +87 -0
- package/dist/solver-types/_swe-rebench-v2-pool-cache.js.map +1 -0
- package/dist/solver-types/_swe-rebench-v2-pool.d.ts +9 -2
- package/dist/solver-types/_swe-rebench-v2-pool.js +15 -20
- package/dist/solver-types/_swe-rebench-v2-pool.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-substrate.d.ts +1 -0
- package/dist/solver-types/_swe-rebench-v2-substrate.js +10 -0
- package/dist/solver-types/_swe-rebench-v2-substrate.js.map +1 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.d.ts +94 -1
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +305 -39
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2-auto.d.ts +22 -7
- package/dist/solver-types/swe-rebench-v2-auto.js +45 -20
- package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2.d.ts +13 -2
- package/dist/solver-types/swe-rebench-v2.js +237 -95
- package/dist/solver-types/swe-rebench-v2.js.map +1 -1
- package/dist/solvernets/daemon-init.d.ts +10 -2
- package/dist/solvernets/daemon-init.js +22 -2
- package/dist/solvernets/daemon-init.js.map +1 -1
- package/dist/solvernets/launched-record-dispatcher.js +35 -7
- package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
- package/dist/solvernets/store.d.ts +5 -0
- package/dist/solvernets/store.js +1 -0
- package/dist/solvernets/store.js.map +1 -1
- package/dist/spend/credential.d.ts +8 -0
- package/dist/spend/credential.js +30 -0
- package/dist/spend/credential.js.map +1 -0
- package/dist/spend/daemon-config.d.ts +13 -0
- package/dist/spend/daemon-config.js +24 -0
- package/dist/spend/daemon-config.js.map +1 -0
- package/dist/spend/pricing.d.ts +16 -0
- package/dist/spend/pricing.js +26 -0
- package/dist/spend/pricing.js.map +1 -0
- package/dist/spend/record.d.ts +13 -0
- package/dist/spend/record.js +30 -0
- package/dist/spend/record.js.map +1 -0
- package/dist/spend/usage.d.ts +27 -0
- package/dist/spend/usage.js +113 -0
- package/dist/spend/usage.js.map +1 -0
- package/dist/store/store.d.ts +43 -0
- package/dist/store/store.js +236 -7
- package/dist/store/store.js.map +1 -1
- package/dist/tasks/sources.d.ts +18 -1
- package/dist/tasks/sources.js +33 -5
- package/dist/tasks/sources.js.map +1 -1
- package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
- package/dist/tx-retry.d.ts +166 -19
- package/dist/tx-retry.js +310 -32
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/payloads/prediction-apy-v0.d.ts +5 -5
- package/dist/types/payloads/prediction-v0.d.ts +5 -5
- package/dist/types/task-document.d.ts +392 -0
- package/dist/types/task-document.js +10 -0
- package/dist/types/task-document.js.map +1 -1
- package/dist/types/task.d.ts +28 -0
- package/dist/util/extract-tx-hash.d.ts +14 -0
- package/dist/util/extract-tx-hash.js +19 -0
- package/dist/util/extract-tx-hash.js.map +1 -0
- package/dist/vendor/@jinn-network/sdk/dist/contracts.js +1 -1
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.d.ts +3 -0
- package/dist/vendor/@jinn-network/sdk/dist/solvernets/manifest-schema.js +1 -0
- package/package.json +30 -12
- package/dist/dashboard/assets/index-DOlzFN8a.css +0 -32
- package/dist/dashboard/assets/index-NkZ7CTAT.js +0 -140
package/dist/tasks/sources.js
CHANGED
|
@@ -13,22 +13,50 @@ export class StaticConfiguredTaskSource {
|
|
|
13
13
|
}));
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Filter a config-level tasks[] array to only entries that can be posted via
|
|
18
|
+
* the production adapter (i.e. those with a solverNetManifestCid).
|
|
19
|
+
*
|
|
20
|
+
* This is the guard for issue #415: a tasks[] entry without a manifest CID
|
|
21
|
+
* will always throw PermanentError in signTaskDocument, causing the creator loop
|
|
22
|
+
* to backoff and retry indefinitely. Filtering here prevents the entry from ever
|
|
23
|
+
* entering the posting cycle and emits a one-time warning per dropped entry at
|
|
24
|
+
* startup.
|
|
25
|
+
*
|
|
26
|
+
* Only call this on the config-level tasks[] array (the production path). Do not
|
|
27
|
+
* apply it to Task objects created in tests or via other in-memory sources.
|
|
28
|
+
*/
|
|
29
|
+
export function filterBindableTasks(tasks) {
|
|
30
|
+
return tasks.filter((task) => {
|
|
31
|
+
if (!task.solverNetManifestCid) {
|
|
32
|
+
console.warn(`[creator] Skipping configured task "${task.id}": missing solverNetManifestCid. ` +
|
|
33
|
+
`Legacy tasks[] entries without a SolverNet manifest binding can never be posted ` +
|
|
34
|
+
`(spec §14 BINDING rule). Remove this entry from your config or add a solverNetManifestCid.`);
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
16
40
|
export class GeneratedTaskSource {
|
|
17
41
|
sourceKey;
|
|
18
42
|
generator;
|
|
19
|
-
|
|
43
|
+
opts;
|
|
44
|
+
constructor(sourceKey, generator, opts = {}) {
|
|
20
45
|
this.sourceKey = sourceKey;
|
|
21
46
|
this.generator = generator;
|
|
47
|
+
this.opts = opts;
|
|
22
48
|
}
|
|
23
49
|
async collect(_now) {
|
|
24
50
|
const generated = await this.generator();
|
|
25
51
|
if (!generated)
|
|
26
52
|
return [];
|
|
27
53
|
const tasks = Array.isArray(generated) ? generated : [generated];
|
|
28
|
-
return tasks.map((task) => {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
54
|
+
return tasks.map((task, index) => {
|
|
55
|
+
const overrideBucketKey = this.opts.bucketKeyForTask?.(task, index);
|
|
56
|
+
const bucketKey = overrideBucketKey
|
|
57
|
+
?? (task.window
|
|
58
|
+
? `${task.window.startTs}:${task.window.endTs}`
|
|
59
|
+
: task.id);
|
|
32
60
|
return {
|
|
33
61
|
task,
|
|
34
62
|
sourceKey: this.sourceKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/tasks/sources.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,0BAA0B;IAGR;IAFpB,SAAS,GAAG,YAAY,CAAC;IAElC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI;YACJ,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE;YACzC,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;YACxC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE;SAChE,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IAEnB;IACQ;
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/tasks/sources.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,0BAA0B;IAGR;IAFpB,SAAS,GAAG,YAAY,CAAC;IAElC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI;YACJ,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE;YACzC,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;YACxC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE;SAChE,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,uCAAuC,IAAI,CAAC,EAAE,mCAAmC;gBACjF,kFAAkF;gBAClF,4FAA4F,CAC7F,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,mBAAmB;IAEnB;IACQ;IACA;IAHnB,YACW,SAAiB,EACT,SAAwB,EACxB,OAEb,EAAE;QAJG,cAAS,GAAT,SAAS,CAAQ;QACT,cAAS,GAAT,SAAS,CAAe;QACxB,SAAI,GAAJ,IAAI,CAEf;IACL,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,iBAAiB;mBAC9B,CAAC,IAAI,CAAC,MAAM;oBACb,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;oBAC/C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,EAAE,IAAI,EAAE,iBAA0B,EAAE,SAAS,EAAE;gBAC9D,UAAU,EAAE;oBACV,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,SAAS;oBACT,IAAI,EAAE,WAAW;iBAClB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -5,24 +5,24 @@ export declare const TranscriptEventSchema: z.ZodDiscriminatedUnion<"kind", [z.Z
|
|
|
5
5
|
content: z.ZodString;
|
|
6
6
|
}, "strip", z.ZodTypeAny, {
|
|
7
7
|
kind: "user-message";
|
|
8
|
-
content: string;
|
|
9
8
|
timestamp: string;
|
|
9
|
+
content: string;
|
|
10
10
|
}, {
|
|
11
11
|
kind: "user-message";
|
|
12
|
-
content: string;
|
|
13
12
|
timestamp: string;
|
|
13
|
+
content: string;
|
|
14
14
|
}>, z.ZodObject<{
|
|
15
15
|
kind: z.ZodLiteral<"assistant-message">;
|
|
16
16
|
timestamp: z.ZodString;
|
|
17
17
|
content: z.ZodString;
|
|
18
18
|
}, "strip", z.ZodTypeAny, {
|
|
19
19
|
kind: "assistant-message";
|
|
20
|
-
content: string;
|
|
21
20
|
timestamp: string;
|
|
21
|
+
content: string;
|
|
22
22
|
}, {
|
|
23
23
|
kind: "assistant-message";
|
|
24
|
-
content: string;
|
|
25
24
|
timestamp: string;
|
|
25
|
+
content: string;
|
|
26
26
|
}>, z.ZodObject<{
|
|
27
27
|
kind: z.ZodLiteral<"tool-call">;
|
|
28
28
|
timestamp: z.ZodString;
|
|
@@ -31,13 +31,13 @@ export declare const TranscriptEventSchema: z.ZodDiscriminatedUnion<"kind", [z.Z
|
|
|
31
31
|
}, "strip", z.ZodTypeAny, {
|
|
32
32
|
name: string;
|
|
33
33
|
kind: "tool-call";
|
|
34
|
-
args: Record<string, unknown>;
|
|
35
34
|
timestamp: string;
|
|
35
|
+
args: Record<string, unknown>;
|
|
36
36
|
}, {
|
|
37
37
|
name: string;
|
|
38
38
|
kind: "tool-call";
|
|
39
|
-
args: Record<string, unknown>;
|
|
40
39
|
timestamp: string;
|
|
40
|
+
args: Record<string, unknown>;
|
|
41
41
|
}>, z.ZodObject<{
|
|
42
42
|
kind: z.ZodLiteral<"tool-result">;
|
|
43
43
|
timestamp: z.ZodString;
|
|
@@ -47,14 +47,14 @@ export declare const TranscriptEventSchema: z.ZodDiscriminatedUnion<"kind", [z.Z
|
|
|
47
47
|
}, "strip", z.ZodTypeAny, {
|
|
48
48
|
name: string;
|
|
49
49
|
kind: "tool-result";
|
|
50
|
-
content: string;
|
|
51
50
|
timestamp: string;
|
|
51
|
+
content: string;
|
|
52
52
|
isError?: boolean | undefined;
|
|
53
53
|
}, {
|
|
54
54
|
name: string;
|
|
55
55
|
kind: "tool-result";
|
|
56
|
-
content: string;
|
|
57
56
|
timestamp: string;
|
|
57
|
+
content: string;
|
|
58
58
|
isError?: boolean | undefined;
|
|
59
59
|
}>, z.ZodObject<{
|
|
60
60
|
kind: z.ZodLiteral<"edit">;
|
package/dist/tx-retry.d.ts
CHANGED
|
@@ -8,6 +8,9 @@ export declare const TX_RETRY_DEFAULTS: {
|
|
|
8
8
|
readonly maxDelayMs: 12000;
|
|
9
9
|
/** Extra fee bump per retry attempt after the first (basis points, 1500 = +15%) */
|
|
10
10
|
readonly feeBumpBpsPerAttempt: 1500;
|
|
11
|
+
/** Minimum bump over the previously submitted fee for same-sender nonce replacement. */
|
|
12
|
+
readonly replacementBumpBps: 1500;
|
|
13
|
+
readonly stuckNonceAfterMs: 120000;
|
|
11
14
|
};
|
|
12
15
|
export declare function flattenErrorMessage(error: unknown): string;
|
|
13
16
|
/**
|
|
@@ -15,12 +18,24 @@ export declare function flattenErrorMessage(error: unknown): string;
|
|
|
15
18
|
* Intentionally conservative: do not treat insufficient balance or user rejections as recoverable.
|
|
16
19
|
*/
|
|
17
20
|
export declare function isRecoverableTransactionError(error: unknown): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* True when the error message contains the RPC's "nonce too low" signal.
|
|
23
|
+
*
|
|
24
|
+
* Issue #562: a daemon respawn can leave the locally-pinned ledger nonce
|
|
25
|
+
* behind the RPC's pending nonce, and every retry that re-submits with the
|
|
26
|
+
* stale value triggers this error. Callers use this helper to decide whether
|
|
27
|
+
* to refresh the pinned nonce before the next retry attempt.
|
|
28
|
+
*/
|
|
29
|
+
export declare function isNonceTooLowError(error: unknown): boolean;
|
|
18
30
|
export declare function sleep(ms: number): Promise<void>;
|
|
19
31
|
export declare function backoffDelay(attemptIndex: number, baseMs: number, maxMs: number): Promise<void>;
|
|
20
32
|
export interface TxRetryOptions {
|
|
21
33
|
maxAttempts?: number;
|
|
22
34
|
baseDelayMs?: number;
|
|
23
35
|
maxDelayMs?: number;
|
|
36
|
+
ledger?: TxSubmissionLedger;
|
|
37
|
+
logicalTx?: string;
|
|
38
|
+
stuckNonceAfterMs?: number;
|
|
24
39
|
/** If set, invoked before each retry (attempt >= 1) for logging/metrics */
|
|
25
40
|
onRetry?: (info: {
|
|
26
41
|
attempt: number;
|
|
@@ -28,6 +43,125 @@ export interface TxRetryOptions {
|
|
|
28
43
|
message: string;
|
|
29
44
|
}) => void;
|
|
30
45
|
}
|
|
46
|
+
export interface TxFeeSnapshot {
|
|
47
|
+
maxFeePerGas?: bigint;
|
|
48
|
+
maxPriorityFeePerGas?: bigint;
|
|
49
|
+
gasPrice?: bigint;
|
|
50
|
+
}
|
|
51
|
+
export type Eip1559FeeOverrides = {
|
|
52
|
+
maxFeePerGas: bigint;
|
|
53
|
+
maxPriorityFeePerGas: bigint;
|
|
54
|
+
gasPrice?: undefined;
|
|
55
|
+
};
|
|
56
|
+
export type LegacyFeeOverrides = {
|
|
57
|
+
gasPrice: bigint;
|
|
58
|
+
maxFeePerGas?: undefined;
|
|
59
|
+
maxPriorityFeePerGas?: undefined;
|
|
60
|
+
};
|
|
61
|
+
export type EmptyFeeOverrides = {
|
|
62
|
+
maxFeePerGas?: undefined;
|
|
63
|
+
maxPriorityFeePerGas?: undefined;
|
|
64
|
+
gasPrice?: undefined;
|
|
65
|
+
};
|
|
66
|
+
export type TxFeeOverrides = Eip1559FeeOverrides | LegacyFeeOverrides | EmptyFeeOverrides;
|
|
67
|
+
export type TxFeeOverrideResult = {
|
|
68
|
+
kind: 'eip1559';
|
|
69
|
+
overrides: Eip1559FeeOverrides;
|
|
70
|
+
snapshot: TxFeeSnapshot;
|
|
71
|
+
} | {
|
|
72
|
+
kind: 'legacy';
|
|
73
|
+
overrides: LegacyFeeOverrides;
|
|
74
|
+
snapshot: TxFeeSnapshot;
|
|
75
|
+
} | {
|
|
76
|
+
kind: 'none';
|
|
77
|
+
overrides: EmptyFeeOverrides;
|
|
78
|
+
snapshot: TxFeeSnapshot;
|
|
79
|
+
};
|
|
80
|
+
export type TxRecoveryTransactionRequest = TxFeeOverrides & {
|
|
81
|
+
account?: unknown;
|
|
82
|
+
to: Address;
|
|
83
|
+
value: bigint;
|
|
84
|
+
nonce: number;
|
|
85
|
+
};
|
|
86
|
+
export interface TxRecoveryWalletClient {
|
|
87
|
+
account?: unknown;
|
|
88
|
+
sendTransaction(tx: TxRecoveryTransactionRequest): Promise<Hex>;
|
|
89
|
+
}
|
|
90
|
+
export type TxRetryTransactionRequest = TxFeeOverrides & {
|
|
91
|
+
account?: unknown;
|
|
92
|
+
to?: Address;
|
|
93
|
+
data?: Hex;
|
|
94
|
+
value?: bigint;
|
|
95
|
+
gas?: bigint;
|
|
96
|
+
nonce?: number;
|
|
97
|
+
[key: string]: unknown;
|
|
98
|
+
};
|
|
99
|
+
export interface TxRetryWalletClient {
|
|
100
|
+
account?: unknown;
|
|
101
|
+
sendTransaction(tx: TxRetryTransactionRequest): Promise<Hex>;
|
|
102
|
+
}
|
|
103
|
+
export interface TxSubmissionKey {
|
|
104
|
+
chainId: number;
|
|
105
|
+
from: Address;
|
|
106
|
+
nonce: number;
|
|
107
|
+
}
|
|
108
|
+
export interface TxSubmissionLedgerEntry extends TxSubmissionKey {
|
|
109
|
+
hash?: Hex;
|
|
110
|
+
logicalTx?: string;
|
|
111
|
+
submittedAtMs: number;
|
|
112
|
+
fees: TxFeeSnapshot;
|
|
113
|
+
to?: Address;
|
|
114
|
+
value?: bigint;
|
|
115
|
+
data?: Hex;
|
|
116
|
+
resolvedAtMs?: number | null;
|
|
117
|
+
}
|
|
118
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
119
|
+
export interface TxSubmissionLedger {
|
|
120
|
+
getTxSubmission(key: TxSubmissionKey): MaybePromise<TxSubmissionLedgerEntry | null>;
|
|
121
|
+
recordTxSubmission(entry: TxSubmissionLedgerEntry): MaybePromise<void>;
|
|
122
|
+
markTxSubmissionResolved(key: TxSubmissionKey & {
|
|
123
|
+
resolvedAtMs: number;
|
|
124
|
+
}): MaybePromise<void>;
|
|
125
|
+
}
|
|
126
|
+
export interface NonceLedgerSubmission {
|
|
127
|
+
hash?: Hex;
|
|
128
|
+
logicalTx?: string;
|
|
129
|
+
submittedAtMs?: number;
|
|
130
|
+
fees: TxFeeSnapshot;
|
|
131
|
+
to?: Address;
|
|
132
|
+
value?: bigint;
|
|
133
|
+
data?: Hex;
|
|
134
|
+
}
|
|
135
|
+
export interface NonceLedgerContext {
|
|
136
|
+
ledger: TxSubmissionLedger;
|
|
137
|
+
chainId: number;
|
|
138
|
+
from: Address;
|
|
139
|
+
nonce: number;
|
|
140
|
+
feeResultForAttempt(attemptIndex: number, options?: {
|
|
141
|
+
forceEstimate?: boolean;
|
|
142
|
+
}): Promise<TxFeeOverrideResult>;
|
|
143
|
+
recordSubmitted(entry: NonceLedgerSubmission): Promise<void>;
|
|
144
|
+
markResolved(resolvedAtMs?: number): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Re-read the pending nonce from the RPC, update `nonce` in place, and
|
|
147
|
+
* return the new value. Callers use this after a `nonce too low` revert
|
|
148
|
+
* (issue #562) so the next retry attempt picks up the fresh value.
|
|
149
|
+
*/
|
|
150
|
+
refreshNonce(): Promise<number>;
|
|
151
|
+
}
|
|
152
|
+
export interface WithNonceLedgerArgs {
|
|
153
|
+
publicClient: PublicClient;
|
|
154
|
+
walletClient?: TxRecoveryWalletClient;
|
|
155
|
+
ledger?: TxSubmissionLedger;
|
|
156
|
+
from: Address;
|
|
157
|
+
nonce?: number;
|
|
158
|
+
chainId?: number;
|
|
159
|
+
recoverStuckNonce?: boolean;
|
|
160
|
+
staleAfterMs?: number;
|
|
161
|
+
}
|
|
162
|
+
export declare function createMemoryTxSubmissionLedger(): TxSubmissionLedger;
|
|
163
|
+
export declare function setDefaultTxSubmissionLedger(ledger: TxSubmissionLedger): void;
|
|
164
|
+
export declare function getDefaultTxSubmissionLedger(): TxSubmissionLedger;
|
|
31
165
|
export declare function withRecoverableRetry<T>(fn: (attemptIndex: number) => Promise<T>, options?: TxRetryOptions): Promise<T>;
|
|
32
166
|
/**
|
|
33
167
|
* Poll publicClient.getCode until bytecode is present at `address`, or give up.
|
|
@@ -42,27 +176,40 @@ export declare function waitForContractCode(publicClient: PublicClient, address:
|
|
|
42
176
|
baseDelayMs?: number;
|
|
43
177
|
maxDelayMs?: number;
|
|
44
178
|
}): Promise<Hex>;
|
|
179
|
+
export declare function mergeFeeEstimateWithPrevious(current: TxFeeSnapshot, previous?: TxFeeSnapshot | null, attemptIndex?: number): TxFeeSnapshot;
|
|
180
|
+
/**
|
|
181
|
+
* EIP-1559 or legacy gas overrides for viem, increasingly aggressive on later attempts.
|
|
182
|
+
*
|
|
183
|
+
* The result carries both the spreadable viem transaction overrides and the
|
|
184
|
+
* ledger snapshot, keeping call sites from recasting the override object.
|
|
185
|
+
*/
|
|
186
|
+
export declare function viemFeeOverrideResultForAttempt(publicClient: PublicClient, attemptIndex: number, options?: {
|
|
187
|
+
previousFees?: TxFeeSnapshot | null;
|
|
188
|
+
forceEstimate?: boolean;
|
|
189
|
+
}): Promise<TxFeeOverrideResult>;
|
|
45
190
|
/** EIP-1559 or legacy gas overrides for viem, increasingly aggressive on later attempts. */
|
|
46
|
-
export declare function viemFeeOverridesForAttempt(publicClient: PublicClient, attemptIndex: number
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
gasPrice: bigint;
|
|
51
|
-
} | Record<string, never>>;
|
|
191
|
+
export declare function viemFeeOverridesForAttempt(publicClient: PublicClient, attemptIndex: number, options?: {
|
|
192
|
+
previousFees?: TxFeeSnapshot | null;
|
|
193
|
+
forceEstimate?: boolean;
|
|
194
|
+
}): Promise<TxFeeOverrides>;
|
|
52
195
|
export declare function waitForTransactionReceiptWithRetry(publicClient: PublicClient, hash: Hex, options?: TxRetryOptions & {
|
|
53
196
|
pollingInterval?: number;
|
|
54
197
|
confirmations?: number;
|
|
55
198
|
}): Promise<TransactionReceipt>;
|
|
56
|
-
export declare function
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
199
|
+
export declare function removeConflictingLegacyGasPrice<T extends TxFeeSnapshot>(tx: T): void;
|
|
200
|
+
export declare function withNonceLedger<T>(args: WithNonceLedgerArgs, fn: (context: NonceLedgerContext) => Promise<T>): Promise<T>;
|
|
201
|
+
export declare function recoverStuckNonceIfNeeded(args: {
|
|
202
|
+
publicClient: PublicClient;
|
|
203
|
+
walletClient: TxRecoveryWalletClient;
|
|
204
|
+
ledger?: TxSubmissionLedger;
|
|
205
|
+
from: Address;
|
|
206
|
+
chainId?: number;
|
|
207
|
+
staleAfterMs?: number;
|
|
208
|
+
nowMs?: number;
|
|
209
|
+
}): Promise<{
|
|
210
|
+
nonce: number;
|
|
211
|
+
previousHash?: Hex;
|
|
212
|
+
recoveryHash: Hex;
|
|
213
|
+
} | null>;
|
|
214
|
+
export declare function viemSendTransactionWithRetry(walletClient: TxRetryWalletClient, publicClient: PublicClient, txRequest: TxRetryTransactionRequest, options?: TxRetryOptions): Promise<Hex>;
|
|
215
|
+
export {};
|