@jinn-network/client 0.1.6 → 0.1.7-canary.0a586ca9
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 +57 -2
- package/dist/adapters/mech/adapter.js +366 -63
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +17 -4
- package/dist/adapters/mech/contracts.js +19 -4
- 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/agent/operator-claude.js +8 -0
- package/dist/agent/operator-claude.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 +85 -18
- package/dist/api/bootstrap-endpoint.js.map +1 -1
- package/dist/api/codex-doctor-endpoint.d.ts +90 -0
- package/dist/api/codex-doctor-endpoint.js +296 -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 +37 -0
- package/dist/api/gather-status.js +572 -19
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/hermes-doctor-endpoint.d.ts +128 -3
- package/dist/api/hermes-doctor-endpoint.js +265 -22
- package/dist/api/hermes-doctor-endpoint.js.map +1 -1
- package/dist/api/launcher-status.d.ts +24 -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/operator-artifacts-endpoint.js +73 -6
- package/dist/api/operator-artifacts-endpoint.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 +95 -2
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +7 -0
- package/dist/api/setup-endpoints.js +67 -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 +100 -105
- package/dist/api/solvernets-endpoints.js.map +1 -1
- package/dist/api/status-build.d.ts +167 -2
- package/dist/api/status-build.js +118 -27
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-harness-rollup.d.ts +35 -0
- package/dist/api/status-harness-rollup.js +45 -0
- package/dist/api/status-harness-rollup.js.map +1 -0
- 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/captures/live-publisher.js +24 -4
- package/dist/captures/live-publisher.js.map +1 -1
- package/dist/captures/publish.d.ts +1 -1
- package/dist/chain-read-errors.d.ts +22 -0
- package/dist/chain-read-errors.js +41 -1
- 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/codedigest-revert-check.d.ts +33 -0
- package/dist/cli/commands/codedigest-revert-check.js +249 -0
- package/dist/cli/commands/codedigest-revert-check.js.map +1 -0
- 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.d.ts +1 -0
- package/dist/cli/commands/solver-nets.js +179 -16
- 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/index.js +2 -0
- package/dist/cli/index.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 +287 -235
- package/dist/config.js +318 -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 +20 -3
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +22 -0
- package/dist/daemon/daemon.js +174 -31
- 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-BNs_ewI6.js +345 -0
- package/dist/dashboard/assets/index-C4huIsUW.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 +469 -3
- package/dist/discovery/http.js.map +1 -1
- package/dist/discovery/onchain.d.ts +5 -0
- package/dist/discovery/onchain.js +448 -18
- package/dist/discovery/onchain.js.map +1 -1
- package/dist/discovery/types.d.ts +174 -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 +37 -0
- package/dist/discovery/with-fallback.js.map +1 -1
- package/dist/earning/bootstrap.d.ts +100 -4
- package/dist/earning/bootstrap.js +239 -76
- 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/identity.d.ts +19 -3
- package/dist/erc8004/identity.js +21 -6
- package/dist/erc8004/identity.js.map +1 -1
- package/dist/erc8004/index.d.ts +1 -1
- package/dist/erc8004/index.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 +124 -0
- package/dist/harnesses/cost-estimates.js +265 -0
- package/dist/harnesses/cost-estimates.js.map +1 -0
- package/dist/harnesses/engine/engine.d.ts +78 -0
- package/dist/harnesses/engine/engine.js +153 -11
- 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 +44 -8
- package/dist/harnesses/impls/hermes-agent/bootstrap.js.map +1 -1
- package/dist/harnesses/impls/hermes-agent/config-builder.d.ts +1 -1
- package/dist/harnesses/impls/hermes-agent/config-builder.js +4 -2
- package/dist/harnesses/impls/hermes-agent/config-builder.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/hermes-agent/prompt.d.ts +6 -6
- package/dist/harnesses/impls/hermes-agent/prompt.js +6 -6
- 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/adapters/codex-code.d.ts +9 -0
- package/dist/harnesses/impls/learner/adapters/codex-code.js +30 -8
- package/dist/harnesses/impls/learner/adapters/codex-code.js.map +1 -1
- package/dist/harnesses/impls/learner/harness.d.ts +47 -4
- package/dist/harnesses/impls/learner/harness.js +105 -2
- package/dist/harnesses/impls/learner/harness.js.map +1 -1
- package/dist/harnesses/impls/learner/harvest.d.ts +1 -1
- package/dist/harnesses/impls/learner/harvest.js +23 -5
- package/dist/harnesses/impls/learner/harvest.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/restoration-patch.d.ts +2 -2
- package/dist/harnesses/impls/learner/restoration-patch.js +25 -6
- package/dist/harnesses/impls/learner/restoration-patch.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 +199 -94
- 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.d.ts +7 -0
- package/dist/harnesses/readiness-registry.js +18 -1
- package/dist/harnesses/readiness-registry.js.map +1 -1
- package/dist/learner/revert-decision.d.ts +59 -0
- package/dist/learner/revert-decision.js +53 -0
- package/dist/learner/revert-decision.js.map +1 -0
- package/dist/learner/revert-stats.d.ts +24 -0
- package/dist/learner/revert-stats.js +44 -0
- package/dist/learner/revert-stats.js.map +1 -0
- package/dist/main.js +470 -142
- package/dist/main.js.map +1 -1
- package/dist/mcp/get-codedigest-reward.d.ts +13 -0
- package/dist/mcp/get-codedigest-reward.js +23 -0
- package/dist/mcp/get-codedigest-reward.js.map +1 -0
- package/dist/mcp/server.js +23 -0
- package/dist/mcp/server.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 +111 -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 +184 -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/pidfile-liveness.d.ts +44 -0
- package/dist/preflight/pidfile-liveness.js +103 -0
- package/dist/preflight/pidfile-liveness.js.map +1 -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/scripts/swe-rebench-v2-pytest-missing.json +16 -0
- 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-state.d.ts +15 -0
- package/dist/solver-types/_swe-rebench-v2-state.js +19 -0
- package/dist/solver-types/_swe-rebench-v2-state.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 +145 -2
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js +482 -44
- package/dist/solver-types/_swe-rebench-v2-validated-pool.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2-auto.d.ts +38 -14
- package/dist/solver-types/swe-rebench-v2-auto.js +87 -28
- package/dist/solver-types/swe-rebench-v2-auto.js.map +1 -1
- package/dist/solver-types/swe-rebench-v2.d.ts +19 -2
- package/dist/solver-types/swe-rebench-v2.js +351 -96
- 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.d.ts +4 -0
- package/dist/solvernets/launched-record-dispatcher.js +41 -7
- package/dist/solvernets/launched-record-dispatcher.js.map +1 -1
- package/dist/solvernets/registry-client-erc8004.js +11 -0
- package/dist/solvernets/registry-client-erc8004.js.map +1 -1
- package/dist/solvernets/store.d.ts +7 -2
- package/dist/solvernets/store.js +1 -0
- package/dist/solvernets/store.js.map +1 -1
- package/dist/spend/cost-surface-status.d.ts +10 -0
- package/dist/spend/cost-surface-status.js +22 -0
- package/dist/spend/cost-surface-status.js.map +1 -0
- 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 +61 -0
- package/dist/store/store.js +302 -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/codex-session.d.ts +12 -6
- package/dist/trajectory/transcript-parsers/codex-session.js +114 -13
- package/dist/trajectory/transcript-parsers/codex-session.js.map +1 -1
- package/dist/trajectory/transcript-parsers/types.d.ts +8 -8
- package/dist/trajectory/transcript-session-dirs.d.ts +18 -0
- package/dist/trajectory/transcript-session-dirs.js +85 -0
- package/dist/trajectory/transcript-session-dirs.js.map +1 -0
- package/dist/trajectory/transcript-watcher.d.ts +20 -1
- package/dist/trajectory/transcript-watcher.js +98 -32
- package/dist/trajectory/transcript-watcher.js.map +1 -1
- 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/portfolio-v0.d.ts +3 -3
- package/dist/types/payloads/prediction-apy-v0.d.ts +8 -8
- package/dist/types/payloads/prediction-v0.d.ts +17 -17
- 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 +37 -13
- package/plugins/learner/skills/learn/consolidator-prompt.md +18 -1
- package/plugins/learner/skills/learn/promoter-prompt.md +72 -1
- package/plugins/swe-rebench-v2-diffmin/README.md +10 -9
- package/plugins/swe-rebench-v2-diffmin/jinn.plugin.json +1 -1
- package/plugins/swe-rebench-v2-diffmin/skills/diffmin/SKILL.md +15 -10
- package/plugins/swe-rebench-v2-diffmin/skills/test-map/SKILL.md +10 -12
- package/plugins/swe-rebench-v2-runtime/.claude-plugin/plugin.json +1 -1
- package/plugins/swe-rebench-v2-runtime/.codex-plugin/plugin.json +3 -3
- package/plugins/swe-rebench-v2-runtime/README.md +6 -6
- package/plugins/swe-rebench-v2-runtime/jinn.plugin.json +2 -3
- package/plugins/swe-rebench-v2-runtime/skills/task/SKILL.md +69 -0
- package/dist/dashboard/assets/index-DOlzFN8a.css +0 -32
- package/dist/dashboard/assets/index-NkZ7CTAT.js +0 -140
- package/plugins/swe-rebench-v2-runtime/skills/orient/SKILL.md +0 -29
- package/plugins/swe-rebench-v2-runtime/skills/plan/SKILL.md +0 -53
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"}
|
|
@@ -9,21 +9,24 @@
|
|
|
9
9
|
* a top-level function_call field)
|
|
10
10
|
* - role: 'tool' with content → tool-result
|
|
11
11
|
*
|
|
12
|
+
* Codex CLI 0.129.0+ wraps each line as `{ timestamp, type, payload }` where
|
|
13
|
+
* `type` is `session_meta`, `turn_context`, `response_item`, or `event_msg`.
|
|
14
|
+
* Tool calls and messages live inside `payload` (e.g. `function_call`,
|
|
15
|
+
* `function_call_output`, `message` with `input_text` / `output_text` blocks).
|
|
16
|
+
* Older sessions use a flat per-line shape with `role` at the top level; both
|
|
17
|
+
* are detected by record shape.
|
|
18
|
+
*
|
|
12
19
|
* `parseChunk` preserves any incomplete trailing line across calls so the
|
|
13
20
|
* watcher (Task 3.9) can stream tail bytes without losing partial records.
|
|
14
21
|
*
|
|
15
|
-
* Codex CLI versions vary in their on-disk shape; this parser follows a
|
|
16
|
-
* defensible best-effort: timestamps are read from `ts` (or `timestamp`),
|
|
17
|
-
* function-call arguments are JSON-decoded best-effort, and tool-results
|
|
18
|
-
* carry the call's `name` (or `tool_call_id` as a fallback) so downstream
|
|
19
|
-
* consumers always see a stable identifier even if it is opaque.
|
|
20
|
-
*
|
|
21
22
|
* Spec: spec/2026-05-07-telemetry-collector-and-task-generator.md §4.2 path B.
|
|
22
23
|
*/
|
|
23
24
|
import type { TranscriptEvent, TranscriptParser } from './types.js';
|
|
24
25
|
export declare class CodexSessionParser implements TranscriptParser {
|
|
25
26
|
readonly tool: "codex";
|
|
26
27
|
private buffer;
|
|
28
|
+
/** Maps function_call `call_id` → tool name for function_call_output rows. */
|
|
29
|
+
private callNames;
|
|
27
30
|
parseChunk(input: {
|
|
28
31
|
sessionId: string;
|
|
29
32
|
chunk: Buffer | string;
|
|
@@ -32,5 +35,8 @@ export declare class CodexSessionParser implements TranscriptParser {
|
|
|
32
35
|
sessionId: string;
|
|
33
36
|
path: string;
|
|
34
37
|
}): Promise<TranscriptEvent[]>;
|
|
38
|
+
private lineToEvents;
|
|
39
|
+
private wrappedEnvelopeToEvents;
|
|
40
|
+
private responseItemToEvents;
|
|
35
41
|
private recordToEvents;
|
|
36
42
|
}
|
|
@@ -9,21 +9,24 @@
|
|
|
9
9
|
* a top-level function_call field)
|
|
10
10
|
* - role: 'tool' with content → tool-result
|
|
11
11
|
*
|
|
12
|
+
* Codex CLI 0.129.0+ wraps each line as `{ timestamp, type, payload }` where
|
|
13
|
+
* `type` is `session_meta`, `turn_context`, `response_item`, or `event_msg`.
|
|
14
|
+
* Tool calls and messages live inside `payload` (e.g. `function_call`,
|
|
15
|
+
* `function_call_output`, `message` with `input_text` / `output_text` blocks).
|
|
16
|
+
* Older sessions use a flat per-line shape with `role` at the top level; both
|
|
17
|
+
* are detected by record shape.
|
|
18
|
+
*
|
|
12
19
|
* `parseChunk` preserves any incomplete trailing line across calls so the
|
|
13
20
|
* watcher (Task 3.9) can stream tail bytes without losing partial records.
|
|
14
21
|
*
|
|
15
|
-
* Codex CLI versions vary in their on-disk shape; this parser follows a
|
|
16
|
-
* defensible best-effort: timestamps are read from `ts` (or `timestamp`),
|
|
17
|
-
* function-call arguments are JSON-decoded best-effort, and tool-results
|
|
18
|
-
* carry the call's `name` (or `tool_call_id` as a fallback) so downstream
|
|
19
|
-
* consumers always see a stable identifier even if it is opaque.
|
|
20
|
-
*
|
|
21
22
|
* Spec: spec/2026-05-07-telemetry-collector-and-task-generator.md §4.2 path B.
|
|
22
23
|
*/
|
|
23
24
|
import { readFile } from 'node:fs/promises';
|
|
24
25
|
export class CodexSessionParser {
|
|
25
26
|
tool = 'codex';
|
|
26
27
|
buffer = '';
|
|
28
|
+
/** Maps function_call `call_id` → tool name for function_call_output rows. */
|
|
29
|
+
callNames = new Map();
|
|
27
30
|
parseChunk(input) {
|
|
28
31
|
const text = typeof input.chunk === 'string' ? input.chunk : input.chunk.toString('utf-8');
|
|
29
32
|
this.buffer += text;
|
|
@@ -33,14 +36,14 @@ export class CodexSessionParser {
|
|
|
33
36
|
for (const line of lines) {
|
|
34
37
|
if (!line.trim())
|
|
35
38
|
continue;
|
|
36
|
-
let
|
|
39
|
+
let raw;
|
|
37
40
|
try {
|
|
38
|
-
|
|
41
|
+
raw = JSON.parse(line);
|
|
39
42
|
}
|
|
40
43
|
catch {
|
|
41
44
|
continue;
|
|
42
45
|
}
|
|
43
|
-
events.push(...this.
|
|
46
|
+
events.push(...this.lineToEvents(raw));
|
|
44
47
|
}
|
|
45
48
|
return events;
|
|
46
49
|
}
|
|
@@ -48,13 +51,83 @@ export class CodexSessionParser {
|
|
|
48
51
|
const text = await readFile(input.path, 'utf-8');
|
|
49
52
|
const normalised = text.endsWith('\n') ? text : text + '\n';
|
|
50
53
|
const previousBuffer = this.buffer;
|
|
54
|
+
const previousCallNames = new Map(this.callNames);
|
|
51
55
|
this.buffer = '';
|
|
56
|
+
this.callNames.clear();
|
|
52
57
|
try {
|
|
53
58
|
return this.parseChunk({ sessionId: input.sessionId, chunk: normalised });
|
|
54
59
|
}
|
|
55
60
|
finally {
|
|
56
61
|
this.buffer = previousBuffer;
|
|
62
|
+
this.callNames = previousCallNames;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
lineToEvents(raw) {
|
|
66
|
+
if (!raw || typeof raw !== 'object')
|
|
67
|
+
return [];
|
|
68
|
+
if (isWrappedEnvelope(raw)) {
|
|
69
|
+
return this.wrappedEnvelopeToEvents(raw);
|
|
57
70
|
}
|
|
71
|
+
return this.recordToEvents(raw);
|
|
72
|
+
}
|
|
73
|
+
wrappedEnvelopeToEvents(envelope) {
|
|
74
|
+
const ts = envelope.timestamp;
|
|
75
|
+
if (typeof ts !== 'string')
|
|
76
|
+
return [];
|
|
77
|
+
const payload = envelope.payload;
|
|
78
|
+
if (!payload || typeof payload !== 'object')
|
|
79
|
+
return [];
|
|
80
|
+
if (envelope.type === 'response_item') {
|
|
81
|
+
return this.responseItemToEvents(ts, payload);
|
|
82
|
+
}
|
|
83
|
+
// `event_msg` rows (user_message, agent_message, mcp_tool_call_end) duplicate
|
|
84
|
+
// `response_item` message/tool rows — skip them to avoid double-counting.
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
responseItemToEvents(ts, payload) {
|
|
88
|
+
const itemType = payload.type;
|
|
89
|
+
if (itemType === 'function_call') {
|
|
90
|
+
const name = payload.name;
|
|
91
|
+
if (typeof name !== 'string')
|
|
92
|
+
return [];
|
|
93
|
+
const callId = payload.call_id;
|
|
94
|
+
if (typeof callId === 'string') {
|
|
95
|
+
this.callNames.set(callId, name);
|
|
96
|
+
}
|
|
97
|
+
return [
|
|
98
|
+
{
|
|
99
|
+
kind: 'tool-call',
|
|
100
|
+
timestamp: ts,
|
|
101
|
+
name,
|
|
102
|
+
args: parseArgs(payload.arguments),
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
}
|
|
106
|
+
if (itemType === 'function_call_output') {
|
|
107
|
+
const output = payload.output;
|
|
108
|
+
const content = typeof output === 'string' ? output : stringifyContent(output);
|
|
109
|
+
if (!content)
|
|
110
|
+
return [];
|
|
111
|
+
const callId = payload.call_id;
|
|
112
|
+
const name = (typeof callId === 'string' ? this.callNames.get(callId) : undefined) ??
|
|
113
|
+
(typeof callId === 'string' ? callId : undefined);
|
|
114
|
+
if (typeof name !== 'string')
|
|
115
|
+
return [];
|
|
116
|
+
return [{ kind: 'tool-result', timestamp: ts, name, content, isError: false }];
|
|
117
|
+
}
|
|
118
|
+
if (itemType === 'message') {
|
|
119
|
+
const role = payload.role;
|
|
120
|
+
const text = extractMessageText(payload.content);
|
|
121
|
+
if (!text)
|
|
122
|
+
return [];
|
|
123
|
+
if (role === 'user') {
|
|
124
|
+
return [{ kind: 'user-message', timestamp: ts, content: text }];
|
|
125
|
+
}
|
|
126
|
+
if (role === 'assistant') {
|
|
127
|
+
return [{ kind: 'assistant-message', timestamp: ts, content: text }];
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return [];
|
|
58
131
|
}
|
|
59
132
|
recordToEvents(record) {
|
|
60
133
|
if (!record || typeof record !== 'object')
|
|
@@ -79,14 +152,16 @@ export class CodexSessionParser {
|
|
|
79
152
|
}
|
|
80
153
|
}
|
|
81
154
|
if (role === 'user') {
|
|
82
|
-
|
|
83
|
-
|
|
155
|
+
const text = extractMessageText(record.content);
|
|
156
|
+
if (text) {
|
|
157
|
+
return [{ kind: 'user-message', timestamp: ts, content: text }];
|
|
84
158
|
}
|
|
85
159
|
return [];
|
|
86
160
|
}
|
|
87
161
|
if (role === 'assistant') {
|
|
88
|
-
|
|
89
|
-
|
|
162
|
+
const text = extractMessageText(record.content);
|
|
163
|
+
if (text) {
|
|
164
|
+
return [{ kind: 'assistant-message', timestamp: ts, content: text }];
|
|
90
165
|
}
|
|
91
166
|
return [];
|
|
92
167
|
}
|
|
@@ -105,6 +180,32 @@ export class CodexSessionParser {
|
|
|
105
180
|
return [];
|
|
106
181
|
}
|
|
107
182
|
}
|
|
183
|
+
function isWrappedEnvelope(raw) {
|
|
184
|
+
const rec = raw;
|
|
185
|
+
return (typeof rec.type === 'string' &&
|
|
186
|
+
rec.payload !== undefined &&
|
|
187
|
+
rec.payload !== null &&
|
|
188
|
+
typeof rec.payload === 'object' &&
|
|
189
|
+
!('role' in rec));
|
|
190
|
+
}
|
|
191
|
+
function extractMessageText(content) {
|
|
192
|
+
if (typeof content === 'string')
|
|
193
|
+
return content;
|
|
194
|
+
if (!Array.isArray(content))
|
|
195
|
+
return null;
|
|
196
|
+
const parts = [];
|
|
197
|
+
for (const block of content) {
|
|
198
|
+
if (!block || typeof block !== 'object')
|
|
199
|
+
continue;
|
|
200
|
+
const b = block;
|
|
201
|
+
const blockType = b.type;
|
|
202
|
+
if ((blockType === 'input_text' || blockType === 'output_text') &&
|
|
203
|
+
typeof b.text === 'string') {
|
|
204
|
+
parts.push(b.text);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return parts.length > 0 ? parts.join('\n') : null;
|
|
208
|
+
}
|
|
108
209
|
function parseArgs(raw) {
|
|
109
210
|
if (!raw)
|
|
110
211
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-session.js","sourceRoot":"","sources":["../../../src/trajectory/transcript-parsers/codex-session.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codex-session.js","sourceRoot":"","sources":["../../../src/trajectory/transcript-parsers/codex-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -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">;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard per-tool session transcript directories for Path B tail watching.
|
|
3
|
+
*
|
|
4
|
+
* Spec: spec/2026-05-07-telemetry-collector-and-task-generator.md §4.2 path B.
|
|
5
|
+
*/
|
|
6
|
+
import type { WatchedDirectory } from './transcript-watcher.js';
|
|
7
|
+
export declare function resolveCodexHomeDir(): string;
|
|
8
|
+
export declare function resolveCodexSessionsDir(): string;
|
|
9
|
+
export declare function resolveClaudeProjectsDir(): string;
|
|
10
|
+
export declare function sessionIdFromJsonlPath(filePath: string): string;
|
|
11
|
+
/** Lists `*.jsonl` session files under `directory` (flat or recursive). */
|
|
12
|
+
export declare function listSessionJsonlFiles(directory: string, recursive: boolean): Promise<string[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Default Path-B directories for tools that write session JSONL to well-known
|
|
15
|
+
* locations. Missing directories are omitted so a fresh operator machine does
|
|
16
|
+
* not fail daemon startup.
|
|
17
|
+
*/
|
|
18
|
+
export declare function defaultTranscriptWatchDirectories(): WatchedDirectory[];
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard per-tool session transcript directories for Path B tail watching.
|
|
3
|
+
*
|
|
4
|
+
* Spec: spec/2026-05-07-telemetry-collector-and-task-generator.md §4.2 path B.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync } from 'node:fs';
|
|
7
|
+
import { readdir } from 'node:fs/promises';
|
|
8
|
+
import { homedir } from 'node:os';
|
|
9
|
+
import { basename, join } from 'node:path';
|
|
10
|
+
export function resolveCodexHomeDir() {
|
|
11
|
+
return process.env['CODEX_HOME']?.trim() || join(homedir(), '.codex');
|
|
12
|
+
}
|
|
13
|
+
export function resolveCodexSessionsDir() {
|
|
14
|
+
return join(resolveCodexHomeDir(), 'sessions');
|
|
15
|
+
}
|
|
16
|
+
export function resolveClaudeProjectsDir() {
|
|
17
|
+
return join(homedir(), '.claude', 'projects');
|
|
18
|
+
}
|
|
19
|
+
export function sessionIdFromJsonlPath(filePath) {
|
|
20
|
+
const name = basename(filePath);
|
|
21
|
+
return name.endsWith('.jsonl') ? name.slice(0, -'.jsonl'.length) : name;
|
|
22
|
+
}
|
|
23
|
+
async function listJsonlFilesRecursive(dir) {
|
|
24
|
+
let entries;
|
|
25
|
+
try {
|
|
26
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
const out = [];
|
|
32
|
+
for (const entry of entries) {
|
|
33
|
+
const full = join(dir, entry.name);
|
|
34
|
+
if (entry.isDirectory()) {
|
|
35
|
+
out.push(...(await listJsonlFilesRecursive(full)));
|
|
36
|
+
}
|
|
37
|
+
else if (entry.isFile() && entry.name.endsWith('.jsonl')) {
|
|
38
|
+
out.push(full);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
/** Lists `*.jsonl` session files under `directory` (flat or recursive). */
|
|
44
|
+
export async function listSessionJsonlFiles(directory, recursive) {
|
|
45
|
+
if (recursive) {
|
|
46
|
+
return listJsonlFilesRecursive(directory);
|
|
47
|
+
}
|
|
48
|
+
let entries;
|
|
49
|
+
try {
|
|
50
|
+
entries = await readdir(directory, { withFileTypes: true });
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
return entries
|
|
56
|
+
.filter((e) => e.isFile() && e.name.endsWith('.jsonl'))
|
|
57
|
+
.map((e) => join(directory, e.name));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Default Path-B directories for tools that write session JSONL to well-known
|
|
61
|
+
* locations. Missing directories are omitted so a fresh operator machine does
|
|
62
|
+
* not fail daemon startup.
|
|
63
|
+
*/
|
|
64
|
+
export function defaultTranscriptWatchDirectories() {
|
|
65
|
+
const dirs = [];
|
|
66
|
+
const codexSessions = resolveCodexSessionsDir();
|
|
67
|
+
if (existsSync(codexSessions)) {
|
|
68
|
+
dirs.push({
|
|
69
|
+
tool: 'codex',
|
|
70
|
+
directory: codexSessions,
|
|
71
|
+
sessionIdFromPath: sessionIdFromJsonlPath,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const claudeProjects = resolveClaudeProjectsDir();
|
|
75
|
+
if (existsSync(claudeProjects)) {
|
|
76
|
+
dirs.push({
|
|
77
|
+
tool: 'claude-code',
|
|
78
|
+
directory: claudeProjects,
|
|
79
|
+
recursive: true,
|
|
80
|
+
sessionIdFromPath: sessionIdFromJsonlPath,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return dirs;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=transcript-session-dirs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript-session-dirs.js","sourceRoot":"","sources":["../../src/trajectory/transcript-session-dirs.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,13 @@
|
|
|
23
23
|
* every previously-seen transcript record. (The `jinn capture import` CLI
|
|
24
24
|
* uses `parser.parseFull` for one-shot history ingest.)
|
|
25
25
|
*
|
|
26
|
+
* ## Directory watching
|
|
27
|
+
*
|
|
28
|
+
* `directories` watches a session folder for new or growing `*.jsonl` files
|
|
29
|
+
* (e.g. `~/.codex/sessions`, `~/.claude/projects/**`). Existing files are
|
|
30
|
+
* registered at startup with the same tail-from-end baseline; `add` events
|
|
31
|
+
* register files created after startup.
|
|
32
|
+
*
|
|
26
33
|
* ## Cursor SQLite quirk — fail loudly
|
|
27
34
|
*
|
|
28
35
|
* The Cursor parser's `parseChunk` is a no-op: SQLite isn't streaming, and
|
|
@@ -47,13 +54,25 @@ export interface WatchedSource {
|
|
|
47
54
|
*/
|
|
48
55
|
sessionId: string;
|
|
49
56
|
}
|
|
57
|
+
export interface WatchedDirectory {
|
|
58
|
+
tool: WatchedTool;
|
|
59
|
+
/** Absolute path to the directory containing session JSONL files. */
|
|
60
|
+
directory: string;
|
|
61
|
+
/** When true, watch nested .jsonl files recursively (Claude Code projects layout). */
|
|
62
|
+
recursive?: boolean;
|
|
63
|
+
/** Derive the capture session id from an absolute JSONL path. */
|
|
64
|
+
sessionIdFromPath: (absolutePath: string) => string;
|
|
65
|
+
}
|
|
50
66
|
export interface DispatchEnvelope {
|
|
51
67
|
tool: WatchedTool;
|
|
52
68
|
sessionId: string;
|
|
53
69
|
event: TranscriptEvent;
|
|
54
70
|
}
|
|
55
71
|
export interface TranscriptWatcherConfig {
|
|
56
|
-
sources
|
|
72
|
+
/** Explicit per-file sources (tests, stop-hook safety-net paths). */
|
|
73
|
+
sources?: WatchedSource[];
|
|
74
|
+
/** Standard session directories (Codex, Claude Code, …). */
|
|
75
|
+
directories?: WatchedDirectory[];
|
|
57
76
|
onEvent: (envelope: DispatchEnvelope) => void;
|
|
58
77
|
}
|
|
59
78
|
export interface TranscriptWatcher {
|