@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
|
@@ -2,17 +2,29 @@
|
|
|
2
2
|
* Pure assembly for GET /v1/status JSON (testable without RPC or filesystem).
|
|
3
3
|
*/
|
|
4
4
|
import type { FleetState } from '../earning/types.js';
|
|
5
|
+
import type { PortfolioV0Status } from './portfolio-v0-build.js';
|
|
5
6
|
export type StatusHintsScope = 'full' | 'sqlite_only';
|
|
7
|
+
export interface ServiceBalanceErrorEntry {
|
|
8
|
+
agent?: string;
|
|
9
|
+
multisig?: string;
|
|
10
|
+
}
|
|
6
11
|
export interface GatheredStatusRaw {
|
|
7
12
|
/** sqlite_only: only SQLite-backed fields (e2e / API without fleet context). */
|
|
8
13
|
hintsScope?: StatusHintsScope;
|
|
9
14
|
shutdownState: string | null;
|
|
15
|
+
daemonStartedAt?: string | null;
|
|
10
16
|
dbPath: string;
|
|
11
17
|
earningDir?: string;
|
|
12
18
|
activityCounts: Record<string, number>;
|
|
13
19
|
recentActivity: Array<{
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
id: number;
|
|
21
|
+
ts: string | null;
|
|
22
|
+
kind: string;
|
|
23
|
+
requestId: string | null;
|
|
24
|
+
serviceIndex: number | null;
|
|
25
|
+
txHash: string | null;
|
|
26
|
+
specKind: string | null;
|
|
27
|
+
outcome: string | null;
|
|
16
28
|
}>;
|
|
17
29
|
lastRewardClaimTickAt: string | null;
|
|
18
30
|
rewardClaimIntervalMs: number;
|
|
@@ -30,15 +42,37 @@ export interface GatheredStatusRaw {
|
|
|
30
42
|
};
|
|
31
43
|
pendingStakingRewardsWei?: string;
|
|
32
44
|
pendingRewardsError?: string;
|
|
45
|
+
/** ISO timestamp when the staking contract will next accept a checkpoint. */
|
|
46
|
+
nextCheckpointAt?: string;
|
|
33
47
|
pollIntervalMs: number;
|
|
34
48
|
/** Resolved daily burn estimate for runway (wei string). */
|
|
35
49
|
masterDailyEstimateWei: string;
|
|
36
50
|
minMasterEthWei?: string;
|
|
51
|
+
/** portfolio.v0 lifecycle data — populated by gather-status from the SQLite store. */
|
|
52
|
+
portfolioV0?: PortfolioV0Status;
|
|
53
|
+
serviceBalances?: Record<number, {
|
|
54
|
+
agentNativeWei: string;
|
|
55
|
+
safeNativeWei: string;
|
|
56
|
+
safeBondWei: string;
|
|
57
|
+
}>;
|
|
58
|
+
/** Last balance fetch error per service (display index). Present when a fetch failed. */
|
|
59
|
+
serviceBalanceErrors?: Record<number, ServiceBalanceErrorEntry>;
|
|
60
|
+
perServiceActivity?: Record<number, {
|
|
61
|
+
counts: Record<string, number>;
|
|
62
|
+
lastEventAt: string | null;
|
|
63
|
+
}>;
|
|
64
|
+
pendingByService?: Record<number, string>;
|
|
65
|
+
claimedByService?: Record<number, {
|
|
66
|
+
total: string;
|
|
67
|
+
lastAt: string;
|
|
68
|
+
lastTxHash: string;
|
|
69
|
+
}>;
|
|
37
70
|
}
|
|
38
71
|
export interface StatusV1Response {
|
|
39
72
|
statusMode: 'full' | 'sqlite_only';
|
|
40
73
|
daemon: {
|
|
41
74
|
shutdownState: string | null;
|
|
75
|
+
startedAt: string | null;
|
|
42
76
|
dbPath: string;
|
|
43
77
|
timestamp: string;
|
|
44
78
|
};
|
|
@@ -61,10 +95,7 @@ export interface StatusV1Response {
|
|
|
61
95
|
};
|
|
62
96
|
activity: {
|
|
63
97
|
counts: Record<string, number>;
|
|
64
|
-
recent:
|
|
65
|
-
requestId: string;
|
|
66
|
-
role: string;
|
|
67
|
-
}>;
|
|
98
|
+
recent: GatheredStatusRaw['recentActivity'];
|
|
68
99
|
};
|
|
69
100
|
rewards: {
|
|
70
101
|
claimLoopIntervalMs: number;
|
|
@@ -85,6 +116,8 @@ export interface StatusV1Response {
|
|
|
85
116
|
hint: string;
|
|
86
117
|
};
|
|
87
118
|
nextActions: string[];
|
|
119
|
+
/** portfolio.v0 lifecycle data — optional, absent when not available. */
|
|
120
|
+
portfolioV0?: PortfolioV0Status;
|
|
88
121
|
}
|
|
89
122
|
/**
|
|
90
123
|
* Match bootstrap heuristic for master daily gas when config omits JINN_MASTER_ETH_DAILY_WEI.
|
package/dist/api/status-build.js
CHANGED
|
@@ -121,7 +121,7 @@ function buildNextActions(raw, fleetSum) {
|
|
|
121
121
|
const excess = bal > min ? bal - min : 0n;
|
|
122
122
|
const days = excess / daily;
|
|
123
123
|
if (days < 3n && raw.rpc.ok) {
|
|
124
|
-
actions.push('Master ETH runway is low
|
|
124
|
+
actions.push('Master ETH runway is low; top up the master wallet soon.');
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
if (raw.rewardClaimIntervalMs > 0 && !raw.lastRewardClaimTickAt && fleetSum.stakedLikeCount > 0) {
|
|
@@ -143,6 +143,7 @@ export function assembleStatusV1(raw) {
|
|
|
143
143
|
statusMode: mode,
|
|
144
144
|
daemon: {
|
|
145
145
|
shutdownState: raw.shutdownState,
|
|
146
|
+
startedAt: raw.daemonStartedAt ?? null,
|
|
146
147
|
dbPath: raw.dbPath,
|
|
147
148
|
timestamp: new Date().toISOString(),
|
|
148
149
|
},
|
|
@@ -170,6 +171,7 @@ export function assembleStatusV1(raw) {
|
|
|
170
171
|
hint: buildEarningsHint(raw, fleetSum),
|
|
171
172
|
},
|
|
172
173
|
nextActions: buildNextActions(raw, fleetSum),
|
|
174
|
+
...(raw.portfolioV0 !== undefined ? { portfolioV0: raw.portfolioV0 } : {}),
|
|
173
175
|
};
|
|
174
176
|
}
|
|
175
177
|
//# sourceMappingURL=status-build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-build.js","sourceRoot":"","sources":["../../src/api/status-build.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"status-build.js","sourceRoot":"","sources":["../../src/api/status-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Contract: spec/2026-04-14-client-surface.md §4.1.
|
|
5
5
|
*/
|
|
6
|
+
import { readFileSync } from 'node:fs';
|
|
7
|
+
import { dirname, join } from 'node:path';
|
|
8
|
+
import { fileURLToPath } from 'node:url';
|
|
9
|
+
let versionCommitCache = null;
|
|
6
10
|
function daemonState(shutdown) {
|
|
7
11
|
if (shutdown === 'running')
|
|
8
12
|
return 'running';
|
|
@@ -19,8 +23,8 @@ function buildExitRollup(raw, needsAttention) {
|
|
|
19
23
|
try {
|
|
20
24
|
if (BigInt(raw.master.balanceWei) < BigInt(raw.minMasterEthWei)) {
|
|
21
25
|
return {
|
|
22
|
-
blocking:
|
|
23
|
-
hint: 'Master ETH is
|
|
26
|
+
blocking: false,
|
|
27
|
+
hint: 'Master ETH runway is low; top up the master wallet soon.',
|
|
24
28
|
};
|
|
25
29
|
}
|
|
26
30
|
}
|
|
@@ -30,7 +34,28 @@ function buildExitRollup(raw, needsAttention) {
|
|
|
30
34
|
}
|
|
31
35
|
return { blocking: false, hint: null };
|
|
32
36
|
}
|
|
37
|
+
function readVersionCommit() {
|
|
38
|
+
if (versionCommitCache) {
|
|
39
|
+
return versionCommitCache;
|
|
40
|
+
}
|
|
41
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
42
|
+
let version = '0.0.0';
|
|
43
|
+
let commit = 'unknown';
|
|
44
|
+
try {
|
|
45
|
+
const pkg = JSON.parse(readFileSync(join(here, '..', '..', 'package.json'), 'utf-8'));
|
|
46
|
+
version = pkg.version ?? version;
|
|
47
|
+
}
|
|
48
|
+
catch { /* */ }
|
|
49
|
+
try {
|
|
50
|
+
const meta = JSON.parse(readFileSync(join(here, '..', 'build-meta.json'), 'utf-8'));
|
|
51
|
+
commit = meta.commit ?? commit;
|
|
52
|
+
}
|
|
53
|
+
catch { /* */ }
|
|
54
|
+
versionCommitCache = { version, commit };
|
|
55
|
+
return versionCommitCache;
|
|
56
|
+
}
|
|
33
57
|
export function assembleStatusRollupV1(raw) {
|
|
58
|
+
const { version, commit } = readVersionCommit();
|
|
34
59
|
const services = raw.fleet?.services ?? [];
|
|
35
60
|
const complete = services.filter(s => s.step === 'complete').length;
|
|
36
61
|
const needsAttention = services.length - complete;
|
|
@@ -44,9 +69,11 @@ export function assembleStatusRollupV1(raw) {
|
|
|
44
69
|
generatedAt: new Date().toISOString(),
|
|
45
70
|
daemon: {
|
|
46
71
|
state: daemonState(raw.shutdownState),
|
|
47
|
-
startedAt: null,
|
|
72
|
+
startedAt: raw.daemonStartedAt ?? null,
|
|
48
73
|
phase,
|
|
49
74
|
network,
|
|
75
|
+
version,
|
|
76
|
+
commit,
|
|
50
77
|
},
|
|
51
78
|
rpc: {
|
|
52
79
|
ok: raw.rpc.ok,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-rollup-build.js","sourceRoot":"","sources":["../../src/api/status-rollup-build.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"status-rollup-build.js","sourceRoot":"","sources":["../../src/api/status-rollup-build.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/jinn-mcp.d.ts
CHANGED
|
@@ -1,14 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* jinn-mcp — standalone MCP server exposing operator-level tools.
|
|
4
|
-
*
|
|
5
|
-
* Designed to be launched by an MCP-aware host (Claude Desktop, Cursor, etc.)
|
|
6
|
-
* via stdio transport. Each tool delegates to the same command modules that
|
|
7
|
-
* the `jinn` CLI uses, so behaviour is always consistent.
|
|
8
|
-
*
|
|
9
|
-
* Usage (in an MCP host config):
|
|
10
|
-
* { "command": "jinn-mcp" }
|
|
11
|
-
*
|
|
12
|
-
* Context: docs/research/2026-04-agent-packaging.md sections 2.2, 5.1-5.3
|
|
13
|
-
*/
|
|
14
2
|
export {};
|
package/dist/bin/jinn-mcp.js
CHANGED
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Temporary compatibility shim for the old `jinn-mcp` bin.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* via stdio transport. Each tool delegates to the same command modules that
|
|
7
|
-
* the `jinn` CLI uses, so behaviour is always consistent.
|
|
8
|
-
*
|
|
9
|
-
* Usage (in an MCP host config):
|
|
10
|
-
* { "command": "jinn-mcp" }
|
|
11
|
-
*
|
|
12
|
-
* Context: docs/research/2026-04-agent-packaging.md sections 2.2, 5.1-5.3
|
|
5
|
+
* The canonical entrypoint is now `jinn mcp`.
|
|
13
6
|
*/
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const transport = new StdioServerTransport();
|
|
18
|
-
await server.connect(transport);
|
|
7
|
+
import { runCli } from '../cli/index.js';
|
|
8
|
+
console.error('[jinn-mcp] deprecated: use `jinn mcp` instead.');
|
|
9
|
+
await runCli(['mcp', ...process.argv.slice(2)]);
|
|
19
10
|
//# sourceMappingURL=jinn-mcp.js.map
|
package/dist/bin/jinn-mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jinn-mcp.js","sourceRoot":"","sources":["../../src/bin/jinn-mcp.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"jinn-mcp.js","sourceRoot":"","sources":["../../src/bin/jinn-mcp.ts"],"names":[],"mappings":";AACA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;AAChE,MAAM,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/build-meta.json
CHANGED
|
@@ -1,13 +1,74 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { homedir } from 'node:os';
|
|
2
5
|
import { parseArgs } from 'node:util';
|
|
6
|
+
import { createInterface } from 'node:readline';
|
|
3
7
|
import { emitResult } from '../output.js';
|
|
4
8
|
import { emitEnvelope } from '../../errors/envelope.js';
|
|
5
9
|
import { detectAuthContext, probeClaudeAuth, buildLoginCommand, } from '../../preflight/claude-auth.js';
|
|
10
|
+
import { ConfigLoadError, loadConfig } from '../../config.js';
|
|
6
11
|
const CONTEXT_LABELS = {
|
|
7
12
|
container: 'inside this container',
|
|
8
13
|
'docker-compose': 'inside the jinn-daemon Docker container',
|
|
9
14
|
bare: 'on this machine',
|
|
10
15
|
};
|
|
16
|
+
const DEFAULT_CONFIG_PATH = join(homedir(), '.jinn-client', 'config.json');
|
|
17
|
+
/**
|
|
18
|
+
* Persist `runtimeMode` into the operator's config file (default:
|
|
19
|
+
* ~/.jinn-client/config.json). Creates the file if absent; merges into
|
|
20
|
+
* existing JSON otherwise. Preserves any unknown keys.
|
|
21
|
+
*/
|
|
22
|
+
function persistRuntimeMode(mode, configPath = DEFAULT_CONFIG_PATH) {
|
|
23
|
+
let current = {};
|
|
24
|
+
if (existsSync(configPath)) {
|
|
25
|
+
try {
|
|
26
|
+
current = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// Malformed existing file — we overwrite rather than merge.
|
|
30
|
+
current = {};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const envNetwork = process.env['JINN_NETWORK'] === 'mainnet' ? 'mainnet' : 'testnet';
|
|
34
|
+
if (current['network'] === undefined) {
|
|
35
|
+
current['network'] = envNetwork;
|
|
36
|
+
}
|
|
37
|
+
const network = current['network'] === 'mainnet' ? 'mainnet' : 'testnet';
|
|
38
|
+
if (current['rpcUrl'] === undefined) {
|
|
39
|
+
current['rpcUrl'] = network === 'testnet' ? 'https://sepolia.base.org' : 'https://mainnet.base.org';
|
|
40
|
+
}
|
|
41
|
+
current['runtimeMode'] = mode;
|
|
42
|
+
mkdirSync(dirname(configPath), { recursive: true, mode: 0o700 });
|
|
43
|
+
writeFileSync(configPath, JSON.stringify(current, null, 2) + '\n', { encoding: 'utf-8' });
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Interactively prompt the operator for their runtime mode. Uses readline
|
|
47
|
+
* so stdin can be a real TTY. Returns the chosen mode or null if the
|
|
48
|
+
* operator aborts / answers blank.
|
|
49
|
+
*/
|
|
50
|
+
async function promptRuntimeMode() {
|
|
51
|
+
process.stderr.write('\nHow do you want to run the Jinn daemon?\n');
|
|
52
|
+
process.stderr.write(' 1) bare — Node directly on host (simplest; Claude auth lives on this machine)\n');
|
|
53
|
+
process.stderr.write(' 2) docker-compose — long-lived operator via the bundled compose file\n');
|
|
54
|
+
process.stderr.write(' 3) container — I run the Jinn image in my own orchestrator\n\n');
|
|
55
|
+
const rl = createInterface({ input: process.stdin, output: process.stderr, terminal: true });
|
|
56
|
+
try {
|
|
57
|
+
const answer = await new Promise((resolve) => {
|
|
58
|
+
rl.question('Choose [1-3, default=1]: ', (a) => resolve(a.trim()));
|
|
59
|
+
});
|
|
60
|
+
if (answer === '' || answer === '1' || answer.toLowerCase() === 'bare')
|
|
61
|
+
return 'bare';
|
|
62
|
+
if (answer === '2' || answer.toLowerCase() === 'docker-compose')
|
|
63
|
+
return 'docker-compose';
|
|
64
|
+
if (answer === '3' || answer.toLowerCase() === 'container')
|
|
65
|
+
return 'container';
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
rl.close();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
11
72
|
async function run(ctx) {
|
|
12
73
|
let parsed;
|
|
13
74
|
try {
|
|
@@ -16,6 +77,8 @@ async function run(ctx) {
|
|
|
16
77
|
options: {
|
|
17
78
|
json: { type: 'boolean' },
|
|
18
79
|
human: { type: 'boolean' },
|
|
80
|
+
mode: { type: 'string' },
|
|
81
|
+
config: { type: 'string' },
|
|
19
82
|
},
|
|
20
83
|
allowPositionals: false,
|
|
21
84
|
});
|
|
@@ -30,7 +93,55 @@ async function run(ctx) {
|
|
|
30
93
|
return;
|
|
31
94
|
}
|
|
32
95
|
const cwd = process.cwd();
|
|
33
|
-
const
|
|
96
|
+
const configPath = typeof parsed.values.config === 'string' && parsed.values.config.length > 0
|
|
97
|
+
? parsed.values.config
|
|
98
|
+
: undefined;
|
|
99
|
+
const modeFlag = typeof parsed.values.mode === 'string' ? parsed.values.mode : undefined;
|
|
100
|
+
let config;
|
|
101
|
+
try {
|
|
102
|
+
config = loadConfig(configPath);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (error instanceof ConfigLoadError &&
|
|
106
|
+
error.code === 'config_file_not_found' &&
|
|
107
|
+
modeFlag !== undefined) {
|
|
108
|
+
config = {};
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// ── Resolve runtime mode ─────────────────────────────────────────────────
|
|
115
|
+
// Order: --mode flag > config.runtimeMode > (interactive prompt if TTY)
|
|
116
|
+
// > filesystem-based auto-detect (legacy fallback).
|
|
117
|
+
let runtimeMode;
|
|
118
|
+
if (modeFlag) {
|
|
119
|
+
if (modeFlag !== 'bare' && modeFlag !== 'docker-compose' && modeFlag !== 'container') {
|
|
120
|
+
emitEnvelope({
|
|
121
|
+
code: 'invalid_invocation',
|
|
122
|
+
message: `--mode must be one of bare, docker-compose, container (got ${modeFlag})`,
|
|
123
|
+
exampleCli: 'jinn auth --mode bare',
|
|
124
|
+
details: { field: 'mode' },
|
|
125
|
+
}, { writer: ctx.writer, exit: ctx.exit });
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
runtimeMode = modeFlag;
|
|
129
|
+
persistRuntimeMode(runtimeMode, configPath ?? DEFAULT_CONFIG_PATH);
|
|
130
|
+
process.stderr.write(`[auth] runtime mode set to '${runtimeMode}' (persisted to config).\n`);
|
|
131
|
+
}
|
|
132
|
+
else if (config.runtimeMode) {
|
|
133
|
+
runtimeMode = config.runtimeMode;
|
|
134
|
+
}
|
|
135
|
+
else if (ctx.stdoutIsTty) {
|
|
136
|
+
const picked = await promptRuntimeMode();
|
|
137
|
+
if (picked !== null) {
|
|
138
|
+
runtimeMode = picked;
|
|
139
|
+
persistRuntimeMode(runtimeMode, configPath ?? DEFAULT_CONFIG_PATH);
|
|
140
|
+
process.stderr.write(`[auth] runtime mode set to '${runtimeMode}' (persisted).\n\n`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// If still unset (non-TTY, no flag, no config), fall through to filesystem detection below.
|
|
144
|
+
const context = detectAuthContext({ cwd, configuredMode: runtimeMode });
|
|
34
145
|
const probe = probeClaudeAuth({ context, cwd });
|
|
35
146
|
if (probe.authenticated) {
|
|
36
147
|
const payload = {
|
|
@@ -107,38 +218,39 @@ async function run(ctx) {
|
|
|
107
218
|
}
|
|
108
219
|
const command = {
|
|
109
220
|
name: 'auth',
|
|
110
|
-
summary: 'Check and
|
|
111
|
-
helpText: `Usage: jinn auth [--human] [--json]
|
|
221
|
+
summary: 'Check Claude authentication and persist how the operator runs the daemon',
|
|
222
|
+
helpText: `Usage: jinn auth [--mode <bare|docker-compose|container>] [--human] [--json] [--config <path>]
|
|
112
223
|
|
|
113
|
-
|
|
114
|
-
if running in a TTY, launches the interactive login flow automatically.
|
|
224
|
+
Two concerns in one command:
|
|
115
225
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
226
|
+
1. Runtime mode — how the operator wants to run the daemon. Persisted to
|
|
227
|
+
config once (so downstream commands don't re-detect by cwd heuristics).
|
|
228
|
+
2. Claude authentication — verified, and in a TTY launched interactively
|
|
229
|
+
if missing.
|
|
120
230
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- If not authenticated in a TTY → prints guidance to stderr, then runs the
|
|
127
|
-
appropriate login command with inherited stdio.
|
|
231
|
+
Runtime-mode resolution order:
|
|
232
|
+
--mode flag > scripted / CI
|
|
233
|
+
config.runtimeMode > persisted from a prior \`jinn auth\`
|
|
234
|
+
interactive prompt > TTY fallback — asks the operator to pick
|
|
235
|
+
filesystem heuristic > last-resort: container (/.dockerenv) → docker-compose (cwd jinn-daemon compose) → bare
|
|
128
236
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
237
|
+
Behaviour:
|
|
238
|
+
- If runtime mode is unset and you're in a TTY, you'll be prompted. The
|
|
239
|
+
answer persists to ~/.jinn-client/config.json (or the --config path).
|
|
240
|
+
- If authenticated → emits JSON result with authenticated:true, context, detail.
|
|
241
|
+
- If not authenticated in non-TTY → emits invalid_invocation (exit 11).
|
|
242
|
+
- If not authenticated in a TTY → runs the appropriate login command.
|
|
133
243
|
|
|
134
244
|
Flags:
|
|
135
|
-
--
|
|
136
|
-
--
|
|
245
|
+
--mode <m> Set runtime mode non-interactively (bare | docker-compose | container).
|
|
246
|
+
--config <p> Path to config file (default: ~/.jinn-client/config.json).
|
|
247
|
+
--json Force JSON output.
|
|
248
|
+
--human Force human-readable output.
|
|
137
249
|
|
|
138
250
|
Examples:
|
|
139
|
-
jinn auth
|
|
140
|
-
jinn auth --
|
|
141
|
-
jinn auth --json
|
|
251
|
+
jinn auth # interactive: picks mode + authenticates
|
|
252
|
+
jinn auth --mode bare # scripted: set mode + authenticate
|
|
253
|
+
jinn auth --mode docker-compose --json
|
|
142
254
|
`,
|
|
143
255
|
run,
|
|
144
256
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,13 @@ import { emitResult } from '../output.js';
|
|
|
3
3
|
import { emitEnvelope } from '../../errors/envelope.js';
|
|
4
4
|
import { gatherIntrospectionRaw } from '../introspection-context.js';
|
|
5
5
|
import { assembleBalanceV1 } from '../../api/balance-build.js';
|
|
6
|
+
function humanBalance(payload) {
|
|
7
|
+
const lines = ['role address nativeWei bondWei'];
|
|
8
|
+
for (const w of payload.wallets) {
|
|
9
|
+
lines.push(`${w.role.padEnd(20)} ${(w.address ?? '0x').slice(0, 12).padEnd(12)} ${(w.balances.find((b) => b.asset === 'native')?.amountWei ?? '0').padEnd(15)} ${w.balances.find((b) => b.asset === 'bond')?.amountWei ?? '0'}`);
|
|
10
|
+
}
|
|
11
|
+
return lines.join('\n');
|
|
12
|
+
}
|
|
6
13
|
async function run(ctx) {
|
|
7
14
|
let parsed;
|
|
8
15
|
try {
|
|
@@ -19,7 +26,7 @@ async function run(ctx) {
|
|
|
19
26
|
}
|
|
20
27
|
const raw = await gatherIntrospectionRaw({ argv: ctx.argv });
|
|
21
28
|
const payload = assembleBalanceV1(raw);
|
|
22
|
-
emitResult(payload, (v) =>
|
|
29
|
+
emitResult(payload, (v) => humanBalance(v), {
|
|
23
30
|
json: Boolean(parsed.values.json),
|
|
24
31
|
human: Boolean(parsed.values.human),
|
|
25
32
|
writer: ctx.writer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/cli/commands/balance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/cli/commands/balance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,SAAS,YAAY,CAAC,OAA0B;IAC9C,MAAM,KAAK,GAAG,CAAC,gEAAgE,CAAC,CAAC;IACjF,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CACR,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,SAAS,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,SAAS,IAAI,GAAG,EAAE,CACrN,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,GAAmB;IACpC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CACV;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACzD,UAAU,EAAE,cAAc;YAC1B,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5B,EACD,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CACvC,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAsB,CAAC,EAAE;QAC/D,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACjC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAAkB;IAC7B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,+DAA+D;IACxE,QAAQ,EAAE;;;;;;;;;CASX;IACC,GAAG;CACJ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { emitEnvelope } from '../../errors/envelope.js';
|
|
|
4
4
|
import { loadConfig } from '../../config.js';
|
|
5
5
|
import { FleetBootstrapper } from '../../earning/bootstrap.js';
|
|
6
6
|
import { resolveCliPassword } from '../password.js';
|
|
7
|
+
import { checkRpcNetwork, logRpcLocalDevToStderr, rpcNetworkFailureHint } from '../../preflight/rpc-network.js';
|
|
7
8
|
/** §6.2 — `stack` only when `JINN_DEBUG=1` (exact string). */
|
|
8
9
|
function envelopeDebug(env) {
|
|
9
10
|
return env['JINN_DEBUG'] === '1';
|
|
@@ -58,6 +59,27 @@ async function run(ctx) {
|
|
|
58
59
|
return;
|
|
59
60
|
}
|
|
60
61
|
const config = loadConfig(configPath);
|
|
62
|
+
const rpcPreflight = await checkRpcNetwork(config);
|
|
63
|
+
if (!rpcPreflight.ok) {
|
|
64
|
+
emitEnvelope({
|
|
65
|
+
code: 'invalid_invocation',
|
|
66
|
+
message: rpcPreflight.message,
|
|
67
|
+
hint: rpcNetworkFailureHint(rpcPreflight),
|
|
68
|
+
exampleCli: 'jinn doctor --human',
|
|
69
|
+
details: {
|
|
70
|
+
field: 'rpcUrl',
|
|
71
|
+
network: rpcPreflight.network,
|
|
72
|
+
expectedChainId: rpcPreflight.expectedChainId,
|
|
73
|
+
actualChainId: rpcPreflight.actualChainId ?? null,
|
|
74
|
+
rpcHost: rpcPreflight.rpcHost,
|
|
75
|
+
reason: rpcPreflight.reason,
|
|
76
|
+
},
|
|
77
|
+
}, { writer: ctx.writer, exit: ctx.exit });
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// Log to real stderr; `ctx.writer` is stdout and must stay a single JSON (or
|
|
81
|
+
// human) line for `emitResult` / `emitEnvelope` contracts.
|
|
82
|
+
logRpcLocalDevToStderr(rpcPreflight);
|
|
61
83
|
const bootstrapper = new FleetBootstrapper({
|
|
62
84
|
earningDir: config.earningDir,
|
|
63
85
|
chain: config.network === 'testnet' ? 'base-sepolia' : 'base',
|
|
@@ -69,6 +91,7 @@ async function run(ctx) {
|
|
|
69
91
|
testnetL2TokenDeploymentPath: config.testnetL2TokenDeploymentPath,
|
|
70
92
|
testnetMechDeploymentPath: config.testnetMechDeploymentPath,
|
|
71
93
|
testnetStolasDeploymentPath: config.testnetStolasDeploymentPath,
|
|
94
|
+
testnetClaimRegistryDeploymentPath: config.testnetClaimRegistryDeploymentPath,
|
|
72
95
|
debug: config.debug,
|
|
73
96
|
pollIntervalMs: config.pollIntervalMs,
|
|
74
97
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/cli/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|