context-vault 2.8.7 → 2.8.9

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/bin/cli.js CHANGED
@@ -292,24 +292,29 @@ async function runSetup() {
292
292
  }
293
293
 
294
294
  let selected;
295
- console.log(bold(" Which tools should context-vault connect to?\n"));
296
- for (let i = 0; i < detected.length; i++) {
297
- console.log(` ${i + 1}) ${detected[i].name}`);
298
- }
299
- console.log();
300
- const answer = await prompt(
301
- ` Select (${dim("1,2,3")} or ${dim('"all"')}):`,
302
- "all",
303
- );
304
- if (answer === "all" || answer === "") {
295
+ if (detected.length === 1) {
305
296
  selected = detected;
297
+ console.log(` ${dim("→")} Auto-selected ${detected[0].name}\n`);
306
298
  } else {
307
- const nums = answer
308
- .split(/[,\s]+/)
309
- .map((n) => parseInt(n, 10) - 1)
310
- .filter((n) => n >= 0 && n < detected.length);
311
- selected = nums.map((n) => detected[n]);
312
- if (selected.length === 0) selected = detected;
299
+ console.log(bold(" Which tools should context-vault connect to?\n"));
300
+ for (let i = 0; i < detected.length; i++) {
301
+ console.log(` ${i + 1}) ${detected[i].name}`);
302
+ }
303
+ console.log();
304
+ const answer = await prompt(
305
+ ` Select (${dim("1,2,3")} or ${dim('"all"')}):`,
306
+ "all",
307
+ );
308
+ if (answer === "all" || answer === "") {
309
+ selected = detected;
310
+ } else {
311
+ const nums = answer
312
+ .split(/[,\s]+/)
313
+ .map((n) => parseInt(n, 10) - 1)
314
+ .filter((n) => n >= 0 && n < detected.length);
315
+ selected = nums.map((n) => detected[n]);
316
+ if (selected.length === 0) selected = detected;
317
+ }
313
318
  }
314
319
 
315
320
  // Read vault dir from existing config
@@ -360,8 +365,8 @@ async function runSetup() {
360
365
  console.log(` ${dim("{")}
361
366
  ${dim('"mcpServers": {')}
362
367
  ${dim('"context-vault": {')}
363
- ${dim('"command": "context-vault",')}
364
- ${dim(`"args": ["serve", "--vault-dir", "/path/to/vault"]`)}
368
+ ${dim('"command": "npx",')}
369
+ ${dim(`"args": ["-y", "context-vault", "serve", "--vault-dir", "/path/to/vault"]`)}
365
370
  ${dim("}")}
366
371
  ${dim("}")}
367
372
  ${dim("}")}\n`);
@@ -388,8 +393,11 @@ async function runSetup() {
388
393
 
389
394
  // Select tools
390
395
  let selected;
391
- if (isNonInteractive) {
396
+ if (isNonInteractive || detected.length === 1) {
392
397
  selected = detected;
398
+ if (detected.length === 1) {
399
+ console.log(` ${dim("→")} Auto-selected ${detected[0].name}\n`);
400
+ }
393
401
  } else {
394
402
  console.log(bold(" Which tools should context-vault connect to?\n"));
395
403
  for (let i = 0; i < detected.length; i++) {
@@ -417,7 +425,7 @@ async function runSetup() {
417
425
  const defaultVaultDir = join(HOME, "vault");
418
426
  const vaultDir = isNonInteractive
419
427
  ? defaultVaultDir
420
- : await prompt(`\n Vault directory:`, defaultVaultDir);
428
+ : await prompt(` Vault directory:`, defaultVaultDir);
421
429
  const resolvedVaultDir = resolve(vaultDir);
422
430
 
423
431
  // Create vault dir if needed
@@ -511,7 +519,11 @@ async function runSetup() {
511
519
  if (isNetwork) {
512
520
  console.log(dim(` Check your internet connection and try again.`));
513
521
  }
514
- console.log(dim(` Retry: context-vault setup`));
522
+ console.log(
523
+ dim(
524
+ ` Retry: ${isNpx() ? "npx context-vault" : "context-vault"} setup`,
525
+ ),
526
+ );
515
527
  console.log(
516
528
  dim(` Semantic search disabled — full-text search still works.`),
517
529
  );
@@ -597,8 +609,8 @@ async function runSetup() {
597
609
  ` "Show my vault status"`,
598
610
  ``,
599
611
  ` ${bold("CLI Commands:")}`,
600
- ` context-vault status Show vault health`,
601
- ` context-vault update Check for updates`,
612
+ ` ${isNpx() ? "npx context-vault" : "context-vault"} status Show vault health`,
613
+ ` ${isNpx() ? "npx context-vault" : "context-vault"} update Check for updates`,
602
614
  ];
603
615
  const innerWidth = Math.max(...boxLines.map((l) => l.length)) + 2;
604
616
  const pad = (s) => s + " ".repeat(Math.max(0, innerWidth - s.length));
@@ -1356,7 +1368,7 @@ async function runUpdate() {
1356
1368
  console.log(green(` ✓ Updated to v${latest}`));
1357
1369
  } catch {
1358
1370
  console.error(
1359
- red(" Update failed. Try manually: npm install -g context-vault@latest"),
1371
+ red(" Update failed. Try manually: npx -y context-vault@latest setup"),
1360
1372
  );
1361
1373
  }
1362
1374
  console.log();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@context-vault/core",
3
- "version": "2.8.7",
3
+ "version": "2.8.9",
4
4
  "type": "module",
5
5
  "description": "Shared core: capture, index, retrieve, tools, and utilities for context-vault",
6
6
  "main": "src/index.js",
@@ -32,7 +32,7 @@ function formatNativeModuleError(err) {
32
32
  " npm rebuild better-sqlite3 sqlite-vec",
33
33
  "",
34
34
  " Or reinstall:",
35
- " npm install -g context-vault",
35
+ " npx -y context-vault@latest setup",
36
36
  );
37
37
 
38
38
  return lines.join("\n");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "context-vault",
3
- "version": "2.8.7",
3
+ "version": "2.8.9",
4
4
  "type": "module",
5
5
  "description": "Persistent memory for AI agents — saves and searches knowledge across sessions",
6
6
  "bin": {
@@ -55,7 +55,7 @@
55
55
  "@context-vault/core"
56
56
  ],
57
57
  "dependencies": {
58
- "@context-vault/core": "^2.8.7",
58
+ "@context-vault/core": "^2.8.9",
59
59
  "@modelcontextprotocol/sdk": "^1.26.0",
60
60
  "better-sqlite3": "^12.6.2",
61
61
  "sqlite-vec": "^0.1.0"