jaspervault_cli 1.0.29 → 1.0.30

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.
@@ -1,3 +1,4 @@
1
+ import { join } from 'node:path';
1
2
  import { ethers } from 'ethers';
2
3
  import { loadConfig } from '../utils/config.js';
3
4
  import { ENDPOINTS } from '../utils/endpoints.js';
@@ -7,6 +8,9 @@ import { getNetworkConfig } from '../services/chain-config.js';
7
8
  import { loadOrGenerateDelegationKey, saveDelegationKey } from '../services/key-manager.js';
8
9
  import { saveVaultProfile } from '../services/vault-profile.js';
9
10
  import { pollSession } from '../services/session-poller.js';
11
+ function getJvDir() {
12
+ return join(process.env.HOME || process.env.USERPROFILE || '', '.jaspervault');
13
+ }
10
14
  const PERPS_OPTION_MODULE_ABI = [
11
15
  'function getUserDelegationWhiteListNonce(address wallet) view returns (uint256)',
12
16
  ];
@@ -142,22 +146,27 @@ export function registerVaultCommand(program) {
142
146
  vault
143
147
  .command('setup')
144
148
  .description('Set up vault via hosted web page — generates a URL for the user to sign in their browser (no PRIVATE_KEY needed)')
145
- .option('--network <name>', 'Network name (signing happens on Base)', 'base_uat')
146
149
  .option('--vault-types <types>', 'Comma-separated vault types', '33,37')
147
150
  .option('--timeout <seconds>', 'Polling timeout in seconds', '900')
148
151
  .option('--pretty', 'Pretty-print JSON output')
149
152
  .action(async (opts) => {
150
153
  const config = loadConfig();
151
- const net = getNetworkConfig(opts.network);
152
- const { privateKey: delegationKey, address: delegationAddress, wasGenerated } = loadOrGenerateDelegationKey(opts.network);
154
+ // EIP-712 domain uses Base chain (wallet is on Base)
155
+ const baseNet = getNetworkConfig('base_uat');
156
+ // Nonce + vault operations use JasperVault chain (where manager executes)
157
+ const jvNet = getNetworkConfig('jaspervault');
158
+ const { privateKey: delegationKey, address: delegationAddress, wasGenerated } = loadOrGenerateDelegationKey('jaspervault');
153
159
  const delegationWallet = new ethers.Wallet(delegationKey);
154
- const provider = new ethers.JsonRpcProvider(net.rpcUrl);
160
+ const jvProvider = new ethers.JsonRpcProvider(jvNet.rpcUrl);
161
+ // Session template for the browser page:
162
+ // - domain: Base chain (chainId 8453 + Base Diamond) — matches wallet's active chain
163
+ // - nonce: read from JasperVault chain — matches where manager executes
155
164
  const delegationSignDataTemplate = {
156
165
  domain: {
157
166
  name: 'jasperVault',
158
167
  version: '1.0',
159
- chainId: net.chainId,
160
- verifyingContract: net.contracts.diamond,
168
+ chainId: baseNet.chainId,
169
+ verifyingContract: baseNet.contracts.diamond,
161
170
  },
162
171
  types: {
163
172
  SignerWhiteListData: [
@@ -177,16 +186,15 @@ export function registerVaultCommand(program) {
177
186
  deadline: '',
178
187
  name: 'jasperVaultDelegateDemo',
179
188
  },
180
- vaultFactory: net.contracts.vaultFactory,
181
- perpsOptionModuleHandle: net.contracts.perpsOptionModuleHandle,
182
- rpcUrl: net.rpcUrl,
189
+ perpsOptionModuleHandle: jvNet.contracts.perpsOptionModuleHandle,
190
+ rpcUrl: jvNet.rpcUrl,
183
191
  };
184
192
  const vaultTypes = opts.vaultTypes.split(',').map((s) => parseInt(s.trim(), 10));
185
193
  const apiClient = new ApiClient(config);
186
194
  const sessionBody = {
187
195
  type: 'vault_setup',
188
- network: opts.network,
189
- chainId: net.chainId,
196
+ network: 'jaspervault',
197
+ chainId: baseNet.chainId,
190
198
  delegationAddress,
191
199
  delegationSignData: delegationSignDataTemplate,
192
200
  };
@@ -198,6 +206,7 @@ export function registerVaultCommand(program) {
198
206
  exitWithError(`Failed to create session: ${err.message}`, EXIT_CODES.HTTP_ERROR);
199
207
  }
200
208
  const { sessionId, url, expiresAt } = sessionRes.data;
209
+ // Output the URL for the agent to send to the user
201
210
  printJson({
202
211
  status: 'session_created',
203
212
  sessionId,
@@ -205,15 +214,18 @@ export function registerVaultCommand(program) {
205
214
  expiresAt,
206
215
  message: 'Open this URL in your browser to connect wallet and complete setup',
207
216
  }, opts.pretty);
217
+ // Poll for completion
208
218
  const timeoutMs = parseInt(opts.timeout, 10) * 1000 || 900_000;
209
219
  const result = await pollSession(apiClient, sessionId, { timeoutMs });
210
220
  if (result.status === 'completed' && result.result) {
211
221
  const walletAddress = result.result.walletAddress;
212
222
  const delegationSig = result.result.delegationSignature;
213
223
  const delegationMsg = result.result.delegationMessage;
214
- const { createVaultSignData, signatureList } = await generateVaultSignatures(walletAddress, delegationWallet, vaultTypes, net.contracts.vaultFactory, provider);
224
+ // Generate vault signatures with delegation key (JasperVault factory)
225
+ const { createVaultSignData, signatureList } = await generateVaultSignatures(walletAddress, delegationWallet, vaultTypes, jvNet.contracts.vaultFactory, jvProvider);
226
+ // Request body chainId = Base (8453) — for contract EIP-712 signature verification
215
227
  const vaultInitBody = {
216
- chainId: String(net.chainId),
228
+ chainId: String(baseNet.chainId),
217
229
  delegationSignature: {
218
230
  message: delegationMsg,
219
231
  signature: delegationSig,
@@ -230,9 +242,10 @@ export function registerVaultCommand(program) {
230
242
  process.exit(EXIT_CODES.BUSINESS_ERROR);
231
243
  }
232
244
  if (wasGenerated) {
233
- saveDelegationKey(delegationKey, delegationAddress, opts.network);
245
+ saveDelegationKey(delegationKey, delegationAddress, 'jaspervault');
234
246
  }
235
- const vaultFactory = new ethers.Contract(net.contracts.vaultFactory, ['function getAddress(address wallet, uint256 salt) view returns (address)'], provider);
247
+ // Compute vault addresses from JasperVault factory
248
+ const vaultFactory = new ethers.Contract(jvNet.contracts.vaultFactory, ['function getAddress(address wallet, uint256 salt) view returns (address)'], jvProvider);
236
249
  const getAddr = vaultFactory.getFunction('getAddress');
237
250
  const marginAccount = (await getAddr(walletAddress, 1));
238
251
  const vaultEntries = await Promise.all(vaultTypes.map(async (type) => {
@@ -242,7 +255,7 @@ export function registerVaultCommand(program) {
242
255
  saveVaultProfile({
243
256
  eoa: walletAddress,
244
257
  delegationAddress,
245
- network: opts.network,
258
+ network: 'jaspervault',
246
259
  vaults: vaultEntries,
247
260
  marginAccount,
248
261
  });
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/commands/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/commands/vault.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@
3
3
  * Generates a multi-file skill structure:
4
4
  * SKILL.md — compact core rules + activation + intent table
5
5
  * references/ — detailed docs loaded on demand by the agent
6
- * scripts/ — helper scripts
7
6
  *
8
7
  * All content is read from skill-content/ directory (independent .md files).
9
8
  */
@@ -3,7 +3,6 @@
3
3
  * Generates a multi-file skill structure:
4
4
  * SKILL.md — compact core rules + activation + intent table
5
5
  * references/ — detailed docs loaded on demand by the agent
6
- * scripts/ — helper scripts
7
6
  *
8
7
  * All content is read from skill-content/ directory (independent .md files).
9
8
  */
@@ -75,7 +74,6 @@ export function buildSkillContent(platform) {
75
74
  'references/onboarding.md': readContent('references/onboarding.md'),
76
75
  'references/trading.md': readContent('references/trading.md'),
77
76
  'references/queries.md': readContent('references/queries.md'),
78
- 'scripts/check-init.sh': readContent('scripts/check-init.sh'),
79
77
  };
80
78
  }
81
79
  //# sourceMappingURL=skill-body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-body.js","sourceRoot":"","sources":["../../../src/templates/skill-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,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;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CACzC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,OAAO,CAAC,CACzC,CAAC;AAEzB,sEAAsE;AACtE,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;wBAcE,WAAW;;CAElC,CAAC,IAAI,EAAE,CAAC;AAIT,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAErD,SAAS,WAAW,CAAC,YAAoB;IACvC,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,SAAS,cAAc,CAAC,QAAgB;IACtC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC,yBAAyB,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,uBAAuB,CAAC,CAAC;QAC9C,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,CAAC,+CAA+C;QAC5D;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,OAAe,CAAC;IACpB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,wBAAwB,GAAG,QAAQ,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,0BAA0B,EAAE,WAAW,CAAC,0BAA0B,CAAC;QACnE,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC7D,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC7D,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;KAC9D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"skill-body.js","sourceRoot":"","sources":["../../../src/templates/skill-body.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,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;AAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CACzC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,OAAO,CAAC,CACzC,CAAC;AAEzB,sEAAsE;AACtE,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;wBAcE,WAAW;;CAElC,CAAC,IAAI,EAAE,CAAC;AAIT,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAErD,SAAS,WAAW,CAAC,YAAoB;IACvC,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,SAAS,cAAc,CAAC,QAAgB;IACtC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,WAAW,CAAC,yBAAyB,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,uBAAuB,CAAC,CAAC;QAC9C,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,CAAC,+CAA+C;QAC5D;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;IAC3F,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,OAAe,CAAC;IACpB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,wBAAwB,GAAG,QAAQ,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,0BAA0B,EAAE,WAAW,CAAC,0BAA0B,CAAC;QACnE,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;QAC7D,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,CAAC;KAC9D,CAAC;AACJ,CAAC"}
@@ -1,58 +1,82 @@
1
1
  # JasperVault Trading Skill
2
2
 
3
- Trade perpetual contracts on JasperVault using the `jasper-vault` MCP tools. No private key is ever required the user signs in their browser.
3
+ Trade perpetual contracts on JasperVault. All operations use `jasper-vault` MCP tools — no shell commands, no private keys.
4
4
 
5
- ## How It Works
5
+ ## CRITICAL RULES
6
6
 
7
- JasperVault provides MCP tools (via `jasper-vault` MCP server) for all trading operations. These tools handle timeouts, polling, and error recovery automatically. Always use MCP tools never run `jv` shell commands directly, because long-running operations like wallet setup will be killed by shell timeouts.
7
+ 1. **MCP tools ONLY.** Never run `jv` shell commands. Never use Bash/terminal to execute CLI commands. The MCP server handles everything — timeouts, polling, error recovery. Shell commands will be killed by timeouts on long-running operations.
8
8
 
9
- ## Important Behaviors
9
+ 2. **Never ask for private keys.** The system uses a delegation wallet. `wallet_setup` creates and saves it automatically. If you find yourself thinking "the user needs a private key" — STOP. That thought is wrong. The delegation key is auto-generated and stored locally. The user never sees or touches it.
10
10
 
11
- 1. **Browser signing**: `wallet_setup` and `deposit_via_browser` return a URL. Display it as a clickable link — the user opens it in their browser to connect their wallet and sign. The tool polls automatically and returns the result when done (up to 16 minutes).
11
+ 3. **`wallet_setup` success = fully initialized.** After `wallet_setup` returns success, the vault IS ready. You can immediately call `list_orders`, `create_order`, `get_price`, or any other tool. There is no "second step" or "additional initialization". One setup, everything works.
12
12
 
13
- 2. **Real-time prices**: Always call `get_price` before any price-dependent operation. Never guess prices they change every second.
13
+ 4. **Browser signing flow.** `wallet_setup`, `deposit_via_browser`, and `withdraw_via_browser` return a `url` field. Display it as a **clickable link** with the expiry info. The tool polls automatically (up to 16 minutes) and returns the result. Don't tell the user to run anything else while waiting.
14
14
 
15
- 3. **PPO auto-cancellation**: The smart contract automatically cancels existing PPO hedge options when you execute any position operation (reduce, close, add size) without `ppo: true`. There is no separate "cancel PPO" tool. Attempting a separate cancellation risks unintended position closures.
15
+ 5. **Real-time prices.** Always call `get_price` before any price-dependent operation (opening positions, setting TP/SL). Never guess or remember old prices.
16
16
 
17
- 4. **Standalone PPO**: To add hedge protection to an existing position, use `protect_order`. Don't use `create_order` with `ppo: true` for this — that adds position size. `create_order` with `ppo` is only for opening new positions or adding size with protection.
18
-
19
- 5. **Market order result**: `create_order` (without `limit_price`) auto-waits up to 60s for the on-chain result. If `status === "completed"`, the order is executed — don't retry or place another order. The `operation` field contains raw on-chain data in wei — don't interpret it. Use `list_orders` to verify the actual position with human-readable fields.
17
+ ## Getting Started
20
18
 
21
- 6. **Deposit flow**: `deposit_via_browser` returns a URL for the user to open in their browser. The tool polls automatically. If `arrived` is false after completion, tokens may still be in transit — tell the user to wait a few minutes.
19
+ When the user wants to trade, first check if their vault is ready:
22
20
 
23
- ## Getting Started
21
+ 1. Call `list_orders` (no parameters needed).
22
+ 2. **If it succeeds** → vault is initialized, proceed with the user's request.
23
+ 3. **If it fails** with "delegation key not found" / "vault not initialized" / "no profile" → vault needs setup:
24
+ - Call `wallet_setup`
25
+ - Display the returned URL as a clickable link
26
+ - Wait for the tool to return success
27
+ - Then proceed — the vault is now fully ready
24
28
 
25
- Check if vault is initialized by calling `list_orders`. If it fails with errors like "delegation key not found" or "vault not initialized" or "no profile":
26
- - Tell the user their vault needs initialization — they'll sign in their browser, no private key needed.
27
- - Call `wallet_setup` and display the returned URL as a clickable link.
28
- - Wait for the tool to return success, then proceed.
29
+ **After `wallet_setup` succeeds, ALL tools work immediately.** Do not ask for private keys. Do not suggest additional setup steps. Do not say "CLI needs initialization". Just start using the tools.
29
30
 
30
- ## Intent → MCP Tool Reference
31
+ ## Intent → MCP Tool
31
32
 
32
- | User Intent | MCP Tool | Key Parameters | Details |
33
- |-------------|----------|----------------|---------|
33
+ | User Intent | MCP Tool | Required Params | Reference |
34
+ |---|---|---|---|
34
35
  | Initialize wallet | `wallet_setup` | — | [onboarding](references/onboarding.md) |
35
36
  | Deposit tokens | `deposit_via_browser` | `token`, `amount` | [onboarding](references/onboarding.md) |
36
37
  | Withdraw tokens | `withdraw_via_browser` | `token`, `amount` | [onboarding](references/onboarding.md) |
37
- | Get current price | `get_price` | `symbol` | [queries](references/queries.md) |
38
+ | Get price | `get_price` | `symbol` | [queries](references/queries.md) |
38
39
  | Open position (market) | `create_order` | `side`, `symbol`, `margin` | [trading](references/trading.md) |
39
40
  | Open position (limit) | `create_order` | + `limit_price` | [trading](references/trading.md) |
40
- | Close position | `create_order` | opposite `side` | [trading](references/trading.md) |
41
+ | Close/reduce position | `create_order` | opposite `side` | [trading](references/trading.md) |
41
42
  | Add size | `create_order` | same `side` | [trading](references/trading.md) |
42
43
  | Set take-profit | `set_take_profit` | `order_id`, `price`, `symbol` | [trading](references/trading.md) |
43
44
  | Set stop-loss | `set_stop_loss` | `order_id`, `price`, `symbol` | [trading](references/trading.md) |
44
- | Add PPO to existing | `protect_order` | `order_id`, `symbol` | [trading](references/trading.md) |
45
+ | Add PPO hedge | `protect_order` | `order_id`, `symbol` | [trading](references/trading.md) |
45
46
  | Open with PPO | `create_order` | + `ppo: true` | [trading](references/trading.md) |
46
- | Remove hedge | `create_order` | without `ppo` | [trading](references/trading.md) |
47
47
  | List positions | `list_orders` | — | [queries](references/queries.md) |
48
48
  | Get position detail | `get_order` | `order_id` | [queries](references/queries.md) |
49
49
  | Portfolio stats | `get_order_stats` | — | [queries](references/queries.md) |
50
- | Job status | `get_job_status` | `job_id` | [queries](references/queries.md) |
50
+ | Check job status | `get_job_status` | `job_id` | [queries](references/queries.md) |
51
51
  | List limit orders | `list_limit_orders` | `wallet` | [queries](references/queries.md) |
52
52
  | Cancel limit order | `cancel_limit_order` | `limit_order_id` | [queries](references/queries.md) |
53
53
 
54
+ ## Key Behaviors
55
+
56
+ **Market orders** (no `limit_price`): The tool auto-waits up to 60s for on-chain confirmation. If `status === "completed"`, the order IS executed — don't retry. Use `list_orders` to see the position with human-readable fields.
57
+
58
+ **Limit orders** (`limit_price` set): Returns immediately with `limitOrderId`. The order waits for price to trigger.
59
+
60
+ **PPO auto-cancellation**: The contract automatically cancels existing PPO when you execute any position operation without `ppo: true`. There is no "cancel PPO" tool.
61
+
62
+ **Standalone PPO**: Use `protect_order` to add hedge to an existing position. Don't use `create_order` with `ppo: true` for this — that changes position size.
63
+
64
+ **Deposit arrival**: If `arrived: false` after deposit completes, tokens are still bridging cross-chain. Tell the user to wait a few minutes.
65
+
66
+ ## Red Flags — STOP If You Think This
67
+
68
+ | Wrong Thought | Reality |
69
+ |---|---|
70
+ | "User needs to provide a private key" | NEVER. Delegation key is auto-generated by `wallet_setup`. |
71
+ | "I should run `jv` in the terminal" | NEVER. Use MCP tools only. |
72
+ | "Vault setup completed but CLI needs separate init" | WRONG. `wallet_setup` does everything in one step. |
73
+ | "I need to set environment variables" | WRONG. MCP tools handle all config internally. |
74
+ | "GraphQL queries need private key authentication" | WRONG. Delegation key handles auth automatically. |
75
+ | "I should suggest the web interface instead" | NO. MCP tools give you full functionality. Use them. |
76
+ | "Let me check if jv is installed" | IRRELEVANT. MCP server runs CLI internally. |
77
+
54
78
  ## Security
55
79
 
56
80
  - Never log or display private keys, signatures, or API keys.
57
- - The system signs orders via a delegation wallet stored in `~/.jaspervault/keys.json`.
81
+ - Delegation wallet is stored in `~/.jaspervault/keys.json` — never read or display this file.
58
82
  - Never ask the user to set `PRIVATE_KEY` — that's for CI/automation only.
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  name: jasper-vault-cli
3
- description: "Trade perpetual contracts (perps) on JasperVault using the jasper-vault MCP tools — open/close positions, set TP/SL, manage limit orders, deposit/withdraw, and query portfolio. Initialize wallet via browser signing (no private key needed). Use this skill whenever the user mentions JasperVault, perps trading, opening positions, setting stop-loss or take-profit, depositing crypto, or checking their portfolio."
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 setup. Covers all trading operations via jasper-vault MCP tools no private keys needed."
4
4
  ---
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: jasper-vault-cli
3
- description: "Trade perpetual contracts (perps) on JasperVault using the jasper-vault MCP tools — open/close positions, set TP/SL, manage limit orders, deposit/withdraw, and query portfolio. Initialize wallet via browser signing (no private key needed). Use this skill whenever the user mentions JasperVault, perps trading, opening positions, setting stop-loss or take-profit, depositing crypto, or checking their portfolio."
4
- trigger: "jaspervault|jasper vault|jasper trading|jv|jv trade|jv order|在jasper交易|jasper 交易|初始化钱包|连接钱包|开仓|平仓|做多|做空|止盈|止损|查看持仓|永续合约"
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 setup. Covers all trading operations via jasper-vault MCP tools no private keys needed."
4
+ trigger: "jaspervault|jasper vault|jasper trading|jv|jv trade|jv order|在jasper交易|jasper 交易|初始化钱包|连接钱包|开仓|平仓|做多|做空|止盈|止损|查看持仓|永续合约|充值|提款|存款|deposit|withdraw|price|行情|对冲|PPO|hedge"
5
5
  tools: [mcp]
6
6
  metadata:
7
7
  openclaw:
@@ -1,5 +1,7 @@
1
1
  # Onboarding Reference
2
2
 
3
+ > All tools below are MCP tools. Call them directly — never run `jv` shell commands.
4
+
3
5
  ## 1. Wallet Initialization — `wallet_setup`
4
6
 
5
7
  Initialize the JasperVault delegation wallet. The user signs in their browser — no private key needed.
@@ -30,19 +32,35 @@ Initialize the JasperVault delegation wallet. The user signs in their browser
30
32
  }
31
33
  ```
32
34
 
33
- The tool automatically saves the delegation key and vault profile locally.
35
+ ### What Happens on Success
36
+
37
+ The tool automatically:
38
+ - Generates a delegation key and saves it to `~/.jaspervault/keys.json`
39
+ - Saves the vault profile (EOA, delegation address, vault addresses) to `~/.jaspervault/profile.json`
40
+ - Creates vaults on-chain
41
+
42
+ **After this, ALL tools work immediately.** You can call `list_orders`, `create_order`, `get_price`, or any other tool right away. There is no second initialization step. Do NOT ask for private keys, wallet addresses, or environment variables.
34
43
 
35
44
  ### Error Handling
36
45
 
37
46
  | Error | Cause | Action |
38
47
  |-------|-------|--------|
39
- | Session expired/failed | User didn't complete signing in time | Call `wallet_setup` again |
40
- | Failed to create session | Network/API issue | Check internet connection, retry |
48
+ | Session expired/failed | User didn't sign in time | Call `wallet_setup` again |
49
+ | Failed to create session | Network/API issue | Retry |
41
50
 
42
- ### Important
51
+ ### Common Mistakes — DO NOT DO THESE
52
+
53
+ | Mistake | Why It's Wrong |
54
+ |---------|---------------|
55
+ | Asking user for private key after setup | Delegation key is auto-generated. User never provides keys. |
56
+ | Saying "profile.json is empty" | `wallet_setup` saves profile automatically on success. |
57
+ | Suggesting `vault init` | That's for CI/automation with PRIVATE_KEY env var. Never suggest it. |
58
+ | Saying "CLI needs separate initialization" | `wallet_setup` IS the initialization. One step, fully done. |
59
+ | Running `jv orders list` in terminal | Use `list_orders` MCP tool instead. |
60
+
61
+ ### Delegation Key Expiry
43
62
 
44
- - Never suggest `vault init` that requires `PRIVATE_KEY` and is for CI/automation only.
45
- - The delegation key expires after 1 week. If tools start failing, call `wallet_setup` again.
63
+ The delegation key expires after 1 week. If tools start failing with auth errors after working previously, call `wallet_setup` again to re-authorize.
46
64
 
47
65
  ---
48
66
 
@@ -1,5 +1,8 @@
1
1
  # Queries Reference
2
2
 
3
+ > All tools below are MCP tools. Call them directly — never run `jv` shell commands.
4
+ > These tools require no setup beyond `wallet_setup`. No private keys, no environment variables.
5
+
3
6
  ## 1. List Positions — `list_orders`
4
7
 
5
8
  Query active or historical positions.
@@ -161,4 +164,14 @@ Check execution status of an async job (market order, option creation, etc.).
161
164
 
162
165
  ## Error Handling
163
166
 
164
- When a tool call fails with errors like "delegation key not found" or "vault not initialized" or "no profile", the vault needs initialization. Guide the user to run `wallet_setup`.
167
+ When a tool fails, check the error message:
168
+
169
+ | Error Pattern | Meaning | Action |
170
+ |--------------|---------|--------|
171
+ | "delegation key not found" | Vault not initialized | Call `wallet_setup` |
172
+ | "vault not initialized" | Vault not initialized | Call `wallet_setup` |
173
+ | "no profile" / "profile not found" | Vault not initialized | Call `wallet_setup` |
174
+ | "delegation expired" | Key expired (1 week limit) | Call `wallet_setup` again |
175
+ | Network/timeout errors | Transient issue | Retry the tool call |
176
+
177
+ **NEVER respond to these errors by asking for private keys or suggesting environment variables.** The answer is always `wallet_setup`.
@@ -1,5 +1,7 @@
1
1
  # Trading Reference
2
2
 
3
+ > All tools below are MCP tools. Call them directly — never run `jv` shell commands.
4
+
3
5
  ## 1. Create Order — `create_order`
4
6
 
5
7
  Open, close, reduce, or add size to perpetual positions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jaspervault_cli",
3
- "version": "1.0.29",
3
+ "version": "1.0.30",
4
4
  "description": "JasperVault CLI for interacting with the JasperVault Manager API",
5
5
  "type": "module",
6
6
  "bin": {