@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 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: http://localhost:9998)
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 || "http://localhost:9998",
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 || "http://localhost:9998",
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 || "http://localhost:9998";
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 || "http://localhost:9998";
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.10.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: http://localhost:9998)").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) => {
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: http://localhost:9998)").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(
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: http://localhost:9998)").option("--password <password>", "Vault password for authentication").action(
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: http://localhost:9998)").option("--password <password>", "Vault password for authentication").action(
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.10.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": "^6.0.0",
57
- "@vultisig/sdk": "^0.10.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",