vexp-cli 1.2.13 → 1.2.15

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/README.md ADDED
@@ -0,0 +1,203 @@
1
+ # vexp CLI
2
+
3
+ Graph-RAG context engine for AI coding agents. Indexes your codebase and provides intelligent context to AI tools via MCP (Model Context Protocol).
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install -g vexp-cli
9
+ ```
10
+
11
+ Requires Node.js >= 20. The platform-specific binary is installed automatically via npm.
12
+
13
+ ## Quick Start
14
+
15
+ ```bash
16
+ # One-command setup: index codebase + detect & configure AI agents
17
+ vexp setup
18
+
19
+ # Or step by step:
20
+ vexp init # Initialize and index your project
21
+ vexp setup --no-index # Configure agents only (skip indexing)
22
+ ```
23
+
24
+ ## Commands
25
+
26
+ ### `vexp setup [dir]`
27
+
28
+ Complete one-command setup: index, detect AI agents, configure MCP.
29
+
30
+ ```bash
31
+ vexp setup # Current directory
32
+ vexp setup /path/to/project # Specific directory
33
+ vexp setup --no-index # Skip indexing (already indexed)
34
+ vexp setup --agents claude,cursor # Configure specific agents only
35
+ vexp setup --dry-run # Preview what would be configured
36
+ ```
37
+
38
+ Auto-detects and configures: Claude Code, Cursor, Windsurf, GitHub Copilot, Continue.dev, Zed, Codex, Opencode, Kilo Code, Kiro, Antigravity.
39
+
40
+ ### `vexp init [dir]`
41
+
42
+ Initialize vexp for a project (index, create `.vexp/`, install hooks).
43
+
44
+ ```bash
45
+ vexp init
46
+ vexp init /path/to/project
47
+ ```
48
+
49
+ ### `vexp index [dir]`
50
+
51
+ Index a directory for code intelligence.
52
+
53
+ ```bash
54
+ vexp index # Index current directory
55
+ vexp index --watch # Watch for changes and re-index
56
+ vexp index --status # Show indexing status
57
+ ```
58
+
59
+ ### `vexp capsule <query>`
60
+
61
+ Generate a context capsule for a task or question.
62
+
63
+ ```bash
64
+ vexp capsule "fix the login bug"
65
+ vexp capsule "how does auth work" --max-tokens 12000
66
+ vexp capsule "add caching" --format json
67
+ vexp capsule "refactor" --repos frontend,backend
68
+ ```
69
+
70
+ ### `vexp skeleton <file>`
71
+
72
+ Print a token-efficient skeleton of a file (signatures, types, no bodies).
73
+
74
+ ```bash
75
+ vexp skeleton src/auth.ts
76
+ vexp skeleton src/api.rs --detail detailed
77
+ vexp skeleton src/utils.py --detail minimal
78
+ ```
79
+
80
+ ### `vexp impact <fqn>`
81
+
82
+ Show what breaks if you change a symbol.
83
+
84
+ ```bash
85
+ vexp impact "src/auth.ts::validateToken"
86
+ vexp impact "src/db.rs::query" --depth 10
87
+ vexp impact "src/api.ts::handler" --format mermaid
88
+ vexp impact "src/shared.ts::Config" --cross-repo
89
+ ```
90
+
91
+ ### `vexp flow <start> <end>`
92
+
93
+ Find execution paths between two symbols.
94
+
95
+ ```bash
96
+ vexp flow "src/api.ts::handleRequest" "src/db.ts::query"
97
+ vexp flow "main" "save" --max-paths 5
98
+ vexp flow "handler" "db::insert" --cross-repo
99
+ ```
100
+
101
+ ### `vexp mcp`
102
+
103
+ Start the MCP server over stdin/stdout (used by AI coding agents).
104
+
105
+ ```bash
106
+ vexp mcp # In-process mode
107
+ vexp mcp --workspace /path # Specify workspace
108
+ vexp mcp --proxy # Connect to existing daemon
109
+ ```
110
+
111
+ ### `vexp daemon`
112
+
113
+ Start the vexp background daemon.
114
+
115
+ ```bash
116
+ vexp daemon --workspace /path/to/project
117
+ ```
118
+
119
+ ### `vexp daemon-cmd <action>`
120
+
121
+ Manage the daemon.
122
+
123
+ ```bash
124
+ vexp daemon-cmd start
125
+ vexp daemon-cmd stop
126
+ vexp daemon-cmd status
127
+ vexp daemon-cmd logs --follow
128
+ ```
129
+
130
+ ### `vexp hooks <action>`
131
+
132
+ Manage git hooks for automatic index updates.
133
+
134
+ ```bash
135
+ vexp hooks install # Install git hooks
136
+ vexp hooks check # Check hook status
137
+ vexp hooks remove # Remove hooks
138
+ ```
139
+
140
+ ### `vexp version`
141
+
142
+ Show version information.
143
+
144
+ ```bash
145
+ vexp version
146
+ # vexp CLI: 1.2.15
147
+ # vexp core: 1.2.14
148
+ ```
149
+
150
+ ## MCP Integration
151
+
152
+ vexp provides context to AI coding agents via MCP. After running `vexp setup`, your agents are auto-configured with these tools:
153
+
154
+ | Tool | Description |
155
+ |------|-------------|
156
+ | `get_context_capsule` | Most relevant code for your task (semantic + graph search) |
157
+ | `get_impact_graph` | What breaks if you change a symbol |
158
+ | `search_logic_flow` | Execution paths between functions |
159
+ | `get_skeleton` | Token-efficient file structure |
160
+ | `index_status` | Indexing health check |
161
+ | `get_session_context` | Recall observations from current/previous sessions |
162
+ | `search_memory` | Cross-session search for past decisions |
163
+ | `save_observation` | Persist insights with code symbol linking |
164
+
165
+ ### Manual MCP Configuration
166
+
167
+ If you prefer to configure MCP manually instead of using `vexp setup`:
168
+
169
+ **Claude Code** (`~/.claude.json`):
170
+ ```json
171
+ {
172
+ "mcpServers": {
173
+ "vexp": {
174
+ "command": "vexp",
175
+ "args": ["mcp", "--workspace", "/path/to/project"]
176
+ }
177
+ }
178
+ }
179
+ ```
180
+
181
+ **Cursor** (`.cursor/mcp.json`):
182
+ ```json
183
+ {
184
+ "mcpServers": {
185
+ "vexp": {
186
+ "command": "vexp",
187
+ "args": ["mcp", "--workspace", "/path/to/project"]
188
+ }
189
+ }
190
+ }
191
+ ```
192
+
193
+ ## Supported Platforms
194
+
195
+ | Platform | Architecture |
196
+ |----------|-------------|
197
+ | Linux | x64, ARM64 |
198
+ | macOS | x64, ARM64 (Apple Silicon) |
199
+ | Windows | x64 |
200
+
201
+ ## License
202
+
203
+ MIT
@@ -0,0 +1,2 @@
1
+ export declare function getBinaryPath(): string;
2
+ export declare function getInstalledVersion(): Promise<string | null>;
package/dist/binary.js ADDED
@@ -0,0 +1,57 @@
1
+ import { createRequire } from "module";
2
+ import * as path from "path";
3
+ import * as fs from "fs";
4
+ const require = createRequire(import.meta.url);
5
+ const PLATFORM_PACKAGES = {
6
+ "linux-x64": "@vexp/core-linux-x64",
7
+ "linux-arm64": "@vexp/core-linux-arm64",
8
+ "darwin-x64": "@vexp/core-darwin-x64",
9
+ "darwin-arm64": "@vexp/core-darwin-arm64",
10
+ "win32-x64": "@vexp/core-win32-x64",
11
+ };
12
+ export function getBinaryPath() {
13
+ const key = `${process.platform}-${process.arch}`;
14
+ const pkg = PLATFORM_PACKAGES[key];
15
+ if (!pkg) {
16
+ throw new Error(`Unsupported platform: ${key}. Supported: ${Object.keys(PLATFORM_PACKAGES).join(", ")}`);
17
+ }
18
+ const ext = process.platform === "win32" ? ".exe" : "";
19
+ let pkgDir;
20
+ try {
21
+ pkgDir = path.dirname(require.resolve(`${pkg}/package.json`));
22
+ }
23
+ catch {
24
+ throw new Error(`Platform package ${pkg} not found. Try reinstalling: npm install -g vexp-cli`);
25
+ }
26
+ const binaryPath = path.join(pkgDir, "bin", `vexp-core${ext}`);
27
+ if (!fs.existsSync(binaryPath)) {
28
+ throw new Error(`Binary not found at ${binaryPath}. Try reinstalling: npm install -g vexp-cli`);
29
+ }
30
+ return binaryPath;
31
+ }
32
+ export async function getInstalledVersion() {
33
+ let binaryPath;
34
+ try {
35
+ binaryPath = getBinaryPath();
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ try {
41
+ const { execFile } = await import("child_process");
42
+ return new Promise((resolve) => {
43
+ execFile(binaryPath, ["--version"], (err, stdout) => {
44
+ if (err) {
45
+ resolve(null);
46
+ return;
47
+ }
48
+ const match = stdout.match(/(\d+\.\d+\.\d+)/);
49
+ resolve(match ? match[1] : null);
50
+ });
51
+ });
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,iBAAiB,GAA2B;IAChD,WAAW,EAAE,sBAAsB;IACnC,aAAa,EAAE,wBAAwB;IACvC,YAAY,EAAE,uBAAuB;IACrC,cAAc,EAAE,yBAAyB;IACzC,WAAW,EAAE,sBAAsB;CACpC,CAAC;AAEF,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,yBAAyB,GAAG,gBAAgB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,oBAAoB,GAAG,uDAAuD,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,uBAAuB,UAAU,6CAA6C,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,UAAkB,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,aAAa,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBAClD,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/dist/cli.js CHANGED
@@ -4,7 +4,7 @@ import chalk from "chalk";
4
4
  import ora from "ora";
5
5
  import { spawn } from "child_process";
6
6
  import * as path from "path";
7
- import { getBinaryPath, isBinaryInstalled, installBinary, getInstalledVersion, getLatestVersion, } from "./installer.js";
7
+ import { getBinaryPath, getInstalledVersion } from "./binary.js";
8
8
  import { detectAgents, configureAgents } from "./agent-config.js";
9
9
  import { CLI_VERSION } from "./version.js";
10
10
  const program = new Command();
@@ -13,21 +13,16 @@ program
13
13
  .description("Vexp — Graph-RAG context engine for AI coding agents")
14
14
  .version(CLI_VERSION);
15
15
  // ────────────────────────────────────────────────────
16
- // Ensure binary is installed before running any command
16
+ // Resolve the platform binary (no network bundled via npm)
17
17
  // ────────────────────────────────────────────────────
18
- async function ensureBinary() {
19
- if (!isBinaryInstalled()) {
20
- const spinner = ora("Installing vexp binary...").start();
21
- try {
22
- await installBinary(CLI_VERSION);
23
- spinner.succeed(`vexp v${CLI_VERSION} installed`);
24
- }
25
- catch (err) {
26
- spinner.fail(`Failed to install vexp: ${err}`);
27
- process.exit(1);
28
- }
18
+ function ensureBinary() {
19
+ try {
20
+ return getBinaryPath();
21
+ }
22
+ catch (err) {
23
+ console.error(chalk.red(`${err instanceof Error ? err.message : err}`));
24
+ process.exit(1);
29
25
  }
30
- return getBinaryPath();
31
26
  }
32
27
  function runBinary(binaryPath, args) {
33
28
  const child = spawn(binaryPath, args, {
@@ -70,7 +65,7 @@ program
70
65
  .option("--merge-recover", "Recover index after merge conflict")
71
66
  .option("--checkout-sync", "Sync index after branch checkout")
72
67
  .action(async (dir, opts) => {
73
- const binaryPath = await ensureBinary();
68
+ const binaryPath = ensureBinary();
74
69
  const args = ["index"];
75
70
  if (dir)
76
71
  args.push(dir);
@@ -93,7 +88,7 @@ program
93
88
  .option("--socket <path>", "Socket path for IPC")
94
89
  .option("--log <path>", "Log file path")
95
90
  .action(async (opts) => {
96
- const binaryPath = await ensureBinary();
91
+ const binaryPath = ensureBinary();
97
92
  const args = ["daemon"];
98
93
  if (opts.workspace)
99
94
  args.push("--workspace", opts.workspace);
@@ -108,7 +103,7 @@ program
108
103
  .description("Print a token-efficient skeleton of a file")
109
104
  .option("--detail <level>", "Detail level: minimal, standard, detailed", "standard")
110
105
  .action(async (file, opts) => {
111
- const binaryPath = await ensureBinary();
106
+ const binaryPath = ensureBinary();
112
107
  runBinary(binaryPath, ["skeleton", file, "--detail", opts.detail]);
113
108
  });
114
109
  program
@@ -118,7 +113,7 @@ program
118
113
  .option("--max-tokens <n>", "Max tokens", "8000")
119
114
  .option("--format <fmt>", "Output format: text, json", "text")
120
115
  .action(async (query, opts) => {
121
- const binaryPath = await ensureBinary();
116
+ const binaryPath = ensureBinary();
122
117
  const args = ["capsule", query, "--max-tokens", opts.maxTokens];
123
118
  if (opts.repos)
124
119
  args.push("--repos", opts.repos);
@@ -133,7 +128,7 @@ program
133
128
  .option("--format <fmt>", "Output format: list, tree, mermaid", "tree")
134
129
  .option("--cross-repo", "Include cross-repo edges")
135
130
  .action(async (fqn, opts) => {
136
- const binaryPath = await ensureBinary();
131
+ const binaryPath = ensureBinary();
137
132
  const args = ["impact", fqn, "--depth", opts.depth, "--format", opts.format];
138
133
  if (opts.crossRepo)
139
134
  args.push("--cross-repo");
@@ -145,7 +140,7 @@ program
145
140
  .option("--max-paths <n>", "Max paths to return", "3")
146
141
  .option("--cross-repo", "Allow cross-repo traversal")
147
142
  .action(async (start, end, opts) => {
148
- const binaryPath = await ensureBinary();
143
+ const binaryPath = ensureBinary();
149
144
  const args = ["flow", start, end, "--max-paths", opts.maxPaths];
150
145
  if (opts.crossRepo)
151
146
  args.push("--cross-repo");
@@ -156,20 +151,20 @@ program
156
151
  .description("Manage git hooks (install, check, remove)")
157
152
  .option("--repo-root <path>", "Repository root")
158
153
  .action(async (action, opts) => {
159
- const binaryPath = await ensureBinary();
154
+ const binaryPath = ensureBinary();
160
155
  const args = ["hooks", action];
161
156
  if (opts.repoRoot)
162
157
  args.push("--repo-root", opts.repoRoot);
163
158
  runBinary(binaryPath, args);
164
159
  });
165
160
  // ────────────────────────────────────────────────────
166
- // New commands: init, mcp, daemon-cmd, setup
161
+ // Commands: init, mcp, daemon-cmd, setup
167
162
  // ────────────────────────────────────────────────────
168
163
  program
169
164
  .command("init [dir]")
170
165
  .description("Initialize vexp for a project (index, create .vexp, install hooks)")
171
166
  .action(async (dir) => {
172
- const binaryPath = await ensureBinary();
167
+ const binaryPath = ensureBinary();
173
168
  const args = ["init"];
174
169
  if (dir)
175
170
  args.push(dir);
@@ -181,7 +176,7 @@ program
181
176
  .option("--workspace <path>", "Workspace root path")
182
177
  .option("--proxy", "Connect to existing daemon instead of running in-process")
183
178
  .action(async (opts) => {
184
- const binaryPath = await ensureBinary();
179
+ const binaryPath = ensureBinary();
185
180
  const args = ["mcp"];
186
181
  if (opts.workspace)
187
182
  args.push("--workspace", opts.workspace);
@@ -194,7 +189,7 @@ program
194
189
  .description("Manage the vexp daemon (start, stop, status, logs)")
195
190
  .option("--follow", "Follow log output (with 'logs' action)")
196
191
  .action(async (action, opts) => {
197
- const binaryPath = await ensureBinary();
192
+ const binaryPath = ensureBinary();
198
193
  const args = ["daemon-cmd", action];
199
194
  if (opts.follow)
200
195
  args.push("--follow");
@@ -202,7 +197,7 @@ program
202
197
  });
203
198
  program
204
199
  .command("setup [dir]")
205
- .description("Complete one-command setup: install binary, index, detect agents, configure MCP")
200
+ .description("Complete one-command setup: index, detect agents, configure MCP")
206
201
  .option("--no-index", "Skip indexing (if already indexed)")
207
202
  .option("--agents <list>", "Specific agents to configure (comma-separated, default: auto-detect)")
208
203
  .option("--dry-run", "Show what would be configured without writing files")
@@ -213,12 +208,12 @@ program
213
208
  const spinner1 = ora("Checking vexp binary...").start();
214
209
  let binaryPath;
215
210
  try {
216
- binaryPath = await ensureBinary();
211
+ binaryPath = ensureBinary();
217
212
  const coreVersion = await getInstalledVersion();
218
213
  spinner1.succeed(`vexp binary ready (v${coreVersion ?? "unknown"})`);
219
214
  }
220
215
  catch (err) {
221
- spinner1.fail(`Binary installation failed: ${err}`);
216
+ spinner1.fail(`Binary not found: ${err}`);
222
217
  process.exit(1);
223
218
  }
224
219
  // Step 2: Init + Index
@@ -296,46 +291,15 @@ program
296
291
  console.log("");
297
292
  });
298
293
  // ────────────────────────────────────────────────────
299
- // Existing commands: install, version
294
+ // Version
300
295
  // ────────────────────────────────────────────────────
301
- program
302
- .command("install")
303
- .description("Install or update the vexp binary")
304
- .option("--version <version>", "Specific version to install (default: latest)")
305
- .action(async (opts) => {
306
- const spinner = ora("Checking for updates...").start();
307
- try {
308
- const targetVersion = opts.version ?? (await getLatestVersion());
309
- const currentVersion = await getInstalledVersion();
310
- if (currentVersion === targetVersion) {
311
- spinner.info(`vexp v${targetVersion} is already up to date`);
312
- return;
313
- }
314
- spinner.text = `Installing vexp v${targetVersion}...`;
315
- await installBinary(targetVersion);
316
- spinner.succeed(`vexp v${targetVersion} installed at ${getBinaryPath()}`);
317
- }
318
- catch (err) {
319
- spinner.fail(`Installation failed: ${err}`);
320
- process.exit(1);
321
- }
322
- });
323
296
  program
324
297
  .command("version")
325
298
  .description("Show version information")
326
299
  .action(async () => {
327
300
  const installed = await getInstalledVersion();
328
301
  console.log(`vexp CLI: ${CLI_VERSION}`);
329
- console.log(`vexp core: ${installed ?? "not installed"}`);
330
- try {
331
- const latest = await getLatestVersion();
332
- if (installed && installed !== latest) {
333
- console.log(chalk.yellow(`Update available: v${latest}. Run: vexp install`));
334
- }
335
- }
336
- catch {
337
- // Offline — skip update check
338
- }
302
+ console.log(`vexp core: ${installed ?? "not found"}`);
339
303
  });
340
304
  program.parse();
341
305
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vexp-cli",
3
- "version": "1.2.13",
3
+ "version": "1.2.15",
4
4
  "description": "vexp CLI — AI context engine for developer tools",
5
5
  "type": "module",
6
6
  "bin": {
@@ -14,7 +14,8 @@
14
14
  },
15
15
  "files": [
16
16
  "dist/",
17
- "bin/"
17
+ "bin/",
18
+ "README.md"
18
19
  ],
19
20
  "dependencies": {
20
21
  "commander": "^12.0.0",
@@ -1,5 +0,0 @@
1
- export declare function getBinaryPath(): string;
2
- export declare function isBinaryInstalled(): boolean;
3
- export declare function installBinary(version: string): Promise<string>;
4
- export declare function getInstalledVersion(): Promise<string | null>;
5
- export declare function getLatestVersion(): Promise<string>;
package/dist/installer.js DELETED
@@ -1,138 +0,0 @@
1
- import * as fs from "fs";
2
- import * as path from "path";
3
- import * as crypto from "crypto";
4
- import * as os from "os";
5
- import { pipeline } from "stream/promises";
6
- import { createWriteStream } from "fs";
7
- import { Readable } from "stream";
8
- const GITHUB_RELEASE_BASE = "https://github.com/nicola/vexp/releases/download";
9
- function getPlatformBinary() {
10
- const { platform, arch } = process;
11
- const archLabel = arch === "arm64" ? "aarch64" : "x86_64";
12
- switch (platform) {
13
- case "darwin":
14
- return {
15
- target: `${archLabel}-apple-darwin`,
16
- filename: "vexp-core",
17
- };
18
- case "linux":
19
- return {
20
- target: `${archLabel}-unknown-linux-gnu`,
21
- filename: "vexp-core",
22
- };
23
- case "win32":
24
- return {
25
- target: `${archLabel}-pc-windows-gnu`,
26
- filename: "vexp-core.exe",
27
- };
28
- default:
29
- throw new Error(`Unsupported platform: ${platform}`);
30
- }
31
- }
32
- function getInstallDir() {
33
- const home = os.homedir();
34
- return path.join(home, ".vexp", "bin");
35
- }
36
- export function getBinaryPath() {
37
- const { filename } = getPlatformBinary();
38
- return path.join(getInstallDir(), filename);
39
- }
40
- export function isBinaryInstalled() {
41
- const binaryPath = getBinaryPath();
42
- return fs.existsSync(binaryPath);
43
- }
44
- export async function installBinary(version) {
45
- const { target, filename } = getPlatformBinary();
46
- const installDir = getInstallDir();
47
- const binaryPath = path.join(installDir, filename);
48
- // Create install dir
49
- fs.mkdirSync(installDir, { recursive: true });
50
- const downloadUrl = `${GITHUB_RELEASE_BASE}/v${version}/vexp-core-${target}${filename.endsWith(".exe") ? ".exe" : ""}`;
51
- const checksumUrl = `${downloadUrl}.sha256`;
52
- console.log(`Downloading vexp-core ${version} for ${target}...`);
53
- console.log(`From: ${downloadUrl}`);
54
- // Download binary
55
- const tmpPath = `${binaryPath}.tmp`;
56
- await downloadFile(downloadUrl, tmpPath);
57
- // Download and verify checksum
58
- const expectedSha = await fetchText(checksumUrl);
59
- if (expectedSha) {
60
- const actualSha = await computeSha256(tmpPath);
61
- const expectedHash = expectedSha.trim().split(/\s+/)[0];
62
- if (actualSha !== expectedHash) {
63
- fs.unlinkSync(tmpPath);
64
- throw new Error(`Checksum mismatch!\nExpected: ${expectedHash}\nActual: ${actualSha}\n` +
65
- "Download may be corrupted or tampered with.");
66
- }
67
- console.log("✓ Checksum verified");
68
- }
69
- // Replace binary atomically
70
- if (fs.existsSync(binaryPath)) {
71
- fs.unlinkSync(binaryPath);
72
- }
73
- fs.renameSync(tmpPath, binaryPath);
74
- // Make executable on Unix
75
- if (process.platform !== "win32") {
76
- fs.chmodSync(binaryPath, 0o755);
77
- }
78
- console.log(`✓ Installed to ${binaryPath}`);
79
- return binaryPath;
80
- }
81
- export async function getInstalledVersion() {
82
- const binaryPath = getBinaryPath();
83
- if (!fs.existsSync(binaryPath))
84
- return null;
85
- try {
86
- const { execFile } = await import("child_process");
87
- return new Promise((resolve) => {
88
- execFile(binaryPath, ["--version"], (err, stdout) => {
89
- if (err) {
90
- resolve(null);
91
- return;
92
- }
93
- const match = stdout.match(/(\d+\.\d+\.\d+)/);
94
- resolve(match ? match[1] : null);
95
- });
96
- });
97
- }
98
- catch {
99
- return null;
100
- }
101
- }
102
- export async function getLatestVersion() {
103
- const response = await fetch("https://api.github.com/repos/nicola/vexp/releases/latest", { headers: { Accept: "application/vnd.github.v3+json" } });
104
- if (!response.ok) {
105
- throw new Error(`GitHub API error: ${response.status}`);
106
- }
107
- const data = (await response.json());
108
- return data.tag_name.replace(/^v/, "");
109
- }
110
- async function downloadFile(url, dest) {
111
- const response = await fetch(url);
112
- if (!response.ok) {
113
- throw new Error(`Download failed: ${response.status} ${response.statusText}\nURL: ${url}`);
114
- }
115
- const body = response.body;
116
- if (!body)
117
- throw new Error("Empty response body");
118
- const writeStream = createWriteStream(dest);
119
- await pipeline(Readable.fromWeb(body), writeStream);
120
- }
121
- async function fetchText(url) {
122
- try {
123
- const response = await fetch(url);
124
- if (!response.ok)
125
- return null;
126
- return response.text();
127
- }
128
- catch {
129
- return null;
130
- }
131
- }
132
- async function computeSha256(filePath) {
133
- const hash = crypto.createHash("sha256");
134
- const data = fs.readFileSync(filePath);
135
- hash.update(data);
136
- return hash.digest("hex");
137
- }
138
- //# sourceMappingURL=installer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}