@vultisig/cli 0.10.0 → 0.12.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/CHANGELOG.md +20 -0
- package/README.md +1 -1
- package/dist/index.js +48 -9
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @vultisig/cli
|
|
2
2
|
|
|
3
|
+
## 0.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#165](https://github.com/vultisig/vultisig-sdk/pull/165) [`4195641`](https://github.com/vultisig/vultisig-sdk/commit/4195641a9eb27d41fb27d2c6b605b34d4c4635b0) Thanks [@rcoderdev](https://github.com/rcoderdev)! - Fast vault creation (CLI and SDK) no longer runs ML-DSA keygen; VultiServer only adds ML-DSA via `POST /mldsa`. Use `Vultisig.addPostQuantumKeysToFastVault` / `FastVault.addPostQuantumKeys` or CLI `vultisig add-mldsa` when post-quantum keys are needed. TSS batching for fast vault create now requests `ecdsa` and `eddsa` only. `MldsaKeygen` default relay message ids match VultiServer classic keygen (empty string); batch flows still pass `p-mldsa` explicitly.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`4195641`](https://github.com/vultisig/vultisig-sdk/commit/4195641a9eb27d41fb27d2c6b605b34d4c4635b0)]:
|
|
12
|
+
- @vultisig/sdk@0.12.0
|
|
13
|
+
- @vultisig/rujira@8.0.0
|
|
14
|
+
|
|
15
|
+
## 0.11.0
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [[`5286b98`](https://github.com/vultisig/vultisig-sdk/commit/5286b98d19692acd216a2c95d5a7a903217bef36)]:
|
|
20
|
+
- @vultisig/sdk@0.11.0
|
|
21
|
+
- @vultisig/rujira@7.0.0
|
|
22
|
+
|
|
3
23
|
## 0.10.0
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -668,7 +668,7 @@ explorer:https://etherscan.io/tx/0x9f8e7d6c...
|
|
|
668
668
|
|
|
669
669
|
**Agent ask options:**
|
|
670
670
|
- `--session <id>` - Continue an existing conversation
|
|
671
|
-
- `--backend-url <url>` - Agent backend URL (default:
|
|
671
|
+
- `--backend-url <url>` - Agent backend URL (default: https://abe.vultisig.com)
|
|
672
672
|
- `--password <password>` - Vault password for signing
|
|
673
673
|
- `--verbose` - Show tool calls and debug info on stderr
|
|
674
674
|
- `--json` - Output structured JSON
|
package/dist/index.js
CHANGED
|
@@ -2731,6 +2731,7 @@ function sleep(ms) {
|
|
|
2731
2731
|
|
|
2732
2732
|
// src/commands/vault-management.ts
|
|
2733
2733
|
var import_qrcode_terminal4 = __toESM(require_main(), 1);
|
|
2734
|
+
import { FastVault } from "@vultisig/sdk";
|
|
2734
2735
|
import chalk5 from "chalk";
|
|
2735
2736
|
import { promises as fs } from "fs";
|
|
2736
2737
|
import inquirer4 from "inquirer";
|
|
@@ -3030,6 +3031,35 @@ async function executeVerify(ctx2, vaultId, options = {}) {
|
|
|
3030
3031
|
return false;
|
|
3031
3032
|
}
|
|
3032
3033
|
}
|
|
3034
|
+
async function executeAddPostQuantumKeys(ctx2, options) {
|
|
3035
|
+
const vault = await ctx2.ensureActiveVault();
|
|
3036
|
+
if (!(vault instanceof FastVault)) {
|
|
3037
|
+
error("add-mldsa is only supported for fast vaults.");
|
|
3038
|
+
throw new Error("Not a fast vault");
|
|
3039
|
+
}
|
|
3040
|
+
const spinner = createSpinner("Adding ML-DSA keys...");
|
|
3041
|
+
try {
|
|
3042
|
+
let password = options.password;
|
|
3043
|
+
if (password === void 0) {
|
|
3044
|
+
password = await ctx2.getPassword(vault.id, vault.name);
|
|
3045
|
+
}
|
|
3046
|
+
await ctx2.sdk.addPostQuantumKeysToFastVault(vault, {
|
|
3047
|
+
email: options.email,
|
|
3048
|
+
password,
|
|
3049
|
+
signal: options.signal,
|
|
3050
|
+
onProgress: (u) => {
|
|
3051
|
+
if (u.message) {
|
|
3052
|
+
spinner.text = u.message;
|
|
3053
|
+
}
|
|
3054
|
+
}
|
|
3055
|
+
});
|
|
3056
|
+
spinner.succeed("ML-DSA keys added. Vault file updated \u2014 export a backup if needed.");
|
|
3057
|
+
success("Post-quantum signing is now available for this vault (where supported).");
|
|
3058
|
+
} catch (e) {
|
|
3059
|
+
spinner.fail("Failed to add ML-DSA keys");
|
|
3060
|
+
throw e;
|
|
3061
|
+
}
|
|
3062
|
+
}
|
|
3033
3063
|
async function executeExport(ctx2, options = {}) {
|
|
3034
3064
|
const vault = await ctx2.ensureActiveVault();
|
|
3035
3065
|
let exportPassword = options.exportPassword;
|
|
@@ -6956,7 +6986,7 @@ function summarizeData(data) {
|
|
|
6956
6986
|
async function executeAgent(ctx2, options) {
|
|
6957
6987
|
const vault = await ctx2.ensureActiveVault();
|
|
6958
6988
|
const config = {
|
|
6959
|
-
backendUrl: options.backendUrl || process.env.VULTISIG_AGENT_URL || "
|
|
6989
|
+
backendUrl: options.backendUrl || process.env.VULTISIG_AGENT_URL || "https://abe.vultisig.com",
|
|
6960
6990
|
vaultName: vault.name,
|
|
6961
6991
|
password: options.password,
|
|
6962
6992
|
viaAgent: options.viaAgent,
|
|
@@ -6996,7 +7026,7 @@ async function executeAgentAsk(ctx2, message, options) {
|
|
|
6996
7026
|
try {
|
|
6997
7027
|
const vault = await ctx2.ensureActiveVault();
|
|
6998
7028
|
const config = {
|
|
6999
|
-
backendUrl: options.backendUrl || process.env.VULTISIG_AGENT_URL || "
|
|
7029
|
+
backendUrl: options.backendUrl || process.env.VULTISIG_AGENT_URL || "https://abe.vultisig.com",
|
|
7000
7030
|
vaultName: vault.name,
|
|
7001
7031
|
password: options.password,
|
|
7002
7032
|
sessionId: options.session,
|
|
@@ -7051,7 +7081,7 @@ tx:${tx.chain}:${tx.hash}
|
|
|
7051
7081
|
}
|
|
7052
7082
|
async function executeAgentSessionsList(ctx2, options) {
|
|
7053
7083
|
const vault = await ctx2.ensureActiveVault();
|
|
7054
|
-
const backendUrl = options.backendUrl || process.env.VULTISIG_AGENT_URL || "
|
|
7084
|
+
const backendUrl = options.backendUrl || process.env.VULTISIG_AGENT_URL || "https://abe.vultisig.com";
|
|
7055
7085
|
const client = await createAuthenticatedClient(backendUrl, vault, options.password);
|
|
7056
7086
|
const publicKey = vault.publicKeys.ecdsa;
|
|
7057
7087
|
const PAGE_SIZE = 100;
|
|
@@ -7098,7 +7128,7 @@ async function executeAgentSessionsList(ctx2, options) {
|
|
|
7098
7128
|
}
|
|
7099
7129
|
async function executeAgentSessionsDelete(ctx2, sessionId, options) {
|
|
7100
7130
|
const vault = await ctx2.ensureActiveVault();
|
|
7101
|
-
const backendUrl = options.backendUrl || process.env.VULTISIG_AGENT_URL || "
|
|
7131
|
+
const backendUrl = options.backendUrl || process.env.VULTISIG_AGENT_URL || "https://abe.vultisig.com";
|
|
7102
7132
|
const client = await createAuthenticatedClient(backendUrl, vault, options.password);
|
|
7103
7133
|
const publicKey = vault.publicKeys.ecdsa;
|
|
7104
7134
|
await client.deleteConversation(sessionId, publicKey);
|
|
@@ -8528,7 +8558,7 @@ var cachedVersion = null;
|
|
|
8528
8558
|
function getVersion() {
|
|
8529
8559
|
if (cachedVersion) return cachedVersion;
|
|
8530
8560
|
if (true) {
|
|
8531
|
-
cachedVersion = "0.
|
|
8561
|
+
cachedVersion = "0.12.0";
|
|
8532
8562
|
return cachedVersion;
|
|
8533
8563
|
}
|
|
8534
8564
|
try {
|
|
@@ -9061,6 +9091,15 @@ createCmd.command("secure").description("Create a secure vault (multi-device MPC
|
|
|
9061
9091
|
});
|
|
9062
9092
|
})
|
|
9063
9093
|
);
|
|
9094
|
+
program.command("add-mldsa").description("Add ML-DSA (post-quantum) keys to the active fast vault (VultiServer /mldsa)").requiredOption("--email <email>", "Email registered on the vault").option("--password <password>", "Vault password (otherwise prompted or from cache)").action(
|
|
9095
|
+
withExit(async (options) => {
|
|
9096
|
+
const context = await init(program.opts().vault);
|
|
9097
|
+
await executeAddPostQuantumKeys(context, {
|
|
9098
|
+
email: options.email,
|
|
9099
|
+
password: options.password
|
|
9100
|
+
});
|
|
9101
|
+
})
|
|
9102
|
+
);
|
|
9064
9103
|
program.command("import <file>").description("Import vault from .vult file").option("--password <password>", "Password to decrypt the vault file").action(
|
|
9065
9104
|
withExit(async (file, options) => {
|
|
9066
9105
|
const context = await init(program.opts().vault);
|
|
@@ -9531,7 +9570,7 @@ rujiraCmd.command("withdraw <asset> <amount> <l1Address>").description("Withdraw
|
|
|
9531
9570
|
}
|
|
9532
9571
|
)
|
|
9533
9572
|
);
|
|
9534
|
-
var agentCmd = program.command("agent").description("AI-powered chat interface for wallet operations").option("--via-agent", "Use NDJSON pipe mode for agent-to-agent communication").option("--verbose", "Show detailed tool call parameters and debug output").option("--backend-url <url>", "Agent backend URL (default:
|
|
9573
|
+
var agentCmd = program.command("agent").description("AI-powered chat interface for wallet operations").option("--via-agent", "Use NDJSON pipe mode for agent-to-agent communication").option("--verbose", "Show detailed tool call parameters and debug output").option("--backend-url <url>", "Agent backend URL (default: https://abe.vultisig.com)").option("--password <password>", "Vault password for signing operations").option("--password-ttl <ms>", "Password cache TTL in milliseconds (default: 300000, 86400000/24h for --via-agent)").option("--session-id <id>", "Resume an existing session").action(async (options) => {
|
|
9535
9574
|
const MAX_TTL = 864e5;
|
|
9536
9575
|
let passwordTTL;
|
|
9537
9576
|
if (options.passwordTtl) {
|
|
@@ -9552,7 +9591,7 @@ var agentCmd = program.command("agent").description("AI-powered chat interface f
|
|
|
9552
9591
|
sessionId: options.sessionId
|
|
9553
9592
|
});
|
|
9554
9593
|
});
|
|
9555
|
-
agentCmd.command("ask <message>").description("Send a single message and get the response (for AI agent integration)").option("--session <id>", "Continue an existing conversation").option("--backend-url <url>", "Agent backend URL (default:
|
|
9594
|
+
agentCmd.command("ask <message>").description("Send a single message and get the response (for AI agent integration)").option("--session <id>", "Continue an existing conversation").option("--backend-url <url>", "Agent backend URL (default: https://abe.vultisig.com)").option("--password <password>", "Vault password for signing operations").option("--verbose", "Show tool calls and debug info on stderr").option("--json", "Output structured JSON instead of text").action(
|
|
9556
9595
|
async (message, options) => {
|
|
9557
9596
|
const parentOpts = agentCmd.opts();
|
|
9558
9597
|
const context = await init(
|
|
@@ -9568,7 +9607,7 @@ agentCmd.command("ask <message>").description("Send a single message and get the
|
|
|
9568
9607
|
}
|
|
9569
9608
|
);
|
|
9570
9609
|
var sessionsCmd = agentCmd.command("sessions").description("Manage agent chat sessions");
|
|
9571
|
-
sessionsCmd.command("list").description("List chat sessions for the current vault").option("--backend-url <url>", "Agent backend URL (default:
|
|
9610
|
+
sessionsCmd.command("list").description("List chat sessions for the current vault").option("--backend-url <url>", "Agent backend URL (default: https://abe.vultisig.com)").option("--password <password>", "Vault password for authentication").action(
|
|
9572
9611
|
withExit(async (options) => {
|
|
9573
9612
|
const parentOpts = agentCmd.opts();
|
|
9574
9613
|
const context = await init(program.opts().vault, options.password || parentOpts.password);
|
|
@@ -9578,7 +9617,7 @@ sessionsCmd.command("list").description("List chat sessions for the current vaul
|
|
|
9578
9617
|
});
|
|
9579
9618
|
})
|
|
9580
9619
|
);
|
|
9581
|
-
sessionsCmd.command("delete <id>").description("Delete a chat session").option("--backend-url <url>", "Agent backend URL (default:
|
|
9620
|
+
sessionsCmd.command("delete <id>").description("Delete a chat session").option("--backend-url <url>", "Agent backend URL (default: https://abe.vultisig.com)").option("--password <password>", "Vault password for authentication").action(
|
|
9582
9621
|
withExit(async (id, options) => {
|
|
9583
9622
|
const parentOpts = agentCmd.opts();
|
|
9584
9623
|
const context = await init(program.opts().vault, options.password || parentOpts.password);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vultisig/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Command-line wallet for Vultisig - multi-chain MPC wallet management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"@cosmjs/proto-signing": "^0.38.1",
|
|
54
54
|
"@cosmjs/stargate": "^0.38.1",
|
|
55
55
|
"@noble/hashes": "^2.0.1",
|
|
56
|
-
"@vultisig/rujira": "^
|
|
57
|
-
"@vultisig/sdk": "^0.
|
|
56
|
+
"@vultisig/rujira": "^8.0.0",
|
|
57
|
+
"@vultisig/sdk": "^0.12.0",
|
|
58
58
|
"chalk": "^5.6.2",
|
|
59
59
|
"cli-table3": "^0.6.5",
|
|
60
60
|
"commander": "^14.0.3",
|