vexp-cli 2.5.2 → 2.5.3
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/dist/cli.js +11 -0
- package/dist/license.js +15 -5
- package/package.json +6 -6
package/dist/cli.js
CHANGED
|
@@ -471,6 +471,17 @@ program
|
|
|
471
471
|
args.push("--gate");
|
|
472
472
|
runBinary(binaryPath, args);
|
|
473
473
|
});
|
|
474
|
+
program
|
|
475
|
+
.command("daemons")
|
|
476
|
+
.description("List every vexp daemon on this machine: which workspace holds each concurrent-workspace slot, version, index size, uptime")
|
|
477
|
+
.option("--json", "Emit machine-readable JSON")
|
|
478
|
+
.action(async (opts) => {
|
|
479
|
+
const binaryPath = ensureBinary();
|
|
480
|
+
const args = ["daemons"];
|
|
481
|
+
if (opts.json)
|
|
482
|
+
args.push("--json");
|
|
483
|
+
runBinary(binaryPath, args);
|
|
484
|
+
});
|
|
474
485
|
program
|
|
475
486
|
.command("stop [workspace]")
|
|
476
487
|
.description("Stop the vexp daemon of a workspace (default: current directory). Accepts any path shown by the concurrent-workspace cap message")
|
package/dist/license.js
CHANGED
|
@@ -5,6 +5,16 @@ import * as os from "os";
|
|
|
5
5
|
import { CLI_VERSION } from "./version.js";
|
|
6
6
|
// Ed25519 PUBLIC key (DER, base64) — same key as vexp-vscode/src/license.ts.
|
|
7
7
|
// Only the server (vexp.dev) holds the matching private key.
|
|
8
|
+
/** Resolve the vexp home dir like the Rust core does: VEXP_HOME (absolute)
|
|
9
|
+
* wins, else the OS home. Without this, sandboxed/container setups that set
|
|
10
|
+
* VEXP_HOME read and roll license tokens in a directory the daemon never
|
|
11
|
+
* looks at. */
|
|
12
|
+
function vexpHomeDir() {
|
|
13
|
+
const env = process.env.VEXP_HOME;
|
|
14
|
+
if (env && path.isAbsolute(env))
|
|
15
|
+
return env;
|
|
16
|
+
return os.homedir();
|
|
17
|
+
}
|
|
8
18
|
const VEXP_LICENSE_PUBLIC_KEY = "MCowBQYDK2VwAyEApwiWYGCyhCaGHAHWn/RTBSGo/1MNmGyZUgSNBQ5YE4g=";
|
|
9
19
|
const VEXP_WEB_ORIGIN = process.env.VEXP_WEB_ORIGIN || "https://vexp.dev";
|
|
10
20
|
// 14-day grace window after the last successful online refresh before we
|
|
@@ -15,16 +25,16 @@ const REFRESH_BACKOFF_MS = 24 * 60 * 60 * 1000;
|
|
|
15
25
|
// 3 second timeout on validate calls — any slower falls back silently.
|
|
16
26
|
const VALIDATE_TIMEOUT_MS = 3000;
|
|
17
27
|
function getLicensePath() {
|
|
18
|
-
return path.join(
|
|
28
|
+
return path.join(vexpHomeDir(), ".vexp", "license.jwt");
|
|
19
29
|
}
|
|
20
30
|
function getFreshTokenPath() {
|
|
21
|
-
return path.join(
|
|
31
|
+
return path.join(vexpHomeDir(), ".vexp", "fresh.jwt");
|
|
22
32
|
}
|
|
23
33
|
function getLastCheckPath() {
|
|
24
|
-
return path.join(
|
|
34
|
+
return path.join(vexpHomeDir(), ".vexp", "last_online_check");
|
|
25
35
|
}
|
|
26
36
|
function getDeviceIdPath() {
|
|
27
|
-
return path.join(
|
|
37
|
+
return path.join(vexpHomeDir(), ".vexp", "device.id");
|
|
28
38
|
}
|
|
29
39
|
/**
|
|
30
40
|
* Stable anonymous device identifier. First call creates and persists it.
|
|
@@ -99,7 +109,7 @@ function removeFreshToken() {
|
|
|
99
109
|
}
|
|
100
110
|
}
|
|
101
111
|
function getDeviceBlockedPath() {
|
|
102
|
-
return path.join(
|
|
112
|
+
return path.join(vexpHomeDir(), ".vexp", "device_blocked.json");
|
|
103
113
|
}
|
|
104
114
|
/** Returns the active device-blocked marker, if any. */
|
|
105
115
|
export function readDeviceBlocked() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vexp-cli",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.3",
|
|
4
4
|
"description": "Local-first context engine for AI coding agents. Pre-indexes your codebase into a dependency graph and feeds any MCP agent only the code that matters — 87% fewer tokens per call. New in 2.5: mechanical work verification and a PII/secret scanner. Works with Claude Code, Cursor, Codex, Copilot, Windsurf, Cline, Aider and 14 agents. Your code never leaves your machine.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -105,10 +105,10 @@
|
|
|
105
105
|
},
|
|
106
106
|
"homepage": "https://vexp.dev",
|
|
107
107
|
"optionalDependencies": {
|
|
108
|
-
"@vexp/core-linux-x64": "2.5.
|
|
109
|
-
"@vexp/core-linux-arm64": "2.5.
|
|
110
|
-
"@vexp/core-darwin-x64": "2.5.
|
|
111
|
-
"@vexp/core-darwin-arm64": "2.5.
|
|
112
|
-
"@vexp/core-win32-x64": "2.5.
|
|
108
|
+
"@vexp/core-linux-x64": "2.5.3",
|
|
109
|
+
"@vexp/core-linux-arm64": "2.5.3",
|
|
110
|
+
"@vexp/core-darwin-x64": "2.5.3",
|
|
111
|
+
"@vexp/core-darwin-arm64": "2.5.3",
|
|
112
|
+
"@vexp/core-win32-x64": "2.5.3"
|
|
113
113
|
}
|
|
114
114
|
}
|