@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
|
@@ -24,7 +24,7 @@ export declare class ConcurrentTransitionError extends Error {
|
|
|
24
24
|
readonly attemptedNewState: string;
|
|
25
25
|
constructor(requestId: string, expectedState: TaskRunState, attemptedNewState: string);
|
|
26
26
|
}
|
|
27
|
-
export declare const TASK_RUNS_SCHEMA = "\nCREATE TABLE IF NOT EXISTS task_runs (\n request_id TEXT PRIMARY KEY,\n task_id TEXT,\n attempt_index INTEGER,\n task_cid TEXT NOT NULL,\n onchain_creation_tx TEXT NOT NULL,\n onchain_creation_block INTEGER NOT NULL,\n solver_type TEXT,\n task_role TEXT, -- 'restoration' | 'evaluation' | NULL (legacy)\n impl_name TEXT,\n\n state TEXT NOT NULL,\n state_updated_at INTEGER NOT NULL,\n\n working_dir TEXT,\n impl_state_dir TEXT,\n\n window_start_ts INTEGER NOT NULL,\n window_end_ts INTEGER NOT NULL,\n\n pre_snapshot_captured_at INTEGER,\n pre_snapshot_payload TEXT,\n post_snapshot_captured_at INTEGER,\n post_snapshot_payload TEXT,\n fills_payload TEXT,\n gating_claim TEXT,\n informational_claim TEXT,\n\n artifact_cids TEXT,\n manifest_cid TEXT,\n delivery_tx_hash TEXT,\n\n -- Additive columns (schema migration 2026-04-17):\n -- manifest_generated_at: persisted once at first PACKAGING entry; reused on\n -- retry to keep manifest CID deterministic (idempotent PACKAGING).\n -- evidence_hash: keccak256 of the signed manifest canonical JSON; dedicated\n -- column replaces the former _evidenceHash stash in informational_claim.\n manifest_generated_at INTEGER,\n evidence_hash TEXT,\n\n -- Additive column (schema migration 2026-04-17, full Task threading):\n -- task_payload: full Task JSON, captured at observe() time.\n -- NULL for pre-migration rows (legacy fallback in engine consumers).\n task_payload TEXT,\n\n -- Additive column (added by WT-C for PACKAGING recovery fidelity):\n -- solution_outputs_json: serialised Solution persisted before the\n -- RUNNING \u2192 PACKAGING transition. Enables pack() to recover solution outputs\n -- after a crash without re-executing the impl. NULL once pack() succeeds.\n solution_outputs_json TEXT,\n runtime_plugins_json TEXT,\n\n -- Additive columns for ERC-8004 payload v2 (jinn-mono-9fe5):\n -- executor_mode: 'train' | 'frozen', captured by pack() from the freeze-fence\n -- and reused by deliver() to emit a payload v2 setMetadata.\n -- executor_code_digest: sha256:<hex> form, same source.\n -- NULL for pre-migration rows; deliver() falls back to the v1 encoder.\n executor_mode TEXT,\n executor_code_digest TEXT,\n\n failure_reason TEXT,\n failure_at INTEGER\n);\n\nCREATE INDEX IF NOT EXISTS idx_task_runs_state\n ON task_runs(state);\n\nCREATE INDEX IF NOT EXISTS idx_task_runs_window_start_ts\n ON task_runs(window_start_ts);\n";
|
|
27
|
+
export declare const TASK_RUNS_SCHEMA = "\nCREATE TABLE IF NOT EXISTS task_runs (\n request_id TEXT PRIMARY KEY,\n task_id TEXT,\n attempt_index INTEGER,\n task_cid TEXT NOT NULL,\n onchain_creation_tx TEXT NOT NULL,\n onchain_creation_block INTEGER NOT NULL,\n solver_type TEXT,\n task_role TEXT, -- 'restoration' | 'evaluation' | NULL (legacy)\n impl_name TEXT,\n\n state TEXT NOT NULL,\n state_updated_at INTEGER NOT NULL,\n\n working_dir TEXT,\n impl_state_dir TEXT,\n\n window_start_ts INTEGER NOT NULL,\n window_end_ts INTEGER NOT NULL,\n run_started_at INTEGER,\n\n pre_snapshot_captured_at INTEGER,\n pre_snapshot_payload TEXT,\n post_snapshot_captured_at INTEGER,\n post_snapshot_payload TEXT,\n fills_payload TEXT,\n gating_claim TEXT,\n informational_claim TEXT,\n\n artifact_cids TEXT,\n manifest_cid TEXT,\n delivery_tx_hash TEXT,\n\n -- Additive columns (schema migration 2026-04-17):\n -- manifest_generated_at: persisted once at first PACKAGING entry; reused on\n -- retry to keep manifest CID deterministic (idempotent PACKAGING).\n -- evidence_hash: keccak256 of the signed manifest canonical JSON; dedicated\n -- column replaces the former _evidenceHash stash in informational_claim.\n manifest_generated_at INTEGER,\n evidence_hash TEXT,\n\n -- Additive column (schema migration 2026-05-23, in-flight gate fix):\n -- solver_net_manifest_cid: the SolverNet manifest CID this task was\n -- posted under (Task.solverNetManifestCid). Distinct from the artifact\n -- manifest_cid above, which is the PACKAGING output CID. Used by\n -- hasInFlightFor so distinct SolverNets that share the same routing key\n -- (e.g. two SWE-rebench-v2 launches at different manifestCids) each hold\n -- their own in-flight slot.\n solver_net_manifest_cid TEXT,\n\n -- Additive column (schema migration 2026-04-17, full Task threading):\n -- task_payload: full Task JSON, captured at observe() time.\n -- NULL for pre-migration rows (legacy fallback in engine consumers).\n task_payload TEXT,\n\n -- Additive column (added by WT-C for PACKAGING recovery fidelity):\n -- solution_outputs_json: serialised Solution persisted before the\n -- RUNNING \u2192 PACKAGING transition. Enables pack() to recover solution outputs\n -- after a crash without re-executing the impl. NULL once pack() succeeds.\n solution_outputs_json TEXT,\n runtime_plugins_json TEXT,\n\n -- Additive columns for ERC-8004 payload v2 (jinn-mono-9fe5):\n -- executor_mode: 'train' | 'frozen', captured by pack() from the freeze-fence\n -- and reused by deliver() to emit a payload v2 setMetadata.\n -- executor_code_digest: sha256:<hex> form, same source.\n -- NULL for pre-migration rows; deliver() falls back to the v1 encoder.\n executor_mode TEXT,\n executor_code_digest TEXT,\n\n failure_reason TEXT,\n failure_at INTEGER\n);\n\nCREATE INDEX IF NOT EXISTS idx_task_runs_state\n ON task_runs(state);\n\nCREATE INDEX IF NOT EXISTS idx_task_runs_window_start_ts\n ON task_runs(window_start_ts);\n";
|
|
28
28
|
/** Input when first observing an task from an on-chain event. */
|
|
29
29
|
export interface PersistedTaskRunInput {
|
|
30
30
|
requestId: string;
|
|
@@ -38,6 +38,8 @@ export interface PersistedTaskRunInput {
|
|
|
38
38
|
taskRole?: 'restoration' | 'evaluation';
|
|
39
39
|
windowStartTs: number;
|
|
40
40
|
windowEndTs: number;
|
|
41
|
+
/** Unix ms timestamp captured when this operator successfully claimed the run. */
|
|
42
|
+
runStartedAt?: number;
|
|
41
43
|
/**
|
|
42
44
|
* Full Task payload, captured at observe() time.
|
|
43
45
|
* Required: production callers always thread it (daemon.ts); making this
|
|
@@ -56,6 +58,8 @@ export interface PersistedTaskRun {
|
|
|
56
58
|
onchainCreationTx: string;
|
|
57
59
|
onchainCreationBlock: number;
|
|
58
60
|
solverType: string | null;
|
|
61
|
+
/** SolverNet manifest CID this task was posted under; null for legacy rows. */
|
|
62
|
+
solverNetManifestCid: string | null;
|
|
59
63
|
taskRole: 'restoration' | 'evaluation' | null;
|
|
60
64
|
implName: string | null;
|
|
61
65
|
state: TaskRunState;
|
|
@@ -64,6 +68,8 @@ export interface PersistedTaskRun {
|
|
|
64
68
|
implStateDir: string | null;
|
|
65
69
|
windowStartTs: number;
|
|
66
70
|
windowEndTs: number;
|
|
71
|
+
/** Unix ms timestamp captured when this operator successfully claimed the run. */
|
|
72
|
+
runStartedAt: number | null;
|
|
67
73
|
preSnapshotCapturedAt: number | null;
|
|
68
74
|
preSnapshotPayload: unknown | null;
|
|
69
75
|
postSnapshotCapturedAt: number | null;
|
|
@@ -174,10 +180,54 @@ export declare class TaskRunPersistence {
|
|
|
174
180
|
getByState(state: TaskRunState): PersistedTaskRun[];
|
|
175
181
|
/** Fetch all in-flight tasks (not in any terminal state). */
|
|
176
182
|
getInFlight(): PersistedTaskRun[];
|
|
183
|
+
/**
|
|
184
|
+
* Fetch all terminal tasks (COMPLETE or FAILED).
|
|
185
|
+
* Used by the working-dir reaper (issue #320) to decide which on-disk
|
|
186
|
+
* scratch directories are safe to delete.
|
|
187
|
+
*/
|
|
188
|
+
getTerminal(): PersistedTaskRun[];
|
|
189
|
+
/**
|
|
190
|
+
* Atomic snapshot for the working-dir reaper (issue #320): every task run's
|
|
191
|
+
* request ID partitioned into terminal (COMPLETE / FAILED) vs in-flight.
|
|
192
|
+
*
|
|
193
|
+
* The reaper must NOT read in-flight and terminal sets as two separate
|
|
194
|
+
* queries — a task transitioning DELIVERING → COMPLETE between the two reads
|
|
195
|
+
* could be seen by neither (or, worse, classified terminal) and have its
|
|
196
|
+
* working directory deleted while `deliver()` still references files in it.
|
|
197
|
+
* A single `SELECT` is a single statement, so the snapshot is internally
|
|
198
|
+
* consistent: every row is observed at exactly one state.
|
|
199
|
+
*/
|
|
200
|
+
getReaperPartition(): {
|
|
201
|
+
terminal: Set<string>;
|
|
202
|
+
inFlight: Set<string>;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Single-flight gate: is there a non-terminal task_run for the given
|
|
206
|
+
* routing key + role, in the same SolverNet?
|
|
207
|
+
*
|
|
208
|
+
* `manifestCid` scopes the gate to one SolverNet:
|
|
209
|
+
* - When a string is supplied, only rows whose `solver_net_manifest_cid`
|
|
210
|
+
* equals it count. Two distinct SolverNets that happen to share the
|
|
211
|
+
* same `contract.id.version` routing key (e.g. mainline SWE-rebench-v2
|
|
212
|
+
* and an isolated SWE-rebench-v2 launched at a separate manifestCid)
|
|
213
|
+
* each hold their own in-flight slot.
|
|
214
|
+
* - When `null` is supplied, only rows with NULL `solver_net_manifest_cid`
|
|
215
|
+
* count (legacy / health-check tasks form their own bucket).
|
|
216
|
+
* - When omitted (`undefined`), the manifest filter is dropped — the
|
|
217
|
+
* historical routing-key-only behaviour. Production callers always
|
|
218
|
+
* pass an explicit value; this path exists for legacy tests.
|
|
219
|
+
*
|
|
220
|
+
* The bug this fix closes: an operator joined to multiple SolverNets that
|
|
221
|
+
* share the same routing key had ONE in-flight slot across all of them, so
|
|
222
|
+
* a task in SolverNet B was silently rejected with
|
|
223
|
+
* `another <routingKey>/<role> task is already in flight` whenever the
|
|
224
|
+
* operator was busy on SolverNet A.
|
|
225
|
+
*/
|
|
177
226
|
hasInFlightFor(args: {
|
|
178
227
|
solverType: string;
|
|
179
228
|
taskRole: 'restoration' | 'evaluation';
|
|
180
229
|
excludeRequestId?: string;
|
|
230
|
+
manifestCid?: string | null;
|
|
181
231
|
}): boolean;
|
|
182
232
|
/**
|
|
183
233
|
* Persist `deliveryTxHash` without triggering a state transition (state
|
|
@@ -50,6 +50,7 @@ CREATE TABLE IF NOT EXISTS task_runs (
|
|
|
50
50
|
|
|
51
51
|
window_start_ts INTEGER NOT NULL,
|
|
52
52
|
window_end_ts INTEGER NOT NULL,
|
|
53
|
+
run_started_at INTEGER,
|
|
53
54
|
|
|
54
55
|
pre_snapshot_captured_at INTEGER,
|
|
55
56
|
pre_snapshot_payload TEXT,
|
|
@@ -71,6 +72,15 @@ CREATE TABLE IF NOT EXISTS task_runs (
|
|
|
71
72
|
manifest_generated_at INTEGER,
|
|
72
73
|
evidence_hash TEXT,
|
|
73
74
|
|
|
75
|
+
-- Additive column (schema migration 2026-05-23, in-flight gate fix):
|
|
76
|
+
-- solver_net_manifest_cid: the SolverNet manifest CID this task was
|
|
77
|
+
-- posted under (Task.solverNetManifestCid). Distinct from the artifact
|
|
78
|
+
-- manifest_cid above, which is the PACKAGING output CID. Used by
|
|
79
|
+
-- hasInFlightFor so distinct SolverNets that share the same routing key
|
|
80
|
+
-- (e.g. two SWE-rebench-v2 launches at different manifestCids) each hold
|
|
81
|
+
-- their own in-flight slot.
|
|
82
|
+
solver_net_manifest_cid TEXT,
|
|
83
|
+
|
|
74
84
|
-- Additive column (schema migration 2026-04-17, full Task threading):
|
|
75
85
|
-- task_payload: full Task JSON, captured at observe() time.
|
|
76
86
|
-- NULL for pre-migration rows (legacy fallback in engine consumers).
|
|
@@ -121,11 +131,17 @@ function runAdditiveMigrations(db) {
|
|
|
121
131
|
{ column: 'task_role', ddl: 'ALTER TABLE task_runs ADD COLUMN task_role TEXT' },
|
|
122
132
|
{ column: 'task_id', ddl: 'ALTER TABLE task_runs ADD COLUMN task_id TEXT' },
|
|
123
133
|
{ column: 'attempt_index', ddl: 'ALTER TABLE task_runs ADD COLUMN attempt_index INTEGER' },
|
|
134
|
+
{ column: 'run_started_at', ddl: 'ALTER TABLE task_runs ADD COLUMN run_started_at INTEGER' },
|
|
124
135
|
// ERC-8004 payload v2 (jinn-mono-9fe5): persists executor mode + codeDigest
|
|
125
136
|
// from pack() so deliver() can emit a v2 setMetadata payload after the
|
|
126
137
|
// transient maps are cleared.
|
|
127
138
|
{ column: 'executor_mode', ddl: 'ALTER TABLE task_runs ADD COLUMN executor_mode TEXT' },
|
|
128
139
|
{ column: 'executor_code_digest', ddl: 'ALTER TABLE task_runs ADD COLUMN executor_code_digest TEXT' },
|
|
140
|
+
// Per-SolverNet in-flight gate (2026-05-23): distinct SolverNets that
|
|
141
|
+
// share the same `contract.id.version` routing key must each hold their
|
|
142
|
+
// own in-flight slot, otherwise a task in SolverNet B is silently
|
|
143
|
+
// rejected while SolverNet A is busy. See `hasInFlightFor`.
|
|
144
|
+
{ column: 'solver_net_manifest_cid', ddl: 'ALTER TABLE task_runs ADD COLUMN solver_net_manifest_cid TEXT' },
|
|
129
145
|
];
|
|
130
146
|
// Fetch existing column names once so each ALTER is a no-op if the column
|
|
131
147
|
// already exists (avoids duplicate-column-name errors on newer DBs).
|
|
@@ -143,6 +159,28 @@ function runAdditiveMigrations(db) {
|
|
|
143
159
|
throw err;
|
|
144
160
|
}
|
|
145
161
|
}
|
|
162
|
+
// Backfill `solver_net_manifest_cid` from the persisted Task JSON for rows
|
|
163
|
+
// inserted before this column existed. Idempotent: only touches rows where
|
|
164
|
+
// the column is NULL and the JSON path resolves to a string. better-sqlite3
|
|
165
|
+
// ships with the JSON1 extension, so `json_extract` is always available.
|
|
166
|
+
// Failures (e.g. malformed JSON) are non-fatal — the row keeps NULL and
|
|
167
|
+
// legacy behaviour (no per-SolverNet slot) applies for that row.
|
|
168
|
+
try {
|
|
169
|
+
db.exec(`
|
|
170
|
+
UPDATE task_runs
|
|
171
|
+
SET solver_net_manifest_cid = json_extract(task_payload, '$.solverNetManifestCid')
|
|
172
|
+
WHERE solver_net_manifest_cid IS NULL
|
|
173
|
+
AND task_payload IS NOT NULL
|
|
174
|
+
AND json_valid(task_payload) = 1
|
|
175
|
+
AND json_extract(task_payload, '$.solverNetManifestCid') IS NOT NULL
|
|
176
|
+
`);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// Best-effort backfill: a database without JSON1 (very unlikely with
|
|
180
|
+
// better-sqlite3's bundled SQLite) just keeps NULL and reverts to legacy
|
|
181
|
+
// behaviour for those rows. The forward-going `insertDiscovered` path
|
|
182
|
+
// populates the column directly.
|
|
183
|
+
}
|
|
146
184
|
}
|
|
147
185
|
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
148
186
|
function parseJson(raw) {
|
|
@@ -159,6 +197,7 @@ function rowToTaskRun(row) {
|
|
|
159
197
|
onchainCreationTx: row.onchain_creation_tx,
|
|
160
198
|
onchainCreationBlock: row.onchain_creation_block,
|
|
161
199
|
solverType: row.solver_type,
|
|
200
|
+
solverNetManifestCid: row.solver_net_manifest_cid,
|
|
162
201
|
taskRole: (row.task_role ?? null),
|
|
163
202
|
implName: row.impl_name,
|
|
164
203
|
state: row.state,
|
|
@@ -167,6 +206,7 @@ function rowToTaskRun(row) {
|
|
|
167
206
|
implStateDir: row.impl_state_dir,
|
|
168
207
|
windowStartTs: row.window_start_ts,
|
|
169
208
|
windowEndTs: row.window_end_ts,
|
|
209
|
+
runStartedAt: row.run_started_at,
|
|
170
210
|
preSnapshotCapturedAt: row.pre_snapshot_captured_at,
|
|
171
211
|
preSnapshotPayload: parseJson(row.pre_snapshot_payload),
|
|
172
212
|
postSnapshotCapturedAt: row.post_snapshot_captured_at,
|
|
@@ -209,15 +249,16 @@ export class TaskRunPersistence {
|
|
|
209
249
|
* `requestId` already exists, this is a no-op (INSERT OR IGNORE).
|
|
210
250
|
*/
|
|
211
251
|
insertDiscovered(input) {
|
|
252
|
+
const now = Date.now();
|
|
212
253
|
this.db.prepare(`
|
|
213
254
|
INSERT OR IGNORE INTO task_runs (
|
|
214
255
|
request_id, task_id, attempt_index, task_cid, onchain_creation_tx, onchain_creation_block,
|
|
215
|
-
solver_type, task_role, state, state_updated_at, window_start_ts, window_end_ts,
|
|
216
|
-
task_payload
|
|
256
|
+
solver_type, task_role, state, state_updated_at, window_start_ts, window_end_ts, run_started_at,
|
|
257
|
+
task_payload, solver_net_manifest_cid
|
|
217
258
|
) VALUES (
|
|
218
259
|
@requestId, @taskId, @attemptIndex, @taskCid, @onchainCreationTx, @onchainCreationBlock,
|
|
219
|
-
@solverType, @taskRole, 'DISCOVERED', @now, @windowStartTs, @windowEndTs,
|
|
220
|
-
@taskPayload
|
|
260
|
+
@solverType, @taskRole, 'DISCOVERED', @now, @windowStartTs, @windowEndTs, @runStartedAt,
|
|
261
|
+
@taskPayload, @solverNetManifestCid
|
|
221
262
|
)
|
|
222
263
|
`).run({
|
|
223
264
|
requestId: input.requestId,
|
|
@@ -228,10 +269,12 @@ export class TaskRunPersistence {
|
|
|
228
269
|
onchainCreationBlock: input.onchainCreationBlock,
|
|
229
270
|
solverType: input.solverType ?? null,
|
|
230
271
|
taskRole: input.taskRole ?? null,
|
|
231
|
-
now
|
|
272
|
+
now,
|
|
232
273
|
windowStartTs: input.windowStartTs,
|
|
233
274
|
windowEndTs: input.windowEndTs,
|
|
275
|
+
runStartedAt: input.runStartedAt ?? now,
|
|
234
276
|
taskPayload: input.task ? JSON.stringify(input.task) : null,
|
|
277
|
+
solverNetManifestCid: input.task?.solverNetManifestCid ?? null,
|
|
235
278
|
});
|
|
236
279
|
}
|
|
237
280
|
/**
|
|
@@ -376,6 +419,67 @@ export class TaskRunPersistence {
|
|
|
376
419
|
const rows = this.db.prepare(sql).all(...terminalList);
|
|
377
420
|
return rows.map(rowToTaskRun);
|
|
378
421
|
}
|
|
422
|
+
/**
|
|
423
|
+
* Fetch all terminal tasks (COMPLETE or FAILED).
|
|
424
|
+
* Used by the working-dir reaper (issue #320) to decide which on-disk
|
|
425
|
+
* scratch directories are safe to delete.
|
|
426
|
+
*/
|
|
427
|
+
getTerminal() {
|
|
428
|
+
const terminalList = [...TERMINAL_STATES];
|
|
429
|
+
const placeholders = terminalList.map(() => '?').join(', ');
|
|
430
|
+
const sql = `SELECT * FROM task_runs WHERE state IN (${placeholders}) ORDER BY state_updated_at ASC`;
|
|
431
|
+
const rows = this.db.prepare(sql).all(...terminalList);
|
|
432
|
+
return rows.map(rowToTaskRun);
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Atomic snapshot for the working-dir reaper (issue #320): every task run's
|
|
436
|
+
* request ID partitioned into terminal (COMPLETE / FAILED) vs in-flight.
|
|
437
|
+
*
|
|
438
|
+
* The reaper must NOT read in-flight and terminal sets as two separate
|
|
439
|
+
* queries — a task transitioning DELIVERING → COMPLETE between the two reads
|
|
440
|
+
* could be seen by neither (or, worse, classified terminal) and have its
|
|
441
|
+
* working directory deleted while `deliver()` still references files in it.
|
|
442
|
+
* A single `SELECT` is a single statement, so the snapshot is internally
|
|
443
|
+
* consistent: every row is observed at exactly one state.
|
|
444
|
+
*/
|
|
445
|
+
getReaperPartition() {
|
|
446
|
+
const rows = this.db
|
|
447
|
+
.prepare('SELECT request_id, state FROM task_runs')
|
|
448
|
+
.all();
|
|
449
|
+
const terminal = new Set();
|
|
450
|
+
const inFlight = new Set();
|
|
451
|
+
for (const r of rows) {
|
|
452
|
+
if (TERMINAL_STATES.has(r.state)) {
|
|
453
|
+
terminal.add(r.request_id);
|
|
454
|
+
}
|
|
455
|
+
else {
|
|
456
|
+
inFlight.add(r.request_id);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
return { terminal, inFlight };
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Single-flight gate: is there a non-terminal task_run for the given
|
|
463
|
+
* routing key + role, in the same SolverNet?
|
|
464
|
+
*
|
|
465
|
+
* `manifestCid` scopes the gate to one SolverNet:
|
|
466
|
+
* - When a string is supplied, only rows whose `solver_net_manifest_cid`
|
|
467
|
+
* equals it count. Two distinct SolverNets that happen to share the
|
|
468
|
+
* same `contract.id.version` routing key (e.g. mainline SWE-rebench-v2
|
|
469
|
+
* and an isolated SWE-rebench-v2 launched at a separate manifestCid)
|
|
470
|
+
* each hold their own in-flight slot.
|
|
471
|
+
* - When `null` is supplied, only rows with NULL `solver_net_manifest_cid`
|
|
472
|
+
* count (legacy / health-check tasks form their own bucket).
|
|
473
|
+
* - When omitted (`undefined`), the manifest filter is dropped — the
|
|
474
|
+
* historical routing-key-only behaviour. Production callers always
|
|
475
|
+
* pass an explicit value; this path exists for legacy tests.
|
|
476
|
+
*
|
|
477
|
+
* The bug this fix closes: an operator joined to multiple SolverNets that
|
|
478
|
+
* share the same routing key had ONE in-flight slot across all of them, so
|
|
479
|
+
* a task in SolverNet B was silently rejected with
|
|
480
|
+
* `another <routingKey>/<role> task is already in flight` whenever the
|
|
481
|
+
* operator was busy on SolverNet A.
|
|
482
|
+
*/
|
|
379
483
|
hasInFlightFor(args) {
|
|
380
484
|
const terminalList = [...TERMINAL_STATES];
|
|
381
485
|
const placeholders = terminalList.map((_, i) => `@terminal${i}`).join(', ');
|
|
@@ -387,6 +491,14 @@ export class TaskRunPersistence {
|
|
|
387
491
|
terminalList.forEach((state, i) => {
|
|
388
492
|
params[`terminal${i}`] = state;
|
|
389
493
|
});
|
|
494
|
+
let manifestClause = '';
|
|
495
|
+
if (args.manifestCid === null) {
|
|
496
|
+
manifestClause = 'AND solver_net_manifest_cid IS NULL';
|
|
497
|
+
}
|
|
498
|
+
else if (typeof args.manifestCid === 'string') {
|
|
499
|
+
manifestClause = 'AND solver_net_manifest_cid = @manifestCid';
|
|
500
|
+
params['manifestCid'] = args.manifestCid;
|
|
501
|
+
}
|
|
390
502
|
const row = this.db.prepare(`
|
|
391
503
|
SELECT 1
|
|
392
504
|
FROM task_runs
|
|
@@ -394,6 +506,7 @@ export class TaskRunPersistence {
|
|
|
394
506
|
AND COALESCE(task_role, 'restoration') = @taskRole
|
|
395
507
|
AND state NOT IN (${placeholders})
|
|
396
508
|
AND request_id != @excludeRequestId
|
|
509
|
+
${manifestClause}
|
|
397
510
|
LIMIT 1
|
|
398
511
|
`).get(params);
|
|
399
512
|
return row !== undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/harnesses/engine/persistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/harnesses/engine/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Working-directory reaper.
|
|
3
|
+
*
|
|
4
|
+
* The TaskEngine provisions a per-task working directory under
|
|
5
|
+
* `engine.workingDirRoot` (default `~/.jinn-client/engine/work/<requestId>/`).
|
|
6
|
+
* Each one holds heavy scratch — a cloned repo, a per-task plugins copy, a
|
|
7
|
+
* `system_snapshot.tar.gz`, session transcripts and an env directory.
|
|
8
|
+
*
|
|
9
|
+
* Historically nothing ever removed these. A long-lived operator accumulated
|
|
10
|
+
* 412 work dirs / 49 GB with no cleanup (issue #320). The snapshot tarball is
|
|
11
|
+
* uploaded to IPFS at delivery time, so once a task reaches a terminal state
|
|
12
|
+
* (COMPLETE / FAILED) the on-disk working directory is pure dead weight.
|
|
13
|
+
*
|
|
14
|
+
* This module is the single place that decides what may be deleted. It is
|
|
15
|
+
* deliberately conservative:
|
|
16
|
+
*
|
|
17
|
+
* 1. A directory whose requestId is currently in-flight is NEVER removed,
|
|
18
|
+
* regardless of age — the engine still needs it.
|
|
19
|
+
* 2. A directory whose requestId is in a terminal state is removed
|
|
20
|
+
* immediately (its evidence already lives on-chain / on IPFS).
|
|
21
|
+
* 3. A directory with no matching persistence row at all ("orphan" — left
|
|
22
|
+
* by a crash, an older daemon version, or a wiped DB) is removed only
|
|
23
|
+
* once it is older than `orphanMaxAgeMs`, so we never race a task the
|
|
24
|
+
* DB has not observed yet.
|
|
25
|
+
*
|
|
26
|
+
* It is pure I/O over the filesystem plus two caller-supplied id sets, which
|
|
27
|
+
* makes it trivially testable and equally usable from the one-shot cleanup
|
|
28
|
+
* script (`scripts/cleanup-engine-work.ts`).
|
|
29
|
+
*/
|
|
30
|
+
/** Default age before an orphaned (no DB row) work dir is reaped: 24 hours. */
|
|
31
|
+
export declare const DEFAULT_ORPHAN_MAX_AGE_MS: number;
|
|
32
|
+
export interface ReapWorkDirsOptions {
|
|
33
|
+
/** Root that holds per-task working directories (`engine.workingDirRoot`). */
|
|
34
|
+
workingDirRoot: string;
|
|
35
|
+
/** Request IDs whose task run is in a terminal state (COMPLETE / FAILED). */
|
|
36
|
+
terminalRequestIds: ReadonlySet<string>;
|
|
37
|
+
/** Request IDs whose task run is still in-flight — never reaped. */
|
|
38
|
+
inFlightRequestIds: ReadonlySet<string>;
|
|
39
|
+
/**
|
|
40
|
+
* Age above which a directory with no DB row (orphan) is reaped.
|
|
41
|
+
* Defaults to {@link DEFAULT_ORPHAN_MAX_AGE_MS}.
|
|
42
|
+
*/
|
|
43
|
+
orphanMaxAgeMs?: number;
|
|
44
|
+
/** Injectable clock for tests. Defaults to `Date.now`. */
|
|
45
|
+
now?: () => number;
|
|
46
|
+
}
|
|
47
|
+
export interface ReapWorkDirsReport {
|
|
48
|
+
/** Request IDs whose working directory was removed this pass. */
|
|
49
|
+
removed: string[];
|
|
50
|
+
/** Request IDs skipped because the task is still in-flight. */
|
|
51
|
+
protected: string[];
|
|
52
|
+
/** Bytes-freed is not computed (would require a recursive walk); count only. */
|
|
53
|
+
scanned: number;
|
|
54
|
+
/** Non-fatal errors keyed by requestId (e.g. permission denied on rm). */
|
|
55
|
+
errors: Array<{
|
|
56
|
+
requestId: string;
|
|
57
|
+
error: string;
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Sweep `workingDirRoot` once and remove every working directory that is safe
|
|
62
|
+
* to delete. Never throws for a missing root or an individual failed removal —
|
|
63
|
+
* the daemon must keep running even if the disk is wedged.
|
|
64
|
+
*/
|
|
65
|
+
export declare function reapWorkDirs(opts: ReapWorkDirsOptions): ReapWorkDirsReport;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Working-directory reaper.
|
|
3
|
+
*
|
|
4
|
+
* The TaskEngine provisions a per-task working directory under
|
|
5
|
+
* `engine.workingDirRoot` (default `~/.jinn-client/engine/work/<requestId>/`).
|
|
6
|
+
* Each one holds heavy scratch — a cloned repo, a per-task plugins copy, a
|
|
7
|
+
* `system_snapshot.tar.gz`, session transcripts and an env directory.
|
|
8
|
+
*
|
|
9
|
+
* Historically nothing ever removed these. A long-lived operator accumulated
|
|
10
|
+
* 412 work dirs / 49 GB with no cleanup (issue #320). The snapshot tarball is
|
|
11
|
+
* uploaded to IPFS at delivery time, so once a task reaches a terminal state
|
|
12
|
+
* (COMPLETE / FAILED) the on-disk working directory is pure dead weight.
|
|
13
|
+
*
|
|
14
|
+
* This module is the single place that decides what may be deleted. It is
|
|
15
|
+
* deliberately conservative:
|
|
16
|
+
*
|
|
17
|
+
* 1. A directory whose requestId is currently in-flight is NEVER removed,
|
|
18
|
+
* regardless of age — the engine still needs it.
|
|
19
|
+
* 2. A directory whose requestId is in a terminal state is removed
|
|
20
|
+
* immediately (its evidence already lives on-chain / on IPFS).
|
|
21
|
+
* 3. A directory with no matching persistence row at all ("orphan" — left
|
|
22
|
+
* by a crash, an older daemon version, or a wiped DB) is removed only
|
|
23
|
+
* once it is older than `orphanMaxAgeMs`, so we never race a task the
|
|
24
|
+
* DB has not observed yet.
|
|
25
|
+
*
|
|
26
|
+
* It is pure I/O over the filesystem plus two caller-supplied id sets, which
|
|
27
|
+
* makes it trivially testable and equally usable from the one-shot cleanup
|
|
28
|
+
* script (`scripts/cleanup-engine-work.ts`).
|
|
29
|
+
*/
|
|
30
|
+
import { readdirSync, statSync, rmSync } from 'node:fs';
|
|
31
|
+
import { join } from 'node:path';
|
|
32
|
+
/** Default age before an orphaned (no DB row) work dir is reaped: 24 hours. */
|
|
33
|
+
export const DEFAULT_ORPHAN_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
34
|
+
/**
|
|
35
|
+
* Sweep `workingDirRoot` once and remove every working directory that is safe
|
|
36
|
+
* to delete. Never throws for a missing root or an individual failed removal —
|
|
37
|
+
* the daemon must keep running even if the disk is wedged.
|
|
38
|
+
*/
|
|
39
|
+
export function reapWorkDirs(opts) {
|
|
40
|
+
const now = opts.now ?? Date.now;
|
|
41
|
+
const orphanMaxAgeMs = opts.orphanMaxAgeMs ?? DEFAULT_ORPHAN_MAX_AGE_MS;
|
|
42
|
+
const report = {
|
|
43
|
+
removed: [],
|
|
44
|
+
protected: [],
|
|
45
|
+
scanned: 0,
|
|
46
|
+
errors: [],
|
|
47
|
+
};
|
|
48
|
+
let entries;
|
|
49
|
+
try {
|
|
50
|
+
entries = readdirSync(opts.workingDirRoot);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Root does not exist yet (no task ever ran) — nothing to do.
|
|
54
|
+
return report;
|
|
55
|
+
}
|
|
56
|
+
for (const requestId of entries) {
|
|
57
|
+
const dir = join(opts.workingDirRoot, requestId);
|
|
58
|
+
let isDir = false;
|
|
59
|
+
// Age orphans off mtime, not birthtime: a dir with a live writer keeps
|
|
60
|
+
// bumping mtime, so it stays "fresh" and is never reaped — which is what
|
|
61
|
+
// we want, since a continuously-written orphan has a running task whose
|
|
62
|
+
// DB row was lost. birthtime would reap it out from under that task.
|
|
63
|
+
let mtimeMs = 0;
|
|
64
|
+
try {
|
|
65
|
+
const st = statSync(dir);
|
|
66
|
+
isDir = st.isDirectory();
|
|
67
|
+
mtimeMs = st.mtimeMs;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
continue; // vanished between readdir and stat — fine.
|
|
71
|
+
}
|
|
72
|
+
if (!isDir)
|
|
73
|
+
continue;
|
|
74
|
+
report.scanned += 1;
|
|
75
|
+
// (1) Never touch an in-flight task's directory.
|
|
76
|
+
if (opts.inFlightRequestIds.has(requestId)) {
|
|
77
|
+
report.protected.push(requestId);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// (2) Terminal task — safe to remove immediately.
|
|
81
|
+
// (3) Orphan (no DB row) — remove only once past the max age.
|
|
82
|
+
const isTerminal = opts.terminalRequestIds.has(requestId);
|
|
83
|
+
const isOrphan = !isTerminal; // not in-flight, not terminal → no row
|
|
84
|
+
if (isOrphan && now() - mtimeMs < orphanMaxAgeMs) {
|
|
85
|
+
continue; // young orphan — give the DB a chance to catch up.
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
rmSync(dir, { recursive: true, force: true });
|
|
89
|
+
report.removed.push(requestId);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
report.errors.push({
|
|
93
|
+
requestId,
|
|
94
|
+
error: err instanceof Error ? err.message : String(err),
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return report;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=work-dir-reaper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-dir-reaper.js","sourceRoot":"","sources":["../../../src/harnesses/engine/work-dir-reaper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AA6B7D;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAyB;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,yBAAyB,CAAC;IACxE,MAAM,MAAM,GAAuB;QACjC,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzB,KAAK,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,4CAA4C;QACxD,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QAEpB,iDAAiD;QACjD,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,kDAAkD;QAClD,8DAA8D;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,uCAAuC;QACrE,IAAI,QAAQ,IAAI,GAAG,EAAE,GAAG,OAAO,GAAG,cAAc,EAAE,CAAC;YACjD,SAAS,CAAC,mDAAmD;QAC/D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,SAAS;gBACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -12,6 +12,35 @@ const ENV_ALLOWLIST = [
|
|
|
12
12
|
'XDG_CONFIG_HOME', 'XDG_DATA_HOME', 'XDG_CACHE_HOME',
|
|
13
13
|
'NODE_PATH', 'NODE_OPTIONS', 'NPM_CONFIG_PREFIX',
|
|
14
14
|
];
|
|
15
|
+
/**
|
|
16
|
+
* Pattern allowlist for provider credentials.
|
|
17
|
+
*
|
|
18
|
+
* Without this passthrough, `hermes chat` spawns with a stripped env, hits
|
|
19
|
+
* "Provider resolver returned an empty API key" and exits 1 ~14s after
|
|
20
|
+
* launching (after plugin discovery + MCP registration but before the first
|
|
21
|
+
* model call). The per-Task `.env` merge in `bootstrap.ts` only catches
|
|
22
|
+
* operator API keys that live in `$HERMES_HOME/.env`; daemons launched with
|
|
23
|
+
* `set -a; . <somewhere>/.env; set +a` (the substrate / eng-loop pattern,
|
|
24
|
+
* and any operator who keeps their key in shell env instead of
|
|
25
|
+
* `~/.hermes/.env`) have the key in `process.env` but NOT in the per-Task
|
|
26
|
+
* `.env`. Passing those through is the canonical path for shell-supplied
|
|
27
|
+
* credentials and matches what `hermes doctor` / `hermes auth list` (which
|
|
28
|
+
* the readiness probe shells out to) already see.
|
|
29
|
+
*
|
|
30
|
+
* Pattern is intentionally broad: any env var ending in `_API_KEY`,
|
|
31
|
+
* `_API_TOKEN`, or `_TOKEN` is treated as a provider credential. Hermes
|
|
32
|
+
* itself reads these by name (e.g. `OPENROUTER_API_KEY`, `ANTHROPIC_API_KEY`,
|
|
33
|
+
* `GOOGLE_API_KEY`, `XAI_API_KEY`, `GROQ_API_KEY`, …). Plus an explicit
|
|
34
|
+
* carve-out for `OPENAI_API_KEY` (canonical OpenAI name doesn't end in
|
|
35
|
+
* `_API_KEY` in some lists) and any `HERMES_*` knob the operator may have
|
|
36
|
+
* set (e.g. `HERMES_ACCEPT_HOOKS`).
|
|
37
|
+
*/
|
|
38
|
+
const ENV_PATTERN_ALLOWLIST = [
|
|
39
|
+
/_API_KEY$/,
|
|
40
|
+
/_API_TOKEN$/,
|
|
41
|
+
/_TOKEN$/,
|
|
42
|
+
/^HERMES_/,
|
|
43
|
+
];
|
|
15
44
|
/**
|
|
16
45
|
* Detects OpenRouter-style `<org>/<model>` model ids so the adapter can default
|
|
17
46
|
* `--provider openrouter` for the catalog entries shipped in `HERMES_MODELS`.
|
|
@@ -35,6 +64,17 @@ function buildAgentEnv(extra) {
|
|
|
35
64
|
if (process.env[key])
|
|
36
65
|
env[key] = process.env[key];
|
|
37
66
|
}
|
|
67
|
+
// Pattern passthrough — provider credentials supplied via the operator's
|
|
68
|
+
// shell env (e.g. `set -a; . client/.env; set +a`) must reach `hermes chat`
|
|
69
|
+
// or it dies at first model call with "empty API key" / exit 1. See the
|
|
70
|
+
// ENV_PATTERN_ALLOWLIST docstring above.
|
|
71
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
72
|
+
if (value == null || key in env)
|
|
73
|
+
continue;
|
|
74
|
+
if (ENV_PATTERN_ALLOWLIST.some((re) => re.test(key))) {
|
|
75
|
+
env[key] = value;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
38
78
|
return { ...env, ...extra };
|
|
39
79
|
}
|
|
40
80
|
export class HermesHarnessAdapter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/harnesses/impls/hermes-agent/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/harnesses/impls/hermes-agent/adapter.ts"],"names":[],"mappings":"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"}
|