@jinn-network/client 0.1.1 → 0.1.2-canary.6237288d
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 +16 -0
- package/CONTRIBUTING.md +123 -0
- package/README.md +213 -37
- package/deployments/deployment-claim-registry-baseSepolia.json +13 -0
- package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +15 -0
- package/dist/adapters/adapter.d.ts +7 -0
- package/dist/adapters/claim-registry/abi.d.ts +127 -0
- package/dist/adapters/claim-registry/abi.js +93 -0
- package/dist/adapters/claim-registry/abi.js.map +1 -0
- package/dist/adapters/claim-registry/client.d.ts +89 -0
- package/dist/adapters/claim-registry/client.js +205 -0
- package/dist/adapters/claim-registry/client.js.map +1 -0
- package/dist/adapters/mech/adapter.d.ts +5 -0
- package/dist/adapters/mech/adapter.js +211 -56
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +19 -1
- package/dist/adapters/mech/contracts.js +112 -8
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/ipfs.d.ts +38 -5
- package/dist/adapters/mech/ipfs.js +174 -17
- package/dist/adapters/mech/ipfs.js.map +1 -1
- package/dist/adapters/mech/safe.js +8 -6
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +22 -46
- package/dist/adapters/mech/types.js +16 -35
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/api/balance-build.js +3 -3
- package/dist/api/balance-build.js.map +1 -1
- package/dist/api/fleet-build.js +35 -40
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.d.ts +6 -0
- package/dist/api/gather-status.js +187 -4
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/history-build.d.ts +5 -1
- package/dist/api/history-build.js +51 -26
- package/dist/api/history-build.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +83 -0
- package/dist/api/portfolio-v0-build.js +143 -0
- package/dist/api/portfolio-v0-build.js.map +1 -0
- package/dist/api/portfolio-v0-doctor.d.ts +37 -0
- package/dist/api/portfolio-v0-doctor.js +123 -0
- package/dist/api/portfolio-v0-doctor.js.map +1 -0
- package/dist/api/rewards-build.js +30 -14
- package/dist/api/rewards-build.js.map +1 -1
- package/dist/api/status-build.d.ts +39 -6
- package/dist/api/status-build.js +3 -1
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +2 -0
- package/dist/api/status-rollup-build.js +30 -3
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/bin/jinn-mcp.d.ts +0 -12
- package/dist/bin/jinn-mcp.js +5 -14
- package/dist/bin/jinn-mcp.js.map +1 -1
- package/dist/build-meta.json +1 -1
- package/dist/cli/commands/auth.js +137 -25
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/balance.js +8 -1
- package/dist/cli/commands/balance.js.map +1 -1
- package/dist/cli/commands/bootstrap.js +23 -0
- package/dist/cli/commands/bootstrap.js.map +1 -1
- package/dist/cli/commands/doctor.js +160 -14
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/fleet-scale.js +1 -0
- package/dist/cli/commands/fleet-scale.js.map +1 -1
- package/dist/cli/commands/fleet.js +10 -1
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/fund-requirements.js +2 -0
- package/dist/cli/commands/fund-requirements.js.map +1 -1
- package/dist/cli/commands/history.js +25 -6
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/intents.d.ts +17 -0
- package/dist/cli/commands/intents.js +489 -0
- package/dist/cli/commands/intents.js.map +1 -0
- package/dist/cli/commands/keys-backup.js +13 -11
- package/dist/cli/commands/keys-backup.js.map +1 -1
- package/dist/cli/commands/logs.js +35 -11
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +3 -0
- package/dist/cli/commands/mcp.js +19 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/plugin-install.js +8 -4
- package/dist/cli/commands/plugin-install.js.map +1 -1
- package/dist/cli/commands/quickstart.js +99 -5
- package/dist/cli/commands/quickstart.js.map +1 -1
- package/dist/cli/commands/rewards.js +27 -1
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/run.js +38 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/status.js +11 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/submit-intent.js +110 -44
- package/dist/cli/commands/submit-intent.js.map +1 -1
- package/dist/cli/commands/version.js +1 -0
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/deployment-digest.js +5 -0
- package/dist/cli/deployment-digest.js.map +1 -1
- package/dist/cli/execution-context.js +1 -0
- package/dist/cli/execution-context.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/intent-registry-access.d.ts +62 -0
- package/dist/cli/intent-registry-access.js +165 -0
- package/dist/cli/intent-registry-access.js.map +1 -0
- package/dist/cli/introspection-context.js +12 -8
- package/dist/cli/introspection-context.js.map +1 -1
- package/dist/cli/password.d.ts +21 -9
- package/dist/cli/password.js +45 -24
- package/dist/cli/password.js.map +1 -1
- package/dist/config.d.ts +137 -8
- package/dist/config.js +70 -12
- package/dist/config.js.map +1 -1
- package/dist/daemon/balance-topup-loop.js +32 -4
- package/dist/daemon/balance-topup-loop.js.map +1 -1
- package/dist/daemon/creator.d.ts +7 -4
- package/dist/daemon/creator.js +55 -26
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +35 -3
- package/dist/daemon/daemon.js +99 -7
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/delivery-watcher.d.ts +3 -1
- package/dist/daemon/delivery-watcher.js +19 -1
- package/dist/daemon/delivery-watcher.js.map +1 -1
- package/dist/daemon/reward-claim-loop.js +38 -1
- package/dist/daemon/reward-claim-loop.js.map +1 -1
- package/dist/dashboard/index.html +71 -496
- package/dist/discovery/registry.d.ts +54 -0
- package/dist/discovery/registry.js +73 -0
- package/dist/discovery/registry.js.map +1 -1
- package/dist/earning/bootstrap.d.ts +2 -1
- package/dist/earning/bootstrap.js +71 -33
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +10 -0
- package/dist/earning/contracts.js +24 -0
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/jinn-rewards.d.ts +9 -0
- package/dist/earning/jinn-rewards.js +7 -0
- package/dist/earning/jinn-rewards.js.map +1 -1
- package/dist/earning/stolas-claim.d.ts +6 -0
- package/dist/earning/stolas-claim.js +7 -0
- package/dist/earning/stolas-claim.js.map +1 -1
- package/dist/intents/kinds/constants.d.ts +5 -0
- package/dist/intents/kinds/constants.js +6 -0
- package/dist/intents/kinds/constants.js.map +1 -0
- package/dist/intents/kinds/index.d.ts +28 -0
- package/dist/intents/kinds/index.js +50 -0
- package/dist/intents/kinds/index.js.map +1 -0
- package/dist/intents/kinds/portfolio-v0.d.ts +2 -0
- package/dist/intents/kinds/portfolio-v0.js +13 -0
- package/dist/intents/kinds/portfolio-v0.js.map +1 -0
- package/dist/intents/kinds/prediction-apy-v0.d.ts +3 -0
- package/dist/intents/kinds/prediction-apy-v0.js +21 -0
- package/dist/intents/kinds/prediction-apy-v0.js.map +1 -0
- package/dist/intents/kinds/prediction-v0.d.ts +3 -0
- package/dist/intents/kinds/prediction-v0.js +32 -0
- package/dist/intents/kinds/prediction-v0.js.map +1 -0
- package/dist/intents/kinds/spec-kind.d.ts +38 -0
- package/dist/intents/kinds/spec-kind.js +6 -0
- package/dist/intents/kinds/spec-kind.js.map +1 -0
- package/dist/intents/posting-service.d.ts +26 -0
- package/dist/intents/posting-service.js +218 -0
- package/dist/intents/posting-service.js.map +1 -0
- package/dist/intents/prediction-apy-v0-auto.d.ts +11 -0
- package/dist/intents/prediction-apy-v0-auto.js +46 -0
- package/dist/intents/prediction-apy-v0-auto.js.map +1 -0
- package/dist/intents/prediction-apy-v0-template.d.ts +8 -0
- package/dist/intents/prediction-apy-v0-template.js +22 -0
- package/dist/intents/prediction-apy-v0-template.js.map +1 -0
- package/dist/intents/prediction-v0-auto.d.ts +53 -0
- package/dist/intents/prediction-v0-auto.js +84 -0
- package/dist/intents/prediction-v0-auto.js.map +1 -0
- package/dist/intents/prediction-v0-template.d.ts +70 -0
- package/dist/intents/prediction-v0-template.js +145 -0
- package/dist/intents/prediction-v0-template.js.map +1 -0
- package/dist/intents/sources.d.ts +39 -0
- package/dist/intents/sources.js +42 -0
- package/dist/intents/sources.js.map +1 -0
- package/dist/main.js +175 -3
- package/dist/main.js.map +1 -1
- package/dist/mcp/operator-server.d.ts +1 -1
- package/dist/mcp/operator-server.js +1 -1
- package/dist/mcp/server.js +8 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/observability/emit-event.d.ts +12 -0
- package/dist/observability/emit-event.js +27 -0
- package/dist/observability/emit-event.js.map +1 -0
- package/dist/preflight/api-port.d.ts +13 -0
- package/dist/preflight/api-port.js +32 -0
- package/dist/preflight/api-port.js.map +1 -0
- package/dist/preflight/claude-auth.d.ts +12 -1
- package/dist/preflight/claude-auth.js +21 -3
- package/dist/preflight/claude-auth.js.map +1 -1
- package/dist/preflight/rpc-network.d.ts +44 -0
- package/dist/preflight/rpc-network.js +121 -0
- package/dist/preflight/rpc-network.js.map +1 -0
- package/dist/restorer/engine/canonical-json.d.ts +18 -0
- package/dist/restorer/engine/canonical-json.js +59 -0
- package/dist/restorer/engine/canonical-json.js.map +1 -0
- package/dist/restorer/engine/claim.d.ts +69 -0
- package/dist/restorer/engine/claim.js +104 -0
- package/dist/restorer/engine/claim.js.map +1 -0
- package/dist/restorer/engine/delivery.d.ts +52 -0
- package/dist/restorer/engine/delivery.js +63 -0
- package/dist/restorer/engine/delivery.js.map +1 -0
- package/dist/restorer/engine/engine.d.ts +213 -0
- package/dist/restorer/engine/engine.js +769 -0
- package/dist/restorer/engine/engine.js.map +1 -0
- package/dist/restorer/engine/manifest-assembly.d.ts +67 -0
- package/dist/restorer/engine/manifest-assembly.js +79 -0
- package/dist/restorer/engine/manifest-assembly.js.map +1 -0
- package/dist/restorer/engine/packaging.d.ts +87 -0
- package/dist/restorer/engine/packaging.js +350 -0
- package/dist/restorer/engine/packaging.js.map +1 -0
- package/dist/restorer/engine/persistence.d.ts +170 -0
- package/dist/restorer/engine/persistence.js +381 -0
- package/dist/restorer/engine/persistence.js.map +1 -0
- package/dist/restorer/engine/recovery.d.ts +22 -0
- package/dist/restorer/engine/recovery.js +24 -0
- package/dist/restorer/engine/recovery.js.map +1 -0
- package/dist/restorer/engine/registry.d.ts +62 -0
- package/dist/restorer/engine/registry.js +73 -0
- package/dist/restorer/engine/registry.js.map +1 -0
- package/dist/restorer/engine/signing.d.ts +30 -0
- package/dist/restorer/engine/signing.js +39 -0
- package/dist/restorer/engine/signing.js.map +1 -0
- package/dist/restorer/engine/state.d.ts +42 -0
- package/dist/restorer/engine/state.js +87 -0
- package/dist/restorer/engine/state.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.d.ts +64 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js +96 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/api-wallet.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +104 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +721 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.d.ts +137 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js +865 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/mcp-tools.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.d.ts +74 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js +74 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/safety-rails.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +97 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +226 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +44 -0
- package/dist/restorer/impls/claude-mcp-prediction/index.js +239 -0
- package/dist/restorer/impls/claude-mcp-prediction/index.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.d.ts +38 -0
- package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js +135 -0
- package/dist/restorer/impls/claude-mcp-prediction/mcp-tools.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/prompt.d.ts +8 -0
- package/dist/restorer/impls/claude-mcp-prediction/prompt.js +54 -0
- package/dist/restorer/impls/claude-mcp-prediction/prompt.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +36 -0
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +137 -0
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction/types.d.ts +84 -0
- package/dist/restorer/impls/claude-mcp-prediction/types.js +6 -0
- package/dist/restorer/impls/claude-mcp-prediction/types.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +34 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +233 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.d.ts +18 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js +136 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/mcp-tools.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.d.ts +7 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js +46 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/prompt.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +27 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +128 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/types.d.ts +64 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/types.js +6 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/types.js.map +1 -0
- package/dist/restorer/impls/evaluation-context.d.ts +16 -0
- package/dist/restorer/impls/evaluation-context.js +18 -0
- package/dist/restorer/impls/evaluation-context.js.map +1 -0
- package/dist/restorer/impls/index.d.ts +46 -0
- package/dist/restorer/impls/index.js +88 -0
- package/dist/restorer/impls/index.js.map +1 -0
- package/dist/restorer/impls/legacy-claude/index.d.ts +52 -0
- package/dist/restorer/impls/legacy-claude/index.js +140 -0
- package/dist/restorer/impls/legacy-claude/index.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.d.ts +68 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js +117 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.d.ts +49 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js +91 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/availability.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.d.ts +78 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js +274 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/consistency.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.d.ts +23 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js +49 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/eligibility.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.d.ts +25 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js +44 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/integrity.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.d.ts +17 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js +43 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/checks/spec.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +44 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js +440 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.d.ts +21 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.js +32 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/score.js.map +1 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.d.ts +34 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.js +8 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/types.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +40 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +107 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.d.ts +2 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js +7 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/strategy.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/types.d.ts +4 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/types.js +2 -0
- package/dist/restorer/impls/prediction-apy-v0-baseline/types.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.d.ts +6 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js +11 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +42 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +208 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +7 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +29 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/score.d.ts +9 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js +20 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/score.js.map +1 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/types.d.ts +7 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js +2 -0
- package/dist/restorer/impls/prediction-apy-v0-evaluator/types.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +31 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.js +100 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.d.ts +8 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.js +41 -0
- package/dist/restorer/impls/prediction-v0-baseline/strategy.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.d.ts +7 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.js +2 -0
- package/dist/restorer/impls/prediction-v0-baseline/types.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.d.ts +20 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js +66 -0
- package/dist/restorer/impls/prediction-v0-evaluator/canonical-metrics.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.d.ts +9 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js +23 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/availability.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.d.ts +3 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js +13 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/eligibility.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +13 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +111 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.d.ts +5 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js +20 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/spec.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +36 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.js +234 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.d.ts +8 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.js +15 -0
- package/dist/restorer/impls/prediction-v0-evaluator/score.js.map +1 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.d.ts +7 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.js +2 -0
- package/dist/restorer/impls/prediction-v0-evaluator/types.js.map +1 -0
- package/dist/restorer/types.d.ts +194 -0
- package/dist/restorer/types.js +28 -0
- package/dist/restorer/types.js.map +1 -0
- package/dist/rpc-error-context.d.ts +10 -0
- package/dist/rpc-error-context.js +26 -0
- package/dist/rpc-error-context.js.map +1 -0
- package/dist/store/store.d.ts +101 -1
- package/dist/store/store.js +334 -4
- package/dist/store/store.js.map +1 -1
- package/dist/trajectory/schema.d.ts +510 -0
- package/dist/trajectory/schema.js +74 -0
- package/dist/trajectory/schema.js.map +1 -0
- package/dist/types/desired-state.d.ts +53 -0
- package/dist/types/desired-state.js +20 -0
- package/dist/types/desired-state.js.map +1 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.js +4 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/portfolio.d.ts +1000 -0
- package/dist/types/portfolio.js +168 -0
- package/dist/types/portfolio.js.map +1 -0
- package/dist/types/prediction-apy.d.ts +930 -0
- package/dist/types/prediction-apy.js +133 -0
- package/dist/types/prediction-apy.js.map +1 -0
- package/dist/types/prediction.d.ts +926 -0
- package/dist/types/prediction.js +141 -0
- package/dist/types/prediction.js.map +1 -0
- package/dist/venues/aave-v3/addresses.d.ts +6 -0
- package/dist/venues/aave-v3/addresses.js +19 -0
- package/dist/venues/aave-v3/addresses.js.map +1 -0
- package/dist/venues/aave-v3/client.d.ts +85 -0
- package/dist/venues/aave-v3/client.js +106 -0
- package/dist/venues/aave-v3/client.js.map +1 -0
- package/dist/venues/chainlink/client.d.ts +99 -0
- package/dist/venues/chainlink/client.js +130 -0
- package/dist/venues/chainlink/client.js.map +1 -0
- package/dist/venues/chainlink/feeds.d.ts +8 -0
- package/dist/venues/chainlink/feeds.js +9 -0
- package/dist/venues/chainlink/feeds.js.map +1 -0
- package/dist/venues/hyperliquid/account-value.d.ts +30 -0
- package/dist/venues/hyperliquid/account-value.js +30 -0
- package/dist/venues/hyperliquid/account-value.js.map +1 -0
- package/dist/venues/hyperliquid/client.d.ts +63 -0
- package/dist/venues/hyperliquid/client.js +135 -0
- package/dist/venues/hyperliquid/client.js.map +1 -0
- package/dist/venues/hyperliquid/grid.d.ts +36 -0
- package/dist/venues/hyperliquid/grid.js +61 -0
- package/dist/venues/hyperliquid/grid.js.map +1 -0
- package/dist/venues/hyperliquid/types.d.ts +81 -0
- package/dist/venues/hyperliquid/types.js +8 -0
- package/dist/venues/hyperliquid/types.js.map +1 -0
- package/dist/withdraw/run-withdraw-plan.js +2 -0
- package/dist/withdraw/run-withdraw-plan.js.map +1 -1
- package/docker-compose.yml +44 -0
- package/package.json +15 -3
- package/skills/jinn-operator/SKILL.md +85 -0
- package/dist/daemon/restorer.d.ts +0 -19
- package/dist/daemon/restorer.js +0 -82
- package/dist/daemon/restorer.js.map +0 -1
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for the `jinn intents` CLI surface.
|
|
3
|
+
*
|
|
4
|
+
* - Builds a RestorerImplRegistry populated with the same impls the daemon
|
|
5
|
+
* registers at boot (minus the ones that need live dependencies like a
|
|
6
|
+
* running master wallet). The generic `intents list/status/enable/disable`
|
|
7
|
+
* verbs use this to dispatch to per-impl onEnable / isReady logic without
|
|
8
|
+
* standing up the full daemon.
|
|
9
|
+
*
|
|
10
|
+
* - Reads/writes the `restorers.disabled[]` list in the operator's config
|
|
11
|
+
* file so `enable` / `disable` can flip per-impl participation.
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
14
|
+
import { dirname, join } from 'node:path';
|
|
15
|
+
import { homedir } from 'node:os';
|
|
16
|
+
import { RestorerImplRegistry } from '../restorer/engine/registry.js';
|
|
17
|
+
import { buildRestorerImpls } from '../restorer/impls/index.js';
|
|
18
|
+
/**
|
|
19
|
+
* Impls that ship default-disabled because they require external dependencies
|
|
20
|
+
* (credentials, exchange approvals, etc.) the operator must opt into. Kept in
|
|
21
|
+
* one place so `main.ts` and the `intents` CLI share a single source of truth.
|
|
22
|
+
*/
|
|
23
|
+
export const DEFAULT_DISABLED_IMPLS = ['claude-mcp-hyperliquid'];
|
|
24
|
+
export const DEFAULT_BY_KIND = {
|
|
25
|
+
'portfolio.v0': 'claude-mcp-hyperliquid',
|
|
26
|
+
'prediction.v0': 'prediction-v0-baseline',
|
|
27
|
+
'prediction.apy.v0': 'prediction-apy-v0-baseline',
|
|
28
|
+
};
|
|
29
|
+
const DEFAULT_CONFIG_PATH = join(homedir(), '.jinn-client', 'config.json');
|
|
30
|
+
export function resolveConfigPath(explicit) {
|
|
31
|
+
return explicit ?? DEFAULT_CONFIG_PATH;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Uses {@link buildRestorerImpls} with `stub: true` and no runner (no
|
|
35
|
+
* `legacy-claude` — requires the daemon process + Claude runner).
|
|
36
|
+
* Honest readiness for stub is refined in 7ee.2.
|
|
37
|
+
*/
|
|
38
|
+
export function buildIntentsCliRegistry(config) {
|
|
39
|
+
const registry = new RestorerImplRegistry({
|
|
40
|
+
byKind: resolveEffectiveByKind(config),
|
|
41
|
+
default: 'legacy-claude',
|
|
42
|
+
disabled: resolveEffectiveDisabled(config),
|
|
43
|
+
});
|
|
44
|
+
// `implStateDirRoot` matches daemon/doctor construction; stub `isReady()` is
|
|
45
|
+
// not HL disk-sensitive today, but the path is consistent if that changes.
|
|
46
|
+
for (const impl of buildRestorerImpls({
|
|
47
|
+
stub: true,
|
|
48
|
+
rpcUrl: config.rpcUrl,
|
|
49
|
+
archiveRpcUrl: config.archiveRpcUrl,
|
|
50
|
+
claudePath: config.claudePath,
|
|
51
|
+
claudeModel: config.claudeModel,
|
|
52
|
+
implStateDirRoot: config.engine.implStateDirRoot,
|
|
53
|
+
})) {
|
|
54
|
+
registry.register(impl);
|
|
55
|
+
}
|
|
56
|
+
return registry;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Resolve the effective disabled list, applying the ship-default plus any
|
|
60
|
+
* operator overrides. Semantics match main.ts: user config fully replaces
|
|
61
|
+
* the default, so operators who have already curated a list aren't
|
|
62
|
+
* surprised by new defaults sneaking in.
|
|
63
|
+
*/
|
|
64
|
+
export function resolveEffectiveDisabled(config) {
|
|
65
|
+
const userDisabled = config.restorers?.disabled;
|
|
66
|
+
if (userDisabled !== undefined)
|
|
67
|
+
return [...userDisabled];
|
|
68
|
+
return [...DEFAULT_DISABLED_IMPLS];
|
|
69
|
+
}
|
|
70
|
+
/** Resolve effective kind → impl mapping, applying operator overrides over ship defaults. */
|
|
71
|
+
export function resolveEffectiveByKind(config) {
|
|
72
|
+
return {
|
|
73
|
+
...DEFAULT_BY_KIND,
|
|
74
|
+
...(config.restorers?.byKind ?? {}),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/** Is an impl currently disabled in the effective config? */
|
|
78
|
+
export function isImplDisabled(implName, config) {
|
|
79
|
+
return resolveEffectiveDisabled(config).includes(implName);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Patch the user's config file to add/remove an impl from the `restorers.disabled[]`
|
|
83
|
+
* list.
|
|
84
|
+
*
|
|
85
|
+
* Semantics (important): since user config fully replaces the default list,
|
|
86
|
+
* we always rebuild `disabled` from `DEFAULT_DISABLED_IMPLS ∪ user additions`
|
|
87
|
+
* minus the currently-enabled impl, not from whatever list the user last
|
|
88
|
+
* wrote. Concretely: if we later add a new default-disabled impl, an operator
|
|
89
|
+
* who previously enabled X won't silently auto-enable the new one — their
|
|
90
|
+
* written list always reflects "every current default off, minus what I've
|
|
91
|
+
* explicitly enabled." Extra operator-added disables are preserved verbatim.
|
|
92
|
+
*
|
|
93
|
+
* Returns the new disabled list for the caller to surface.
|
|
94
|
+
*/
|
|
95
|
+
export function setImplEnabledInConfig(implName, enabled, configPath = DEFAULT_CONFIG_PATH) {
|
|
96
|
+
let current = {};
|
|
97
|
+
if (existsSync(configPath)) {
|
|
98
|
+
try {
|
|
99
|
+
current = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
current = {};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
const restorers = (current['restorers'] ?? {});
|
|
106
|
+
const existing = new Set(restorers.disabled ?? []);
|
|
107
|
+
// Operator-added extras: anything they've explicitly disabled that isn't a ship default.
|
|
108
|
+
const defaults = new Set(DEFAULT_DISABLED_IMPLS);
|
|
109
|
+
const operatorExtras = new Set([...existing].filter((n) => !defaults.has(n)));
|
|
110
|
+
// Rebuild from first principles so future default additions stay disabled
|
|
111
|
+
// unless the operator explicitly enables them too.
|
|
112
|
+
const rebuilt = new Set([...defaults, ...operatorExtras]);
|
|
113
|
+
if (enabled) {
|
|
114
|
+
rebuilt.delete(implName);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
rebuilt.add(implName);
|
|
118
|
+
}
|
|
119
|
+
const next = [...rebuilt];
|
|
120
|
+
restorers.disabled = next;
|
|
121
|
+
current['restorers'] = restorers;
|
|
122
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
123
|
+
writeFileSync(configPath, JSON.stringify(current, null, 2) + '\n', { encoding: 'utf-8' });
|
|
124
|
+
return next;
|
|
125
|
+
}
|
|
126
|
+
/** Persist an explicit impl mapping for a specific intent kind. */
|
|
127
|
+
export function setImplForKindInConfig(kind, implName, configPath = DEFAULT_CONFIG_PATH) {
|
|
128
|
+
let current = {};
|
|
129
|
+
if (existsSync(configPath)) {
|
|
130
|
+
try {
|
|
131
|
+
current = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
current = {};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const restorers = (current['restorers'] ?? {});
|
|
138
|
+
restorers.byKind = {
|
|
139
|
+
...(restorers.byKind ?? {}),
|
|
140
|
+
[kind]: implName,
|
|
141
|
+
};
|
|
142
|
+
current['restorers'] = restorers;
|
|
143
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
144
|
+
writeFileSync(configPath, JSON.stringify(current, null, 2) + '\n', { encoding: 'utf-8' });
|
|
145
|
+
}
|
|
146
|
+
/** Remove an explicit impl mapping for one kind, reverting to ship default. */
|
|
147
|
+
export function resetImplForKindInConfig(kind, configPath = DEFAULT_CONFIG_PATH) {
|
|
148
|
+
let current = {};
|
|
149
|
+
if (existsSync(configPath)) {
|
|
150
|
+
try {
|
|
151
|
+
current = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
current = {};
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const restorers = (current['restorers'] ?? {});
|
|
158
|
+
const byKind = { ...(restorers.byKind ?? {}) };
|
|
159
|
+
delete byKind[kind];
|
|
160
|
+
restorers.byKind = byKind;
|
|
161
|
+
current['restorers'] = restorers;
|
|
162
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
163
|
+
writeFileSync(configPath, JSON.stringify(current, null, 2) + '\n', { encoding: 'utf-8' });
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=intent-registry-access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-registry-access.js","sourceRoot":"","sources":["../../src/cli/intent-registry-access.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,17 +16,20 @@ async function tryMergeStatusFromHttp(config, local) {
|
|
|
16
16
|
if (!res.ok)
|
|
17
17
|
return local;
|
|
18
18
|
const remote = (await res.json());
|
|
19
|
+
const next = {
|
|
20
|
+
...local,
|
|
21
|
+
shutdownState: remote.daemon?.shutdownState ?? local.shutdownState,
|
|
22
|
+
daemonStartedAt: remote.daemon?.startedAt ?? local.daemonStartedAt,
|
|
23
|
+
};
|
|
19
24
|
if (remote.rpc?.ok && !local.rpc.ok) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
blockNumber: remote.rpc.blockNumber,
|
|
26
|
-
...(remote.rpc.error ? { error: remote.rpc.error } : {}),
|
|
27
|
-
},
|
|
25
|
+
next.rpc = {
|
|
26
|
+
ok: remote.rpc.ok,
|
|
27
|
+
chainId: remote.rpc.chainId,
|
|
28
|
+
blockNumber: remote.rpc.blockNumber,
|
|
29
|
+
...(remote.rpc.error ? { error: remote.rpc.error } : {}),
|
|
28
30
|
};
|
|
29
31
|
}
|
|
32
|
+
return next;
|
|
30
33
|
}
|
|
31
34
|
catch {
|
|
32
35
|
/* ignore — local gather is authoritative */
|
|
@@ -53,6 +56,7 @@ export async function gatherIntrospectionRaw(opts) {
|
|
|
53
56
|
testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
|
|
54
57
|
testnetMechDeploymentPath: config.testnetMechDeploymentPath,
|
|
55
58
|
testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
|
|
59
|
+
testnetClaimRegistryDeploymentPath: config.testnetClaimRegistryDeploymentPath,
|
|
56
60
|
};
|
|
57
61
|
const local = await gatherGatheredStatusRaw(store, status);
|
|
58
62
|
return tryMergeStatusFromHttp(config, local);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspection-context.js","sourceRoot":"","sources":["../../src/cli/introspection-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,uBAAuB,EAA2B,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,KAAK,UAAU,sBAAsB,CACnC,MAAqC,EACrC,KAAwB;IAExB,MAAM,GAAG,GAAG,oBAAoB,MAAM,CAAC,OAAO,YAAY,CAAC;IAC3D,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqB,CAAC;QACtD,IAAI,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACpC,
|
|
1
|
+
{"version":3,"file":"introspection-context.js","sourceRoot":"","sources":["../../src/cli/introspection-context.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/password.d.ts
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CLI password resolution
|
|
2
|
+
* CLI password resolution.
|
|
3
|
+
*
|
|
4
|
+
* Priority order for `resolveCliPassword`:
|
|
5
|
+
* 1. `--password-fd N` (explicit, scripted/CI use)
|
|
6
|
+
* 2. `JINN_PASSWORD` env var (explicit, operator-set)
|
|
7
|
+
* 3. `~/.jinn-client/keystore-password` file (auto-generated by `jinn quickstart`)
|
|
8
|
+
* 4. Error
|
|
9
|
+
*
|
|
10
|
+
* SECURITY TRADE-OFF (known, accepted for Phase 1b testers):
|
|
11
|
+
* When `jinn quickstart` auto-generates a password, it writes the plaintext
|
|
12
|
+
* value to `~/.jinn-client/keystore-password` (mode 0o600) and the encrypted
|
|
13
|
+
* keystore to `~/.jinn-client/earning/master_keystore.json`. An attacker with
|
|
14
|
+
* shell access to the host can read both and decrypt the mnemonic — the
|
|
15
|
+
* encryption provides defense only against casual filesystem snooping,
|
|
16
|
+
* snapshot/backup inclusion policies, and logs. It is NOT protection against
|
|
17
|
+
* a local attacker.
|
|
18
|
+
*
|
|
19
|
+
* The quickstart summary warns operators to treat this wallet as hot and to
|
|
20
|
+
* keep funds to the gas + rewards minimum. The real fix is OS-native secret
|
|
21
|
+
* storage (macOS Keychain, libsecret, Windows Credential Manager) or a
|
|
22
|
+
* hardware-backed signer; tracked as future work.
|
|
3
23
|
*/
|
|
4
24
|
export declare function parsePasswordFdFromArgv(argv: string[]): number | undefined;
|
|
5
25
|
export declare function readPasswordFromFd(fd: number): string;
|
|
@@ -10,14 +30,6 @@ export declare function resolveCliPassword(argv?: string[], env?: NodeJS.Process
|
|
|
10
30
|
ok: false;
|
|
11
31
|
message: string;
|
|
12
32
|
};
|
|
13
|
-
export declare function resolveCurrentPassword(argv: string[], env: Record<string, string | undefined>): {
|
|
14
|
-
ok: true;
|
|
15
|
-
password: string;
|
|
16
|
-
fromFile: boolean;
|
|
17
|
-
} | {
|
|
18
|
-
ok: false;
|
|
19
|
-
message: string;
|
|
20
|
-
};
|
|
21
33
|
export declare function resolveNewPassword(env: Record<string, string | undefined>): {
|
|
22
34
|
ok: true;
|
|
23
35
|
password: string;
|
package/dist/cli/password.js
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CLI password resolution
|
|
2
|
+
* CLI password resolution.
|
|
3
|
+
*
|
|
4
|
+
* Priority order for `resolveCliPassword`:
|
|
5
|
+
* 1. `--password-fd N` (explicit, scripted/CI use)
|
|
6
|
+
* 2. `JINN_PASSWORD` env var (explicit, operator-set)
|
|
7
|
+
* 3. `~/.jinn-client/keystore-password` file (auto-generated by `jinn quickstart`)
|
|
8
|
+
* 4. Error
|
|
9
|
+
*
|
|
10
|
+
* SECURITY TRADE-OFF (known, accepted for Phase 1b testers):
|
|
11
|
+
* When `jinn quickstart` auto-generates a password, it writes the plaintext
|
|
12
|
+
* value to `~/.jinn-client/keystore-password` (mode 0o600) and the encrypted
|
|
13
|
+
* keystore to `~/.jinn-client/earning/master_keystore.json`. An attacker with
|
|
14
|
+
* shell access to the host can read both and decrypt the mnemonic — the
|
|
15
|
+
* encryption provides defense only against casual filesystem snooping,
|
|
16
|
+
* snapshot/backup inclusion policies, and logs. It is NOT protection against
|
|
17
|
+
* a local attacker.
|
|
18
|
+
*
|
|
19
|
+
* The quickstart summary warns operators to treat this wallet as hot and to
|
|
20
|
+
* keep funds to the gas + rewards minimum. The real fix is OS-native secret
|
|
21
|
+
* storage (macOS Keychain, libsecret, Windows Credential Manager) or a
|
|
22
|
+
* hardware-backed signer; tracked as future work.
|
|
3
23
|
*/
|
|
4
24
|
import { existsSync, readFileSync } from 'node:fs';
|
|
5
25
|
import { homedir } from 'node:os';
|
|
@@ -23,7 +43,19 @@ function mergeArgv(argv) {
|
|
|
23
43
|
const fromProcess = typeof process !== 'undefined' ? process.argv.slice(2) : [];
|
|
24
44
|
return [...fromVerb, ...fromProcess];
|
|
25
45
|
}
|
|
46
|
+
function passwordFilePath(env) {
|
|
47
|
+
const home = env['HOME'] ?? homedir();
|
|
48
|
+
return join(home, '.jinn-client', 'keystore-password');
|
|
49
|
+
}
|
|
50
|
+
function readPasswordFile(env) {
|
|
51
|
+
const path = passwordFilePath(env);
|
|
52
|
+
if (!existsSync(path))
|
|
53
|
+
return undefined;
|
|
54
|
+
const value = readFileSync(path, 'utf-8').trim();
|
|
55
|
+
return value.length > 0 ? value : undefined;
|
|
56
|
+
}
|
|
26
57
|
export function resolveCliPassword(argv, env = process.env) {
|
|
58
|
+
// 1. --password-fd wins (explicit scripted intent).
|
|
27
59
|
const merged = mergeArgv(argv);
|
|
28
60
|
const fd = parsePasswordFdFromArgv(merged);
|
|
29
61
|
if (fd !== undefined) {
|
|
@@ -41,29 +73,18 @@ export function resolveCliPassword(argv, env = process.env) {
|
|
|
41
73
|
};
|
|
42
74
|
}
|
|
43
75
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const passwordFilePath = join(home, '.jinn-client', 'keystore-password');
|
|
57
|
-
if (existsSync(passwordFilePath)) {
|
|
58
|
-
const password = readFileSync(passwordFilePath, 'utf-8').trim();
|
|
59
|
-
if (password)
|
|
60
|
-
return { ok: true, password, fromFile: true };
|
|
61
|
-
}
|
|
62
|
-
// 2. Fall through to existing resolveCliPassword
|
|
63
|
-
const result = resolveCliPassword(argv, env);
|
|
64
|
-
if (result.ok)
|
|
65
|
-
return { ok: true, password: result.password, fromFile: false };
|
|
66
|
-
return { ok: false, message: result.message };
|
|
76
|
+
// 2. JINN_PASSWORD env (explicit operator-set).
|
|
77
|
+
const envPassword = env['JINN_PASSWORD'];
|
|
78
|
+
if (envPassword)
|
|
79
|
+
return { ok: true, password: envPassword };
|
|
80
|
+
// 3. Auto-generated password file from `jinn quickstart`.
|
|
81
|
+
const filePassword = readPasswordFile(env);
|
|
82
|
+
if (filePassword)
|
|
83
|
+
return { ok: true, password: filePassword };
|
|
84
|
+
return {
|
|
85
|
+
ok: false,
|
|
86
|
+
message: 'No keystore password found. Set JINN_PASSWORD, pass --password-fd N, or run `jinn quickstart` to auto-generate one.',
|
|
87
|
+
};
|
|
67
88
|
}
|
|
68
89
|
export function resolveNewPassword(env) {
|
|
69
90
|
const newPass = env['JINN_NEW_PASSWORD'];
|
package/dist/cli/password.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/cli/password.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/cli/password.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* (mainnet V1, testnet V2) for JinnRouter claimDelivery encoding.
|
|
15
15
|
*/
|
|
16
16
|
import { z } from 'zod';
|
|
17
|
+
import type { DesiredState } from './types/desired-state.js';
|
|
17
18
|
export declare const JinnConfigSchema: z.ZodObject<{
|
|
18
19
|
/**
|
|
19
20
|
* Network to connect to.
|
|
@@ -29,6 +30,7 @@ export declare const JinnConfigSchema: z.ZodObject<{
|
|
|
29
30
|
* https://sepolia.base.org for 'testnet'. Set explicitly to override.
|
|
30
31
|
*/
|
|
31
32
|
rpcUrl: z.ZodOptional<z.ZodString>;
|
|
33
|
+
archiveRpcUrl: z.ZodOptional<z.ZodString>;
|
|
32
34
|
/** Earning state directory */
|
|
33
35
|
earningDir: z.ZodDefault<z.ZodString>;
|
|
34
36
|
/** SQLite database path */
|
|
@@ -54,25 +56,68 @@ export declare const JinnConfigSchema: z.ZodObject<{
|
|
|
54
56
|
claudePath: z.ZodDefault<z.ZodString>;
|
|
55
57
|
/** Model for restoration/evaluation agent */
|
|
56
58
|
claudeModel: z.ZodDefault<z.ZodString>;
|
|
59
|
+
/**
|
|
60
|
+
* How the operator runs the daemon. Set once at `jinn auth`, read by every
|
|
61
|
+
* command that probes the Claude CLI or spawns a subprocess. Leaving it
|
|
62
|
+
* unset falls back to filesystem-based detection (docker-compose.yml near
|
|
63
|
+
* cwd, /.dockerenv, etc.) which is error-prone inside a checkout of the
|
|
64
|
+
* repo itself.
|
|
65
|
+
* Env override: JINN_RUNTIME_MODE.
|
|
66
|
+
*/
|
|
67
|
+
runtimeMode: z.ZodOptional<z.ZodEnum<["bare", "docker-compose", "container"]>>;
|
|
57
68
|
/** Comma-separated or array of peer URLs */
|
|
58
69
|
peers: z.ZodDefault<z.ZodUnion<[z.ZodEffects<z.ZodString, string[], string>, z.ZodArray<z.ZodString, "many">]>>;
|
|
59
70
|
/** The Graph subgraph URL for artifact discovery */
|
|
60
71
|
subgraphUrl: z.ZodOptional<z.ZodString>;
|
|
61
72
|
/** This node's public HTTP endpoint (for 8004 registration) */
|
|
62
73
|
nodeEndpoint: z.ZodOptional<z.ZodString>;
|
|
63
|
-
/** Desired states to create and restore */
|
|
74
|
+
/** Desired states to create and restore. Empty by default; testnet auto-intents fill the loop. */
|
|
64
75
|
desiredStates: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
65
|
-
id: z.ZodString
|
|
76
|
+
id: z.ZodOptional<z.ZodString>;
|
|
66
77
|
description: z.ZodString;
|
|
67
78
|
context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
79
|
+
window: z.ZodOptional<z.ZodObject<{
|
|
80
|
+
startTs: z.ZodNumber;
|
|
81
|
+
endTs: z.ZodNumber;
|
|
82
|
+
}, "strip", z.ZodTypeAny, {
|
|
83
|
+
startTs: number;
|
|
84
|
+
endTs: number;
|
|
85
|
+
}, {
|
|
86
|
+
startTs: number;
|
|
87
|
+
endTs: number;
|
|
88
|
+
}>>;
|
|
89
|
+
spec: z.ZodOptional<z.ZodIntersection<z.ZodObject<{
|
|
90
|
+
kind: z.ZodString;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
kind: string;
|
|
93
|
+
}, {
|
|
94
|
+
kind: string;
|
|
95
|
+
}>, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
96
|
+
eligibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
68
97
|
}, "strip", z.ZodTypeAny, {
|
|
69
|
-
id: string;
|
|
70
98
|
description: string;
|
|
99
|
+
id?: string | undefined;
|
|
71
100
|
context?: Record<string, unknown> | undefined;
|
|
101
|
+
window?: {
|
|
102
|
+
startTs: number;
|
|
103
|
+
endTs: number;
|
|
104
|
+
} | undefined;
|
|
105
|
+
spec?: ({
|
|
106
|
+
kind: string;
|
|
107
|
+
} & Record<string, unknown>) | undefined;
|
|
108
|
+
eligibility?: Record<string, unknown> | undefined;
|
|
72
109
|
}, {
|
|
73
|
-
id: string;
|
|
74
110
|
description: string;
|
|
111
|
+
id?: string | undefined;
|
|
75
112
|
context?: Record<string, unknown> | undefined;
|
|
113
|
+
window?: {
|
|
114
|
+
startTs: number;
|
|
115
|
+
endTs: number;
|
|
116
|
+
} | undefined;
|
|
117
|
+
spec?: ({
|
|
118
|
+
kind: string;
|
|
119
|
+
} & Record<string, unknown>) | undefined;
|
|
120
|
+
eligibility?: Record<string, unknown> | undefined;
|
|
76
121
|
}>, "many">>;
|
|
77
122
|
/** IPFS upload endpoint */
|
|
78
123
|
ipfsRegistryUrl: z.ZodDefault<z.ZodString>;
|
|
@@ -86,6 +131,8 @@ export declare const JinnConfigSchema: z.ZodObject<{
|
|
|
86
131
|
testnetMechDeploymentPath: z.ZodOptional<z.ZodString>;
|
|
87
132
|
/** Optional Base Sepolia stOLAS deployment artifact path */
|
|
88
133
|
testnetStolasDeploymentPath: z.ZodOptional<z.ZodString>;
|
|
134
|
+
/** Optional Base Sepolia ClaimRegistry deployment artifact path */
|
|
135
|
+
testnetClaimRegistryDeploymentPath: z.ZodOptional<z.ZodString>;
|
|
89
136
|
/** Staking mode: 'standard' uses stOLAS (no OLAS needed), 'self-bond' uses operator-provided OLAS. */
|
|
90
137
|
stakingMode: z.ZodDefault<z.ZodEnum<["standard", "self-bond"]>>;
|
|
91
138
|
/** Number of services to bootstrap and run. */
|
|
@@ -100,6 +147,43 @@ export declare const JinnConfigSchema: z.ZodObject<{
|
|
|
100
147
|
* Default is applied in bootstrap when unset. Env: JINN_MASTER_ETH_DAILY_WEI
|
|
101
148
|
*/
|
|
102
149
|
masterEthDailyEstimateWei: z.ZodOptional<z.ZodString>;
|
|
150
|
+
/**
|
|
151
|
+
* Operator-controlled impl dispatch for the restorer engine.
|
|
152
|
+
*
|
|
153
|
+
* Wired by daemon (jinn-mono-bv5); engine consumes via RestorerImplRegistry config.
|
|
154
|
+
*
|
|
155
|
+
* byKind: explicit spec.kind → impl name mapping (highest priority)
|
|
156
|
+
* default: fallback impl name when no kind-specific match is found
|
|
157
|
+
* disabled: impl names to exclude from dispatch entirely
|
|
158
|
+
*/
|
|
159
|
+
restorers: z.ZodOptional<z.ZodObject<{
|
|
160
|
+
byKind: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
161
|
+
default: z.ZodOptional<z.ZodString>;
|
|
162
|
+
disabled: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
163
|
+
}, "strip", z.ZodTypeAny, {
|
|
164
|
+
byKind?: Record<string, string> | undefined;
|
|
165
|
+
default?: string | undefined;
|
|
166
|
+
disabled?: string[] | undefined;
|
|
167
|
+
}, {
|
|
168
|
+
byKind?: Record<string, string> | undefined;
|
|
169
|
+
default?: string | undefined;
|
|
170
|
+
disabled?: string[] | undefined;
|
|
171
|
+
}>>;
|
|
172
|
+
/**
|
|
173
|
+
* Restoration engine durable directories (per-intent work + impl state).
|
|
174
|
+
* Defaults under ~/.jinn-client/engine/. Env: JINN_ENGINE_WORKING_DIR_ROOT,
|
|
175
|
+
* JINN_ENGINE_IMPL_STATE_DIR_ROOT.
|
|
176
|
+
*/
|
|
177
|
+
engine: z.ZodOptional<z.ZodObject<{
|
|
178
|
+
workingDirRoot: z.ZodOptional<z.ZodString>;
|
|
179
|
+
implStateDirRoot: z.ZodOptional<z.ZodString>;
|
|
180
|
+
}, "strip", z.ZodTypeAny, {
|
|
181
|
+
workingDirRoot?: string | undefined;
|
|
182
|
+
implStateDirRoot?: string | undefined;
|
|
183
|
+
}, {
|
|
184
|
+
workingDirRoot?: string | undefined;
|
|
185
|
+
implStateDirRoot?: string | undefined;
|
|
186
|
+
}>>;
|
|
103
187
|
}, "strip", z.ZodTypeAny, {
|
|
104
188
|
network: "testnet" | "mainnet";
|
|
105
189
|
earningDir: string;
|
|
@@ -112,9 +196,17 @@ export declare const JinnConfigSchema: z.ZodObject<{
|
|
|
112
196
|
claudeModel: string;
|
|
113
197
|
peers: string[];
|
|
114
198
|
desiredStates: {
|
|
115
|
-
id: string;
|
|
116
199
|
description: string;
|
|
200
|
+
id?: string | undefined;
|
|
117
201
|
context?: Record<string, unknown> | undefined;
|
|
202
|
+
window?: {
|
|
203
|
+
startTs: number;
|
|
204
|
+
endTs: number;
|
|
205
|
+
} | undefined;
|
|
206
|
+
spec?: ({
|
|
207
|
+
kind: string;
|
|
208
|
+
} & Record<string, unknown>) | undefined;
|
|
209
|
+
eligibility?: Record<string, unknown> | undefined;
|
|
118
210
|
}[];
|
|
119
211
|
ipfsRegistryUrl: string;
|
|
120
212
|
ipfsGatewayUrl: string;
|
|
@@ -122,16 +214,29 @@ export declare const JinnConfigSchema: z.ZodObject<{
|
|
|
122
214
|
targetServices: number;
|
|
123
215
|
debug: boolean;
|
|
124
216
|
rpcUrl?: string | undefined;
|
|
217
|
+
archiveRpcUrl?: string | undefined;
|
|
218
|
+
runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
|
|
125
219
|
subgraphUrl?: string | undefined;
|
|
126
220
|
nodeEndpoint?: string | undefined;
|
|
127
221
|
testnetL2DeploymentPath?: string | undefined;
|
|
128
222
|
testnetL2TokenDeploymentPath?: string | undefined;
|
|
129
223
|
testnetMechDeploymentPath?: string | undefined;
|
|
130
224
|
testnetStolasDeploymentPath?: string | undefined;
|
|
225
|
+
testnetClaimRegistryDeploymentPath?: string | undefined;
|
|
131
226
|
masterEthDailyEstimateWei?: string | undefined;
|
|
227
|
+
restorers?: {
|
|
228
|
+
byKind?: Record<string, string> | undefined;
|
|
229
|
+
default?: string | undefined;
|
|
230
|
+
disabled?: string[] | undefined;
|
|
231
|
+
} | undefined;
|
|
232
|
+
engine?: {
|
|
233
|
+
workingDirRoot?: string | undefined;
|
|
234
|
+
implStateDirRoot?: string | undefined;
|
|
235
|
+
} | undefined;
|
|
132
236
|
}, {
|
|
133
237
|
network?: "testnet" | "mainnet" | undefined;
|
|
134
238
|
rpcUrl?: string | undefined;
|
|
239
|
+
archiveRpcUrl?: string | undefined;
|
|
135
240
|
earningDir?: string | undefined;
|
|
136
241
|
dbPath?: string | undefined;
|
|
137
242
|
pollIntervalMs?: number | undefined;
|
|
@@ -140,13 +245,22 @@ export declare const JinnConfigSchema: z.ZodObject<{
|
|
|
140
245
|
apiPort?: number | undefined;
|
|
141
246
|
claudePath?: string | undefined;
|
|
142
247
|
claudeModel?: string | undefined;
|
|
248
|
+
runtimeMode?: "bare" | "docker-compose" | "container" | undefined;
|
|
143
249
|
peers?: string | string[] | undefined;
|
|
144
250
|
subgraphUrl?: string | undefined;
|
|
145
251
|
nodeEndpoint?: string | undefined;
|
|
146
252
|
desiredStates?: {
|
|
147
|
-
id: string;
|
|
148
253
|
description: string;
|
|
254
|
+
id?: string | undefined;
|
|
149
255
|
context?: Record<string, unknown> | undefined;
|
|
256
|
+
window?: {
|
|
257
|
+
startTs: number;
|
|
258
|
+
endTs: number;
|
|
259
|
+
} | undefined;
|
|
260
|
+
spec?: ({
|
|
261
|
+
kind: string;
|
|
262
|
+
} & Record<string, unknown>) | undefined;
|
|
263
|
+
eligibility?: Record<string, unknown> | undefined;
|
|
150
264
|
}[] | undefined;
|
|
151
265
|
ipfsRegistryUrl?: string | undefined;
|
|
152
266
|
ipfsGatewayUrl?: string | undefined;
|
|
@@ -154,14 +268,29 @@ export declare const JinnConfigSchema: z.ZodObject<{
|
|
|
154
268
|
testnetL2TokenDeploymentPath?: string | undefined;
|
|
155
269
|
testnetMechDeploymentPath?: string | undefined;
|
|
156
270
|
testnetStolasDeploymentPath?: string | undefined;
|
|
271
|
+
testnetClaimRegistryDeploymentPath?: string | undefined;
|
|
157
272
|
stakingMode?: "standard" | "self-bond" | undefined;
|
|
158
273
|
targetServices?: number | undefined;
|
|
159
274
|
debug?: boolean | undefined;
|
|
160
275
|
masterEthDailyEstimateWei?: string | undefined;
|
|
276
|
+
restorers?: {
|
|
277
|
+
byKind?: Record<string, string> | undefined;
|
|
278
|
+
default?: string | undefined;
|
|
279
|
+
disabled?: string[] | undefined;
|
|
280
|
+
} | undefined;
|
|
281
|
+
engine?: {
|
|
282
|
+
workingDirRoot?: string | undefined;
|
|
283
|
+
implStateDirRoot?: string | undefined;
|
|
284
|
+
} | undefined;
|
|
161
285
|
}>;
|
|
162
|
-
/** JinnConfig with rpcUrl guaranteed to be resolved (never undefined). */
|
|
163
|
-
export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl'> & {
|
|
286
|
+
/** JinnConfig with rpcUrl guaranteed to be resolved (never undefined) and desiredStates with id always assigned. */
|
|
287
|
+
export type JinnConfig = Omit<z.infer<typeof JinnConfigSchema>, 'rpcUrl' | 'desiredStates' | 'engine'> & {
|
|
164
288
|
rpcUrl: string;
|
|
289
|
+
desiredStates: DesiredState[];
|
|
290
|
+
engine: {
|
|
291
|
+
workingDirRoot: string;
|
|
292
|
+
implStateDirRoot: string;
|
|
293
|
+
};
|
|
165
294
|
};
|
|
166
295
|
export type ConfigLoadErrorCode = 'config_file_not_found' | 'config_json_invalid' | 'desired_states_file_not_found' | 'desired_states_json_invalid' | 'config_invalid';
|
|
167
296
|
export declare class ConfigLoadError extends Error {
|