jaspervault_cli 1.0.32 → 1.1.0
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/README.md +82 -64
- package/dist/bin/jv.js +16 -0
- package/dist/bin/jv.js.map +1 -1
- package/dist/src/commands/update.d.ts +2 -0
- package/dist/src/commands/update.js +48 -0
- package/dist/src/commands/update.js.map +1 -0
- package/dist/src/mcp/index.js +34 -3
- package/dist/src/mcp/index.js.map +1 -1
- package/dist/src/mcp/tools.js +12 -0
- package/dist/src/mcp/tools.js.map +1 -1
- package/dist/src/templates/skill-content/frontmatter/openclaw.md +2 -2
- package/dist/src/utils/update-checker.d.ts +8 -0
- package/dist/src/utils/update-checker.js +100 -0
- package/dist/src/utils/update-checker.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,90 +1,108 @@
|
|
|
1
1
|
# JasperVault CLI
|
|
2
2
|
|
|
3
|
-
Trade
|
|
3
|
+
Trade perpetual contracts with built-in hedge protection on [JasperVault](https://www.jaspervault.io/). Connect your AI agent, set up your wallet via browser signing, and trade with natural language — your private keys never leave your browser.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Why JasperVault
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### PPO: On-Chain Hedge Option Protection
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
JasperVault is the first perpetuals protocol with integrated **PPO (Perpetual Protection Option)** — an on-chain hedge option that automatically protects your position against sudden price wicks and liquidation cascades.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
npm install -g jaspervault_cli
|
|
13
|
-
```
|
|
11
|
+
**The problem:** In leveraged perpetual trading, flash crashes and price wicks ("pin bars") can liquidate positions in seconds, even when the market quickly recovers. Stop-loss orders often fail to protect against these events because they execute *at* the wick price, locking in losses.
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
**The solution:** PPO attaches a real option contract to your perpetual position. When the market spikes against you:
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
```
|
|
15
|
+
- **Your position survives the wick** — the option payoff offsets the unrealized loss, preventing liquidation
|
|
16
|
+
- **No slippage risk** — unlike stop-losses, PPO is peer-to-peer fully collateralized settlement, not dependent on orderbook depth
|
|
17
|
+
- **Automatic hedge type** — LONG positions get PUT protection, SHORT positions get CALL protection
|
|
18
|
+
- **Flexible configuration** — choose ATM or OTM strikes (tiers 1-5, 0.1%–0.5% offset), 30-minute or 8-hour expiry
|
|
22
19
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
> "Open a long BTC position with 100 USDC"
|
|
20
|
+
```
|
|
21
|
+
Without PPO: Price wick → Liquidation → Position gone → Market recovers → You're out
|
|
22
|
+
With PPO: Price wick → Option payoff absorbs loss → Position survives → Market recovers → You profit
|
|
23
|
+
```
|
|
28
24
|
|
|
29
|
-
|
|
25
|
+
### Trade via AI, Not Dashboards
|
|
30
26
|
|
|
31
|
-
|
|
27
|
+
The CLI bridges AI agents and JasperVault — tell your AI what you want in plain language, and it executes the full workflow: wallet setup, deposits, order placement, TP/SL, and PPO management.
|
|
32
28
|
|
|
33
|
-
##
|
|
29
|
+
## Quick Start
|
|
34
30
|
|
|
35
|
-
|
|
31
|
+
```bash
|
|
32
|
+
# 1. Install
|
|
33
|
+
npm install -g jaspervault_cli
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
| "Go short ETH with 50 USDC at 3800" | Places a limit short on JETH |
|
|
42
|
-
| "Close my BTC position" | Queries your position, then closes it |
|
|
43
|
-
| "Set take-profit at 110000 for order 99" | Places a TP limit order |
|
|
44
|
-
| "Set stop-loss at 60000 for order 99" | Places a SL limit order |
|
|
45
|
-
| "Show my positions" | Lists all active positions |
|
|
46
|
-
| "What's the current BTC price?" | Fetches real-time price |
|
|
47
|
-
| "Deposit 500 USDC" | Opens browser to approve deposit |
|
|
48
|
-
| "Withdraw 100 USDC" | Opens browser to sign withdrawal |
|
|
49
|
-
| "Add PPO protection to order 42" | Adds hedge option to existing position |
|
|
35
|
+
# 2. Connect to your AI platform
|
|
36
|
+
jv install --ai claude # Claude Code
|
|
37
|
+
jv install --ai cursor # Cursor
|
|
38
|
+
jv install --ai openclaw # OpenClaw
|
|
50
39
|
|
|
51
|
-
|
|
40
|
+
# 3. Start trading — open your AI agent and say:
|
|
41
|
+
# "Open a long BTC position with 100 USDC and PPO protection"
|
|
42
|
+
```
|
|
52
43
|
|
|
53
|
-
##
|
|
44
|
+
## What You Can Do
|
|
54
45
|
|
|
55
|
-
|
|
|
46
|
+
| Action | Example |
|
|
47
|
+
|--------|---------|
|
|
48
|
+
| Open with PPO | "Long BTC with 100 USDC and hedge protection" |
|
|
49
|
+
| Open position | "Long BTC with 100 USDC at 50x leverage" |
|
|
50
|
+
| Limit order | "Short BTC with 50 USDC at 95000" |
|
|
51
|
+
| Add PPO to position | "Add PPO protection to order 42" |
|
|
52
|
+
| Custom PPO | "Protect order 42 with OTM tier 3 for 8 hours" |
|
|
53
|
+
| Close position | "Close my BTC position" |
|
|
54
|
+
| Take-profit | "Set TP at 110000 for order 99" |
|
|
55
|
+
| Stop-loss | "Set SL at 88000 for order 99" |
|
|
56
|
+
| View positions | "Show my positions" |
|
|
57
|
+
| Price query | "What's the current BTC price?" |
|
|
58
|
+
| Deposit | "Deposit 500 USDC" |
|
|
59
|
+
| Withdraw | "Withdraw 100 USDC" |
|
|
60
|
+
|
|
61
|
+
## PPO at a Glance
|
|
62
|
+
|
|
63
|
+
| Parameter | Options | Default |
|
|
64
|
+
|-----------|---------|---------|
|
|
65
|
+
| Category | ATM (at-the-money) / OTM (out-of-the-money) | ATM |
|
|
66
|
+
| OTM Tier | 1–5 (0.1%–0.5% strike offset) | — |
|
|
67
|
+
| Expiry | 30 minutes / 8 hours | 30 min |
|
|
68
|
+
| Hedge type | PUT for longs, CALL for shorts | Auto |
|
|
69
|
+
|
|
70
|
+
PPO can be added when opening a position, added to an existing position, or combined with TP/SL orders.
|
|
71
|
+
|
|
72
|
+
## Platform Support
|
|
73
|
+
|
|
74
|
+
| Platform | Install | Integration |
|
|
56
75
|
|----------|---------|-------------|
|
|
57
|
-
| Claude Code | `jv install --ai claude` |
|
|
58
|
-
| Claude Code (global) | `jv install --ai claude --global` |
|
|
59
|
-
| Cursor | `jv install --ai cursor` |
|
|
60
|
-
| Cursor (global) | `jv install --ai cursor --global` |
|
|
61
|
-
| OpenClaw | `jv install --ai openclaw` |
|
|
62
|
-
| All platforms | `jv install` |
|
|
76
|
+
| Claude Code | `jv install --ai claude` | MCP server (project-level) |
|
|
77
|
+
| Claude Code (global) | `jv install --ai claude --global` | MCP server (user-level) |
|
|
78
|
+
| Cursor | `jv install --ai cursor` | MCP server (project-level) |
|
|
79
|
+
| Cursor (global) | `jv install --ai cursor --global` | MCP server (user-level) |
|
|
80
|
+
| OpenClaw | `jv install --ai openclaw` | Skill-based execution |
|
|
81
|
+
| All platforms | `jv install` | Global install to all |
|
|
63
82
|
|
|
64
|
-
|
|
83
|
+
## How It Works
|
|
65
84
|
|
|
66
|
-
|
|
85
|
+
```
|
|
86
|
+
You (natural language) → AI Agent → MCP Server → CLI → JasperVault API → Blockchain
|
|
87
|
+
```
|
|
67
88
|
|
|
68
|
-
|
|
89
|
+
1. **Browser-based signing** — Connect your wallet through a hosted web page. No private key export required.
|
|
90
|
+
2. **Delegation model** — Sign once to authorize a local delegation key. Your AI executes trades without repeated approvals.
|
|
91
|
+
3. **Cross-chain deposits** — Bridge assets from Base to JasperVault via Hyperlane, all through the same conversational interface.
|
|
69
92
|
|
|
70
|
-
|
|
71
|
-
jv --help
|
|
72
|
-
```
|
|
93
|
+
## Documentation
|
|
73
94
|
|
|
74
|
-
- [User Guide](docs/USER_GUIDE.md) —
|
|
75
|
-
- [OpenClaw Guide](docs/OPENCLAW_GUIDE.md) —
|
|
95
|
+
- [User Guide](docs/USER_GUIDE.md) — Complete CLI reference, PPO details, and configuration
|
|
96
|
+
- [OpenClaw Guide](docs/OPENCLAW_GUIDE.md) — Step-by-step setup for OpenClaw users
|
|
76
97
|
|
|
77
|
-
|
|
98
|
+
## Security & Trust Model
|
|
78
99
|
|
|
79
|
-
|
|
100
|
+
**Non-Custodial — We Never Hold Your Keys**
|
|
101
|
+
- JasperVault and the CLI **do not hold, store, or have access to your private keys** at any point — your keys remain exclusively in your browser wallet
|
|
102
|
+
- Trade execution uses a locally generated delegation key (`~/.jaspervault/keys.json`), which is scoped to the operations you explicitly authorized and stored only on your device
|
|
103
|
+
- No secrets are shared with AI platforms, MCP servers, or third-party services
|
|
80
104
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
npm link # makes `jv` available globally from local source
|
|
86
|
-
|
|
87
|
-
npm run typecheck # TypeScript type checking
|
|
88
|
-
npm test # Run tests
|
|
89
|
-
npm run dev -- orders list --pretty # Run via tsx without building
|
|
90
|
-
```
|
|
105
|
+
**On-Chain Settlement**
|
|
106
|
+
- All perpetual positions and PPO hedge options are peer-to-peer with fully collateralized counterparties — no pooled fund risk
|
|
107
|
+
- Every operation is executed and settled on-chain via smart contracts with EIP-712 typed signatures
|
|
108
|
+
- Cross-chain deposits use Hyperlane's verified message passing
|
package/dist/bin/jv.js
CHANGED
|
@@ -15,6 +15,8 @@ import { registerWithdrawCommand } from '../src/commands/withdraw.js';
|
|
|
15
15
|
import { registerInstallCommand } from '../src/commands/install.js';
|
|
16
16
|
import { registerPriceCommand } from '../src/commands/price.js';
|
|
17
17
|
import { registerMcpCommand } from '../src/commands/mcp.js';
|
|
18
|
+
import { registerUpdateCommand } from '../src/commands/update.js';
|
|
19
|
+
import { checkForUpdate, formatUpdateNotification } from '../src/utils/update-checker.js';
|
|
18
20
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
19
21
|
const { version } = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
|
|
20
22
|
const program = new Command();
|
|
@@ -34,5 +36,19 @@ registerWithdrawCommand(program);
|
|
|
34
36
|
registerInstallCommand(program);
|
|
35
37
|
registerPriceCommand(program);
|
|
36
38
|
registerMcpCommand(program);
|
|
39
|
+
registerUpdateCommand(program);
|
|
40
|
+
program.hook('postAction', async (thisCommand) => {
|
|
41
|
+
if (thisCommand.name() === 'mcp' || thisCommand.name() === 'update')
|
|
42
|
+
return;
|
|
43
|
+
try {
|
|
44
|
+
const result = await checkForUpdate();
|
|
45
|
+
if (result?.updateAvailable) {
|
|
46
|
+
process.stderr.write(formatUpdateNotification(result));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// silently ignore
|
|
51
|
+
}
|
|
52
|
+
});
|
|
37
53
|
program.parse();
|
|
38
54
|
//# sourceMappingURL=jv.js.map
|
package/dist/bin/jv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jv.js","sourceRoot":"","sources":["../../bin/jv.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"jv.js","sourceRoot":"","sources":["../../bin/jv.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1F,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CACtC,CAAC;AAEzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAE/B,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;IAC/C,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO;IAC5E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QACtC,IAAI,MAAM,EAAE,eAAe,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kBAAkB;IACpB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { checkForUpdate } from '../utils/update-checker.js';
|
|
3
|
+
export function registerUpdateCommand(program) {
|
|
4
|
+
program
|
|
5
|
+
.command('update')
|
|
6
|
+
.description('Check for and install the latest version of jaspervault_cli')
|
|
7
|
+
.option('--force', 'Skip version check and always run npm update')
|
|
8
|
+
.action(async (opts) => {
|
|
9
|
+
if (!opts.force) {
|
|
10
|
+
console.log('Checking for updates...');
|
|
11
|
+
const result = await checkForUpdate();
|
|
12
|
+
if (!result) {
|
|
13
|
+
console.log('Unable to check for updates. Running update anyway...');
|
|
14
|
+
}
|
|
15
|
+
else if (!result.updateAvailable) {
|
|
16
|
+
console.log(`Already on the latest version (${result.currentVersion})`);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
console.log(`Updating from ${result.currentVersion} to ${result.latestVersion}...`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const child = spawn('npm', ['update', '-g', 'jaspervault_cli'], {
|
|
24
|
+
stdio: 'inherit',
|
|
25
|
+
shell: true,
|
|
26
|
+
});
|
|
27
|
+
child.on('close', (code) => {
|
|
28
|
+
if (code === 0) {
|
|
29
|
+
console.log('\nUpdate complete! Run `jv --version` to verify.');
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.error(`\nUpdate failed (exit code ${code}).` +
|
|
33
|
+
'\nTry: sudo npm update -g jaspervault_cli');
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
child.on('error', (err) => {
|
|
38
|
+
if (err.code === 'EACCES') {
|
|
39
|
+
console.error('Permission denied. Try: sudo npm update -g jaspervault_cli');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
console.error('Update failed:', err.message);
|
|
43
|
+
}
|
|
44
|
+
process.exit(1);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAqB,MAAM,4BAA4B,CAAC;AAE/E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,SAAS,EAAE,8CAA8C,CAAC;SACjE,MAAM,CAAC,KAAK,EAAE,IAAyB,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,kCAAkC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE;YAC9D,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,8BAA8B,IAAI,IAAI;oBACtC,2CAA2C,CAC5C,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/src/mcp/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
3
3
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
4
4
|
import { TOOLS, POSITIONAL_ARGS } from './tools.js';
|
|
5
5
|
import { execCli, argsToFlags, parseLastJson } from './executor.js';
|
|
6
|
+
import { checkForUpdate, getCurrentVersion } from '../utils/update-checker.js';
|
|
6
7
|
export async function startMcpServer() {
|
|
7
8
|
const server = new Server({ name: 'jasper-vault', version: '1.0.0' }, { capabilities: { tools: {} } });
|
|
8
9
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
@@ -14,6 +15,19 @@ export async function startMcpServer() {
|
|
|
14
15
|
}));
|
|
15
16
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
16
17
|
const { name, arguments: rawArgs } = request.params;
|
|
18
|
+
// Handle check_update tool specially
|
|
19
|
+
if (name === 'check_update') {
|
|
20
|
+
const updateResult = await checkForUpdate();
|
|
21
|
+
const response = updateResult ?? {
|
|
22
|
+
updateAvailable: false,
|
|
23
|
+
currentVersion: getCurrentVersion(),
|
|
24
|
+
latestVersion: getCurrentVersion(),
|
|
25
|
+
note: 'Unable to check for updates',
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
content: [{ type: 'text', text: JSON.stringify(response, null, 2) }],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
17
31
|
const tool = TOOLS.find((t) => t.name === name);
|
|
18
32
|
if (!tool) {
|
|
19
33
|
return {
|
|
@@ -48,9 +62,26 @@ export async function startMcpServer() {
|
|
|
48
62
|
const text = parsed !== null
|
|
49
63
|
? JSON.stringify(parsed, null, 2)
|
|
50
64
|
: result.stdout;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
65
|
+
const content = [{ type: 'text', text }];
|
|
66
|
+
// Append update metadata if a newer version is available
|
|
67
|
+
try {
|
|
68
|
+
const updateResult = await checkForUpdate();
|
|
69
|
+
if (updateResult?.updateAvailable) {
|
|
70
|
+
content.push({
|
|
71
|
+
type: 'text',
|
|
72
|
+
text: JSON.stringify({
|
|
73
|
+
_meta: 'update_available',
|
|
74
|
+
currentVersion: updateResult.currentVersion,
|
|
75
|
+
latestVersion: updateResult.latestVersion,
|
|
76
|
+
updateCommand: 'jv update',
|
|
77
|
+
}),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// silently ignore
|
|
83
|
+
}
|
|
84
|
+
return { content };
|
|
54
85
|
});
|
|
55
86
|
const transport = new StdioServerTransport();
|
|
56
87
|
await server.connect(transport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mcp/tools.js
CHANGED
|
@@ -239,6 +239,18 @@ export const TOOLS = [
|
|
|
239
239
|
cliCommand: ['withdraw'],
|
|
240
240
|
timeoutMs: 960_000,
|
|
241
241
|
},
|
|
242
|
+
// ── Utility ──
|
|
243
|
+
{
|
|
244
|
+
name: 'check_update',
|
|
245
|
+
description: 'Check if a newer version of jaspervault_cli is available. ' +
|
|
246
|
+
'Returns current version, latest version, and whether an update is available.',
|
|
247
|
+
inputSchema: {
|
|
248
|
+
type: 'object',
|
|
249
|
+
properties: {},
|
|
250
|
+
required: [],
|
|
251
|
+
},
|
|
252
|
+
cliCommand: [],
|
|
253
|
+
},
|
|
242
254
|
];
|
|
243
255
|
/**
|
|
244
256
|
* Parameters that are positional arguments (not flags) in CLI.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jasper-vault-cli
|
|
3
|
-
description: "Use when the user mentions JasperVault, perps trading, perpetual contracts, opening/closing positions, setting take-profit or stop-loss, depositing or withdrawing crypto, checking portfolio or positions, PPO hedge options, or wallet
|
|
4
|
-
trigger: "
|
|
3
|
+
description: "Use when the user mentions JasperVault, perps trading, perpetual contracts, opening/closing positions, setting take-profit or stop-loss, depositing or withdrawing crypto, checking portfolio or positions, PPO hedge options, wallet setup, or any crypto trading intent (long, short, leverage, margin). Also activate when the user wants to set up, reset, or connect a wallet for trading. This skill handles ALL trading operations via jasper-vault MCP tools — no private keys needed."
|
|
4
|
+
trigger: "jasper|vault|perps|perpetual|jv |钱包|wallet|开仓|平仓|做多|做空|long|short|止盈|止损|持仓|仓位|position|portfolio|永续|合约|充值|提款|存款|入金|出金|deposit|withdraw|bridge|价格|行情|交易|trade|leverage|杠杆|对冲|PPO|hedge|限价|市价"
|
|
5
5
|
tools: [mcp]
|
|
6
6
|
metadata:
|
|
7
7
|
openclaw:
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface UpdateCheckResult {
|
|
2
|
+
updateAvailable: boolean;
|
|
3
|
+
currentVersion: string;
|
|
4
|
+
latestVersion: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function getCurrentVersion(): string;
|
|
7
|
+
export declare function checkForUpdate(): Promise<UpdateCheckResult | null>;
|
|
8
|
+
export declare function formatUpdateNotification(result: UpdateCheckResult): string;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { get } from 'node:https';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
import { dirname } from 'node:path';
|
|
7
|
+
const CACHE_DIR = join(homedir(), '.jaspervault');
|
|
8
|
+
const CACHE_FILE = join(CACHE_DIR, 'update-check.json');
|
|
9
|
+
const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000;
|
|
10
|
+
const REGISTRY_URL = 'https://registry.npmjs.org/jaspervault_cli/latest';
|
|
11
|
+
const FETCH_TIMEOUT_MS = 5000;
|
|
12
|
+
export function getCurrentVersion() {
|
|
13
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, '../../../package.json'), 'utf-8'));
|
|
15
|
+
return pkg.version;
|
|
16
|
+
}
|
|
17
|
+
function readCache() {
|
|
18
|
+
try {
|
|
19
|
+
if (!existsSync(CACHE_FILE))
|
|
20
|
+
return null;
|
|
21
|
+
return JSON.parse(readFileSync(CACHE_FILE, 'utf-8'));
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function writeCache(data) {
|
|
28
|
+
try {
|
|
29
|
+
mkdirSync(CACHE_DIR, { recursive: true });
|
|
30
|
+
writeFileSync(CACHE_FILE, JSON.stringify(data));
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// silently ignore
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function fetchLatestVersion() {
|
|
37
|
+
return new Promise((resolve) => {
|
|
38
|
+
const req = get(REGISTRY_URL, { timeout: FETCH_TIMEOUT_MS }, (res) => {
|
|
39
|
+
let body = '';
|
|
40
|
+
res.on('data', (chunk) => { body += chunk.toString(); });
|
|
41
|
+
res.on('end', () => {
|
|
42
|
+
try {
|
|
43
|
+
const data = JSON.parse(body);
|
|
44
|
+
resolve(data.version ?? null);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
resolve(null);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
req.on('error', () => resolve(null));
|
|
52
|
+
req.on('timeout', () => { req.destroy(); resolve(null); });
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function isNewer(latest, current) {
|
|
56
|
+
const l = latest.split('.').map(Number);
|
|
57
|
+
const c = current.split('.').map(Number);
|
|
58
|
+
for (let i = 0; i < 3; i++) {
|
|
59
|
+
if ((l[i] ?? 0) > (c[i] ?? 0))
|
|
60
|
+
return true;
|
|
61
|
+
if ((l[i] ?? 0) < (c[i] ?? 0))
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
export async function checkForUpdate() {
|
|
67
|
+
try {
|
|
68
|
+
const currentVersion = getCurrentVersion();
|
|
69
|
+
const cache = readCache();
|
|
70
|
+
let latestVersion = null;
|
|
71
|
+
if (cache && Date.now() - cache.lastCheck < CHECK_INTERVAL_MS) {
|
|
72
|
+
latestVersion = cache.latestVersion;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
latestVersion = await fetchLatestVersion();
|
|
76
|
+
if (latestVersion === null)
|
|
77
|
+
return null;
|
|
78
|
+
writeCache({ lastCheck: Date.now(), latestVersion });
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
updateAvailable: isNewer(latestVersion, currentVersion),
|
|
82
|
+
currentVersion,
|
|
83
|
+
latestVersion,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export function formatUpdateNotification(result) {
|
|
91
|
+
const isTTY = process.stderr.isTTY;
|
|
92
|
+
const yellow = isTTY ? '\x1b[33m' : '';
|
|
93
|
+
const reset = isTTY ? '\x1b[0m' : '';
|
|
94
|
+
const bold = isTTY ? '\x1b[1m' : '';
|
|
95
|
+
return (`\n${yellow}╭──────────────────────────────────────────────╮\n` +
|
|
96
|
+
`│ ${bold}Update available${reset}${yellow}: ${result.currentVersion} → ${result.latestVersion}${' '.repeat(Math.max(0, 15 - result.currentVersion.length - result.latestVersion.length))}│\n` +
|
|
97
|
+
`│ Run: ${bold}jv update${reset}${yellow} │\n` +
|
|
98
|
+
`╰──────────────────────────────────────────────╯${reset}\n`);
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=update-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../../src/utils/update-checker.ts"],"names":[],"mappings":"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"}
|