@jinn-network/client 0.1.0 → 0.1.1-canary.351ad49e
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/CONTRIBUTING.md +123 -0
- package/README.md +202 -26
- package/deployments/deployment-jinn-testnet-faucet-baseSepolia-fast.json +15 -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 +2 -0
- package/dist/adapters/mech/adapter.js +110 -41
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +2 -0
- package/dist/adapters/mech/contracts.js +32 -7
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/ipfs.d.ts +8 -0
- package/dist/adapters/mech/ipfs.js +12 -0
- package/dist/adapters/mech/ipfs.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +20 -46
- package/dist/adapters/mech/types.js +16 -35
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/api/gather-status.js +33 -1
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +81 -0
- package/dist/api/portfolio-v0-build.js +141 -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 +1 -1
- package/dist/api/rewards-build.js.map +1 -1
- package/dist/api/server.js +12 -0
- package/dist/api/server.js.map +1 -1
- package/dist/api/status-build.d.ts +8 -0
- package/dist/api/status-build.js +1 -0
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +4 -0
- package/dist/api/status-rollup-build.js +4 -0
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/bin/jinn-mcp.d.ts +14 -0
- package/dist/bin/jinn-mcp.js +19 -0
- package/dist/bin/jinn-mcp.js.map +1 -0
- package/dist/build-meta.json +1 -1
- package/dist/cli/commands/auth.d.ts +3 -0
- package/dist/cli/commands/auth.js +236 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/bootstrap.js +1 -0
- package/dist/cli/commands/bootstrap.js.map +1 -1
- package/dist/cli/commands/doctor.js +153 -15
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/fund-requirements.js +69 -1
- package/dist/cli/commands/fund-requirements.js.map +1 -1
- package/dist/cli/commands/history.js +1 -0
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/init.js +31 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/keys-backup.js +149 -15
- package/dist/cli/commands/keys-backup.js.map +1 -1
- package/dist/cli/commands/logs.js +28 -13
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/plugin-install.d.ts +3 -0
- package/dist/cli/commands/plugin-install.js +799 -0
- package/dist/cli/commands/plugin-install.js.map +1 -0
- package/dist/cli/commands/quickstart.d.ts +3 -0
- package/dist/cli/commands/quickstart.js +292 -0
- package/dist/cli/commands/quickstart.js.map +1 -0
- package/dist/cli/commands/rewards.js +27 -1
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/run.js +6 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/stop.js +1 -0
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/submit-intent.js +79 -5
- package/dist/cli/commands/submit-intent.js.map +1 -1
- package/dist/cli/commands/update.d.ts +3 -0
- package/dist/cli/commands/update.js +154 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/version.js +15 -1
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/deployment-digest.js +20 -4
- package/dist/cli/deployment-digest.js.map +1 -1
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/password.d.ts +28 -1
- package/dist/cli/password.js +59 -10
- package/dist/cli/password.js.map +1 -1
- package/dist/config.d.ts +110 -7
- package/dist/config.js +38 -5
- package/dist/config.js.map +1 -1
- package/dist/daemon/balance-topup-loop.d.ts +40 -0
- package/dist/daemon/balance-topup-loop.js +96 -0
- package/dist/daemon/balance-topup-loop.js.map +1 -0
- package/dist/daemon/daemon.d.ts +37 -0
- package/dist/daemon/daemon.js +98 -1
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/dashboard/index.html +500 -0
- package/dist/earning/bootstrap.d.ts +3 -1
- package/dist/earning/bootstrap.js +138 -17
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +24 -0
- package/dist/earning/contracts.js +20 -1
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/faucet.d.ts +15 -0
- package/dist/earning/faucet.js +64 -0
- package/dist/earning/faucet.js.map +1 -0
- 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/store.d.ts +5 -0
- package/dist/earning/store.js +7 -3
- package/dist/earning/store.js.map +1 -1
- package/dist/errors/unauthorized-account.d.ts +10 -0
- package/dist/errors/unauthorized-account.js +14 -0
- package/dist/errors/unauthorized-account.js.map +1 -0
- package/dist/main.js +138 -1
- package/dist/main.js.map +1 -1
- package/dist/mcp/operator-server.d.ts +34 -0
- package/dist/mcp/operator-server.js +219 -0
- package/dist/mcp/operator-server.js.map +1 -0
- package/dist/operator-errors.js +11 -0
- package/dist/operator-errors.js.map +1 -1
- package/dist/preflight/claude-auth.d.ts +68 -0
- package/dist/preflight/claude-auth.js +171 -0
- package/dist/preflight/claude-auth.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 +203 -0
- package/dist/restorer/engine/engine.js +658 -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 +88 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +560 -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 +43 -0
- package/dist/restorer/impls/claude-mcp-prediction/index.js +230 -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 +82 -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/legacy-claude/index.d.ts +42 -0
- package/dist/restorer/impls/legacy-claude/index.js +60 -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 +43 -0
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js +431 -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 +32 -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-v0-baseline/index.d.ts +26 -0
- package/dist/restorer/impls/prediction-v0-baseline/index.js +82 -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 +7 -0
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js +74 -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 +33 -0
- package/dist/restorer/impls/prediction-v0-evaluator/index.js +179 -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 +62 -0
- package/dist/restorer/types.js +7 -0
- package/dist/restorer/types.js.map +1 -0
- package/dist/runner/claude.js +15 -0
- package/dist/runner/claude.js.map +1 -1
- package/dist/store/store.d.ts +3 -1
- package/dist/store/store.js +8 -0
- package/dist/store/store.js.map +1 -1
- package/dist/tx-retry.js +11 -1
- package/dist/tx-retry.js.map +1 -1
- 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 +3 -1
- package/dist/types/index.js +3 -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.d.ts +751 -0
- package/dist/types/prediction.js +128 -0
- package/dist/types/prediction.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/docker-compose.yml +44 -0
- package/package.json +21 -3
- package/skills/jinn-operator/SKILL.md +213 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* portfolio.v0 dashboard data assembly (§10 step 8 of spec/2026-04-17-portfolio-v0-design.md).
|
|
3
|
+
*
|
|
4
|
+
* Collects in-flight restoration intents, recent verdicts (COMPLETE / FAILED
|
|
5
|
+
* terminal intents), and recent system_snapshot artifacts for the /v1/status
|
|
6
|
+
* response under the `portfolioV0` key.
|
|
7
|
+
*
|
|
8
|
+
* Designed to be called from gather-status.ts with the Store instance. Does not
|
|
9
|
+
* hit the network — all data comes from SQLite.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
12
|
+
import { join } from 'node:path';
|
|
13
|
+
import { IntentPersistence } from '../restorer/engine/persistence.js';
|
|
14
|
+
const WORKING_DIR_ROOT = '/tmp/jinn-engine-working';
|
|
15
|
+
const RECENT_CLAUDE_OUTCOMES_LIMIT = 10;
|
|
16
|
+
// ── Internal helpers ──────────────────────────────────────────────────────────
|
|
17
|
+
const RECENT_VERDICTS_LIMIT = 10;
|
|
18
|
+
const RECENT_SNAPSHOTS_LIMIT = 5;
|
|
19
|
+
function toInFlight(intent) {
|
|
20
|
+
return {
|
|
21
|
+
requestId: intent.requestId,
|
|
22
|
+
state: intent.state,
|
|
23
|
+
specKind: intent.specKind,
|
|
24
|
+
implName: intent.implName,
|
|
25
|
+
windowStartTs: intent.windowStartTs,
|
|
26
|
+
windowEndTs: intent.windowEndTs,
|
|
27
|
+
stateUpdatedAt: intent.stateUpdatedAt,
|
|
28
|
+
lastError: intent.failureReason,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function toVerdict(intent) {
|
|
32
|
+
return {
|
|
33
|
+
requestId: intent.requestId,
|
|
34
|
+
state: intent.state,
|
|
35
|
+
implName: intent.implName,
|
|
36
|
+
specKind: intent.specKind,
|
|
37
|
+
windowStartTs: intent.windowStartTs,
|
|
38
|
+
windowEndTs: intent.windowEndTs,
|
|
39
|
+
stateUpdatedAt: intent.stateUpdatedAt,
|
|
40
|
+
failureReason: intent.failureReason,
|
|
41
|
+
manifestCid: intent.manifestCid,
|
|
42
|
+
deliveryTxHash: intent.deliveryTxHash,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// ── Public API ────────────────────────────────────────────────────────────────
|
|
46
|
+
/**
|
|
47
|
+
* Gather portfolio.v0 dashboard data from SQLite. Safe to call even when the
|
|
48
|
+
* restoration_intents table does not exist yet (table created on first Store
|
|
49
|
+
* construction, so this is always present when the daemon is running).
|
|
50
|
+
*/
|
|
51
|
+
export function gatherPortfolioV0Status(store) {
|
|
52
|
+
const persistence = new IntentPersistence(store.db);
|
|
53
|
+
// In-flight: all non-terminal intents
|
|
54
|
+
const inFlight = persistence.getInFlight().map(toInFlight);
|
|
55
|
+
// Recent verdicts: last N COMPLETE + FAILED intents combined, newest first
|
|
56
|
+
const complete = persistence.getByState('COMPLETE');
|
|
57
|
+
const failed = persistence.getByState('FAILED');
|
|
58
|
+
const allTerminal = [...complete, ...failed].sort((a, b) => b.stateUpdatedAt - a.stateUpdatedAt);
|
|
59
|
+
const recentVerdicts = allTerminal.slice(0, RECENT_VERDICTS_LIMIT).map(toVerdict);
|
|
60
|
+
// Recent system_snapshot artifacts (tagged with 'system_snapshot')
|
|
61
|
+
let recentSnapshots = [];
|
|
62
|
+
try {
|
|
63
|
+
const snapshotArtifacts = store.searchArtifacts({
|
|
64
|
+
tags: ['system_snapshot'],
|
|
65
|
+
limit: RECENT_SNAPSHOTS_LIMIT,
|
|
66
|
+
});
|
|
67
|
+
recentSnapshots = snapshotArtifacts.map((a) => ({
|
|
68
|
+
id: a.id,
|
|
69
|
+
requestId: a.request_id,
|
|
70
|
+
title: a.title,
|
|
71
|
+
outcome: a.outcome,
|
|
72
|
+
createdAt: a.created_at,
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// searchArtifacts should never throw, but guard defensively
|
|
77
|
+
recentSnapshots = [];
|
|
78
|
+
}
|
|
79
|
+
const recentClaudeOutcomes = gatherRecentClaudeOutcomes();
|
|
80
|
+
return { inFlight, recentVerdicts, recentSnapshots, recentClaudeOutcomes };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Scan the session outcome files under `/tmp/jinn-engine-working/*\/sessions/*\/outcome.json`
|
|
84
|
+
* and return the most recent N. Swallows all filesystem errors so a missing or
|
|
85
|
+
* malformed working dir never breaks the status endpoint.
|
|
86
|
+
*/
|
|
87
|
+
function gatherRecentClaudeOutcomes() {
|
|
88
|
+
if (!existsSync(WORKING_DIR_ROOT))
|
|
89
|
+
return [];
|
|
90
|
+
const outcomes = [];
|
|
91
|
+
let intentDirs;
|
|
92
|
+
try {
|
|
93
|
+
intentDirs = readdirSync(WORKING_DIR_ROOT);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
for (const intentDir of intentDirs) {
|
|
99
|
+
const sessionsDir = join(WORKING_DIR_ROOT, intentDir, 'sessions');
|
|
100
|
+
if (!existsSync(sessionsDir))
|
|
101
|
+
continue;
|
|
102
|
+
let sessionDirs;
|
|
103
|
+
try {
|
|
104
|
+
sessionDirs = readdirSync(sessionsDir);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
for (const sessionDir of sessionDirs) {
|
|
110
|
+
const outcomePath = join(sessionsDir, sessionDir, 'outcome.json');
|
|
111
|
+
if (!existsSync(outcomePath))
|
|
112
|
+
continue;
|
|
113
|
+
try {
|
|
114
|
+
const raw = readFileSync(outcomePath, 'utf-8');
|
|
115
|
+
const parsed = JSON.parse(raw);
|
|
116
|
+
if (typeof parsed.requestId === 'string' &&
|
|
117
|
+
typeof parsed.sessionId === 'string' &&
|
|
118
|
+
typeof parsed.startedAt === 'number' &&
|
|
119
|
+
typeof parsed.endedAt === 'number') {
|
|
120
|
+
outcomes.push({
|
|
121
|
+
requestId: parsed.requestId,
|
|
122
|
+
sessionId: parsed.sessionId,
|
|
123
|
+
startedAt: parsed.startedAt,
|
|
124
|
+
endedAt: parsed.endedAt,
|
|
125
|
+
durationMs: parsed.durationMs ?? (parsed.endedAt - parsed.startedAt),
|
|
126
|
+
aborted: parsed.aborted ?? false,
|
|
127
|
+
fillsInSessionWindow: parsed.fillsInSessionWindow ?? 0,
|
|
128
|
+
coinCounts: parsed.coinCounts ?? {},
|
|
129
|
+
...(parsed.fillsQueryError !== undefined ? { fillsQueryError: parsed.fillsQueryError } : {}),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Malformed outcome file — skip.
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
outcomes.sort((a, b) => b.endedAt - a.endedAt);
|
|
139
|
+
return outcomes.slice(0, RECENT_CLAUDE_OUTCOMES_LIMIT);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=portfolio-v0-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-v0-build.js","sourceRoot":"","sources":["../../src/api/portfolio-v0-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* portfolio.v0 doctor checks (§10 step 8 of spec/2026-04-17-portfolio-v0-design.md).
|
|
3
|
+
*
|
|
4
|
+
* Returns structured check results without hitting the network — all checks are
|
|
5
|
+
* local filesystem reads. Each check is safe to call independently.
|
|
6
|
+
*
|
|
7
|
+
* Note: The HL master account deposit check (verifying on-chain deposit via HL
|
|
8
|
+
* API) is intentionally skipped in v0 — it would require an external network
|
|
9
|
+
* call with no existing client dependency. Operators should verify the deposit
|
|
10
|
+
* manually via the Hyperliquid UI.
|
|
11
|
+
*/
|
|
12
|
+
export interface DoctorCheckResult {
|
|
13
|
+
name: string;
|
|
14
|
+
ok: boolean;
|
|
15
|
+
detail: string;
|
|
16
|
+
remedy?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Check that the implStateDir for the HL impl is accessible and looks healthy.
|
|
20
|
+
*
|
|
21
|
+
* @param implStateDir - path to the impl state directory (e.g. ~/.jinn-client/impl/claude-mcp-hyperliquid)
|
|
22
|
+
*/
|
|
23
|
+
export declare function checkImplStateDir(implStateDir: string | undefined): DoctorCheckResult;
|
|
24
|
+
/**
|
|
25
|
+
* Check that an HL API wallet is present in implStateDir and whether it has
|
|
26
|
+
* been approved by the operator.
|
|
27
|
+
*
|
|
28
|
+
* Returns ok=true even when not yet approved (that is an operator action, not
|
|
29
|
+
* a system error) — the detail string makes the status clear.
|
|
30
|
+
*/
|
|
31
|
+
export declare function checkHlApiWallet(implStateDir: string | undefined): DoctorCheckResult;
|
|
32
|
+
/**
|
|
33
|
+
* Run all portfolio.v0 doctor checks given an optional implStateDir.
|
|
34
|
+
* Safe to call even when HL impl is not configured — checks gracefully handle
|
|
35
|
+
* the undefined case.
|
|
36
|
+
*/
|
|
37
|
+
export declare function runPortfolioV0DoctorChecks(implStateDir: string | undefined): DoctorCheckResult[];
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* portfolio.v0 doctor checks (§10 step 8 of spec/2026-04-17-portfolio-v0-design.md).
|
|
3
|
+
*
|
|
4
|
+
* Returns structured check results without hitting the network — all checks are
|
|
5
|
+
* local filesystem reads. Each check is safe to call independently.
|
|
6
|
+
*
|
|
7
|
+
* Note: The HL master account deposit check (verifying on-chain deposit via HL
|
|
8
|
+
* API) is intentionally skipped in v0 — it would require an external network
|
|
9
|
+
* call with no existing client dependency. Operators should verify the deposit
|
|
10
|
+
* manually via the Hyperliquid UI.
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync, statSync, accessSync, constants } from 'node:fs';
|
|
13
|
+
import { join } from 'node:path';
|
|
14
|
+
import { loadApiWalletState } from '../restorer/impls/claude-mcp-hyperliquid/api-wallet.js';
|
|
15
|
+
// ── Checks ────────────────────────────────────────────────────────────────────
|
|
16
|
+
/**
|
|
17
|
+
* Check that the implStateDir for the HL impl is accessible and looks healthy.
|
|
18
|
+
*
|
|
19
|
+
* @param implStateDir - path to the impl state directory (e.g. ~/.jinn-client/impl/claude-mcp-hyperliquid)
|
|
20
|
+
*/
|
|
21
|
+
export function checkImplStateDir(implStateDir) {
|
|
22
|
+
if (!implStateDir) {
|
|
23
|
+
return {
|
|
24
|
+
name: 'portfolio_impl_state_dir',
|
|
25
|
+
ok: false,
|
|
26
|
+
detail: 'implStateDir not configured',
|
|
27
|
+
remedy: 'Set implStateDir in your config or pass --impl-state-dir to the daemon.',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
if (!existsSync(implStateDir)) {
|
|
31
|
+
return {
|
|
32
|
+
name: 'portfolio_impl_state_dir',
|
|
33
|
+
ok: false,
|
|
34
|
+
detail: `directory does not exist: ${implStateDir}`,
|
|
35
|
+
remedy: 'Run the daemon at least once to initialise the impl state directory.',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const stat = statSync(implStateDir);
|
|
40
|
+
if (!stat.isDirectory()) {
|
|
41
|
+
return {
|
|
42
|
+
name: 'portfolio_impl_state_dir',
|
|
43
|
+
ok: false,
|
|
44
|
+
detail: `path exists but is not a directory: ${implStateDir}`,
|
|
45
|
+
remedy: 'Remove the file at that path and let the daemon recreate the directory.',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
accessSync(implStateDir, constants.R_OK);
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
return {
|
|
52
|
+
name: 'portfolio_impl_state_dir',
|
|
53
|
+
ok: false,
|
|
54
|
+
detail: `directory not readable: ${e instanceof Error ? e.message : String(e)}`,
|
|
55
|
+
remedy: 'Check filesystem permissions on the impl state directory.',
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
name: 'portfolio_impl_state_dir',
|
|
60
|
+
ok: true,
|
|
61
|
+
detail: `directory present and readable: ${implStateDir}`,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Check that an HL API wallet is present in implStateDir and whether it has
|
|
66
|
+
* been approved by the operator.
|
|
67
|
+
*
|
|
68
|
+
* Returns ok=true even when not yet approved (that is an operator action, not
|
|
69
|
+
* a system error) — the detail string makes the status clear.
|
|
70
|
+
*/
|
|
71
|
+
export function checkHlApiWallet(implStateDir) {
|
|
72
|
+
if (!implStateDir) {
|
|
73
|
+
return {
|
|
74
|
+
name: 'hl_api_wallet',
|
|
75
|
+
ok: false,
|
|
76
|
+
detail: 'implStateDir not configured — cannot locate API wallet',
|
|
77
|
+
remedy: 'Configure implStateDir and run the daemon at least once.',
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const walletPath = join(implStateDir, 'api-wallet.json');
|
|
81
|
+
if (!existsSync(walletPath)) {
|
|
82
|
+
return {
|
|
83
|
+
name: 'hl_api_wallet',
|
|
84
|
+
ok: false,
|
|
85
|
+
detail: 'api-wallet.json not found in implStateDir',
|
|
86
|
+
remedy: 'Run the daemon at least once so the API wallet is generated, then approve it via the HL UI.',
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const state = loadApiWalletState(implStateDir);
|
|
90
|
+
if (!state) {
|
|
91
|
+
return {
|
|
92
|
+
name: 'hl_api_wallet',
|
|
93
|
+
ok: false,
|
|
94
|
+
detail: 'api-wallet.json exists but could not be parsed',
|
|
95
|
+
remedy: 'Inspect the file for corruption, or delete it and let the daemon regenerate it.',
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (!state.approved) {
|
|
99
|
+
return {
|
|
100
|
+
name: 'hl_api_wallet',
|
|
101
|
+
ok: false,
|
|
102
|
+
detail: `API wallet present but not approved — address: ${state.address}`,
|
|
103
|
+
remedy: 'Approve this address as an API wallet on your HL master account (Settings → API Wallets → Add).',
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
name: 'hl_api_wallet',
|
|
108
|
+
ok: true,
|
|
109
|
+
detail: `API wallet present and approved — address: ${state.address}`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Run all portfolio.v0 doctor checks given an optional implStateDir.
|
|
114
|
+
* Safe to call even when HL impl is not configured — checks gracefully handle
|
|
115
|
+
* the undefined case.
|
|
116
|
+
*/
|
|
117
|
+
export function runPortfolioV0DoctorChecks(implStateDir) {
|
|
118
|
+
return [
|
|
119
|
+
checkImplStateDir(implStateDir),
|
|
120
|
+
checkHlApiWallet(implStateDir),
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=portfolio-v0-doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-v0-doctor.js","sourceRoot":"","sources":["../../src/api/portfolio-v0-doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewards-build.js","sourceRoot":"","sources":["../../src/api/rewards-build.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,QAAQ;IACR,eAAe;IACf,UAAU;IACV,gBAAgB;CACjB,CAAC,CAAC;AAiBH,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC;IAClD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GACX,cAAc,GAAG,CAAC;YAChB,CAAC,CAAC,CAAC,KAAK,CAAC;gBACP,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,GAAG;YACP,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,SAAS;gBAC7B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,GAAG,CAAC;QACZ,OAAO;YACL,KAAK,EAAE,wBAAwB,CAAC,GAAG,CAAC;YACpC,OAAO;YACP,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,QAAiB;SACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,WAAW,EAAE,GAAG,CAAC,qBAAqB;QACtC,gBAAgB,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"rewards-build.js","sourceRoot":"","sources":["../../src/api/rewards-build.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,QAAQ;IACR,eAAe;IACf,UAAU;IACV,gBAAgB;CACjB,CAAC,CAAC;AAiBH,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC;IAClD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GACX,cAAc,GAAG,CAAC;YAChB,CAAC,CAAC,CAAC,KAAK,CAAC;gBACP,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,GAAG;YACP,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,SAAS;gBAC7B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,GAAG,CAAC;QACZ,OAAO;YACL,KAAK,EAAE,wBAAwB,CAAC,GAAG,CAAC;YACpC,OAAO;YACP,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,QAAiB;SACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,WAAW,EAAE,GAAG,CAAC,qBAAqB;QACtC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI;QAC9C,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
package/dist/api/server.js
CHANGED
|
@@ -14,13 +14,25 @@ import { Hono } from 'hono';
|
|
|
14
14
|
import { cors } from 'hono/cors';
|
|
15
15
|
import { serve } from '@hono/node-server';
|
|
16
16
|
import { randomUUID } from 'node:crypto';
|
|
17
|
+
import { readFileSync } from 'node:fs';
|
|
18
|
+
import { join, dirname } from 'node:path';
|
|
19
|
+
import { fileURLToPath } from 'node:url';
|
|
17
20
|
import { addX402Routes } from '../x402/handler.js';
|
|
18
21
|
import { verifyRequestWithErc8128, InMemoryNonceStore, } from '../auth/erc8128.js';
|
|
19
22
|
import { gatherStatusForApi } from './gather-status.js';
|
|
23
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
24
|
+
let dashboardHtml;
|
|
25
|
+
try {
|
|
26
|
+
dashboardHtml = readFileSync(join(__dirname, '..', 'dashboard', 'index.html'), 'utf-8');
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
dashboardHtml = '<html><body><p>Dashboard not found. Rebuild with <code>yarn build</code>.</p></body></html>';
|
|
30
|
+
}
|
|
20
31
|
export async function startApiServer(config) {
|
|
21
32
|
const { store } = config;
|
|
22
33
|
const app = new Hono();
|
|
23
34
|
app.use(cors());
|
|
35
|
+
app.get('/', (c) => c.html(dashboardHtml));
|
|
24
36
|
app.get('/v1/status', async (c) => {
|
|
25
37
|
try {
|
|
26
38
|
const body = await gatherStatusForApi(store, config.status);
|
package/dist/api/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAmB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAA2B,MAAM,oBAAoB,CAAC;AAiBjF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAuB;IAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAEhB,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5D,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,OAAO;gBACP,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;aACxE,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;IAED,2CAA2C;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,WAAW,GAAmC,IAAI,CAAC;IAEvD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,IAAI,EAAE,CAAC;YAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;gBACrC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;gBACpB,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;gBAC1B,IAAI;aACL,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,cAAe,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oCAAoC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7F,CAAC;YAED,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;YAC1D,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;IACxB,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;QACpD,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;QACxD,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC;QAClE,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QAChD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;QAClD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjF,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1G,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,WAAW,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAA2B,CAAC;QACxE,WAAW,GAAG,IAAI,CAAC;QAEnB,MAAM,EAAE,GAAI,IAAI,CAAC,EAAa,IAAI,UAAU,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAiB,CAAC;QACvC,MAAM,IAAI,GAAI,IAAI,CAAC,IAAiB,IAAI,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,SAAS,CAAC;QAEtD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,KAAK,CAAC,cAAc,CAAC;YACnB,EAAE;YACF,cAAc,EAAG,IAAI,CAAC,cAAyB,IAAI,EAAE;YACrD,SAAS,EAAG,IAAI,CAAC,SAAoB,IAAI,EAAE;YAC3C,KAAK;YACL,OAAO;YACP,IAAI;YACJ,OAAO,EAAE,OAA4C;SACtD,CAAC,CAAC;QAEH,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC;YACnB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,SAAS;SACpB,EAAE,GAAG,EAAE;YACN,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC;gBACN,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;aACnE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@
|
|
|
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';
|
|
6
7
|
export interface GatheredStatusRaw {
|
|
7
8
|
/** sqlite_only: only SQLite-backed fields (e2e / API without fleet context). */
|
|
8
9
|
hintsScope?: StatusHintsScope;
|
|
9
10
|
shutdownState: string | null;
|
|
10
11
|
dbPath: string;
|
|
12
|
+
earningDir?: string;
|
|
11
13
|
activityCounts: Record<string, number>;
|
|
12
14
|
recentActivity: Array<{
|
|
13
15
|
requestId: string;
|
|
@@ -29,10 +31,14 @@ export interface GatheredStatusRaw {
|
|
|
29
31
|
};
|
|
30
32
|
pendingStakingRewardsWei?: string;
|
|
31
33
|
pendingRewardsError?: string;
|
|
34
|
+
/** ISO timestamp when the staking contract will next accept a checkpoint. */
|
|
35
|
+
nextCheckpointAt?: string;
|
|
32
36
|
pollIntervalMs: number;
|
|
33
37
|
/** Resolved daily burn estimate for runway (wei string). */
|
|
34
38
|
masterDailyEstimateWei: string;
|
|
35
39
|
minMasterEthWei?: string;
|
|
40
|
+
/** portfolio.v0 lifecycle data — populated by gather-status from the SQLite store. */
|
|
41
|
+
portfolioV0?: PortfolioV0Status;
|
|
36
42
|
}
|
|
37
43
|
export interface StatusV1Response {
|
|
38
44
|
statusMode: 'full' | 'sqlite_only';
|
|
@@ -84,6 +90,8 @@ export interface StatusV1Response {
|
|
|
84
90
|
hint: string;
|
|
85
91
|
};
|
|
86
92
|
nextActions: string[];
|
|
93
|
+
/** portfolio.v0 lifecycle data — optional, absent when not available. */
|
|
94
|
+
portfolioV0?: PortfolioV0Status;
|
|
87
95
|
}
|
|
88
96
|
/**
|
|
89
97
|
* Match bootstrap heuristic for master daily gas when config omits JINN_MASTER_ETH_DAILY_WEI.
|
package/dist/api/status-build.js
CHANGED
|
@@ -170,6 +170,7 @@ export function assembleStatusV1(raw) {
|
|
|
170
170
|
hint: buildEarningsHint(raw, fleetSum),
|
|
171
171
|
},
|
|
172
172
|
nextActions: buildNextActions(raw, fleetSum),
|
|
173
|
+
...(raw.portfolioV0 !== undefined ? { portfolioV0: raw.portfolioV0 } : {}),
|
|
173
174
|
};
|
|
174
175
|
}
|
|
175
176
|
//# 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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"}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
import { createOperatorServer } from '../mcp/operator-server.js';
|
|
15
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
16
|
+
const server = createOperatorServer();
|
|
17
|
+
const transport = new StdioServerTransport();
|
|
18
|
+
await server.connect(transport);
|
|
19
|
+
//# sourceMappingURL=jinn-mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jinn-mcp.js","sourceRoot":"","sources":["../../src/bin/jinn-mcp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;AACtC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
package/dist/build-meta.json
CHANGED