@baijimu/cli 0.1.6 → 0.1.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/README.md CHANGED
@@ -1,89 +1,16 @@
1
- # Baijimu CLI
1
+ # @baijimu/cli
2
2
 
3
- `@baijimu/cli` is the npm distribution wrapper for the native Rust `baijimu` CLI.
3
+ This package is only a launcher for the signed native Rust Baijimu CLI. It does
4
+ not contain a second implementation of platform commands.
4
5
 
5
- The JavaScript code in this package does not implement Baijimu commands. It only
6
- installs and launches the Rust binary.
7
-
8
- ## Install
6
+ The launcher prefers the Bridge Agent managed binary at `~/.local/bin/baijimu`
7
+ (or `%LOCALAPPDATA%\Baijimu\bin\baijimu.exe`) and falls back to the signed binary
8
+ bundled for the current npm platform. Every candidate must report the expected
9
+ `rust-native` identity and at least the package's required native version.
9
10
 
10
11
  ```bash
11
12
  npm install -g @baijimu/cli
12
- ```
13
-
14
- During `postinstall`, the package resolves the native CLI in this order:
15
-
16
- 1. `BAIJIMU_NATIVE_CLI`, when set.
17
- 2. An existing native install such as `~/.local/bin/baijimu` or `~/AppData/Local/Baijimu/bin/baijimu.exe`.
18
- 3. A binary bundled inside this npm package at `native/<platform>-<arch>/baijimu`.
19
- 4. A downloaded binary cached under `~/.cache/baijimu-cli/native/<native-version>/<platform>-<arch>/`.
20
-
21
- The launcher uses this order when running commands:
22
-
23
- 1. `BAIJIMU_NATIVE_CLI`, when set.
24
- 2. The binary bundled inside this npm package.
25
- 3. The binary downloaded by `postinstall`.
26
- 4. Existing native installs from other channels.
27
-
28
- ## Commands
29
-
30
- All command behavior is owned by the Rust CLI:
31
-
32
- ```bash
33
13
  baijimu --version --json
34
- baijimu auth status --verify
35
- baijimu workspace list
36
- baijimu api POST /partner/v1/projects/list --data '{"workspaceId":642,"pageNum":1,"pageSize":20}'
37
- baijimu codex apikey create --workspace-id 642 --project-id 7405 --write-codex-config
38
14
  ```
39
15
 
40
- ## Installer Configuration
41
-
42
- Environment variables:
43
-
44
- - `BAIJIMU_NATIVE_CLI`: use an explicit existing Rust binary.
45
- - `BAIJIMU_CLI_SKIP_INSTALL=1`: skip `postinstall` installation.
46
- - `BAIJIMU_CLI_BINARY_URL`: exact URL for the current platform binary.
47
- - `BAIJIMU_CLI_RELEASE_BASE_URL`: base URL containing standard binary assets.
48
- - `BAIJIMU_CLI_NATIVE_DIR`: local directory containing `<platform>-<arch>/baijimu`.
49
- - `BAIJIMU_CLI_CACHE_DIR`: override the native binary cache root.
50
- - `BAIJIMU_CLI_IGNORE_EXTERNAL=1`: ignore native installs from standard system paths.
51
-
52
- By default, `postinstall` downloads:
53
-
54
- ```text
55
- https://gitee.com/zxflimit_admin/baijimu-cli-rs/releases/download/v<native-version>/baijimu-<native-version>-<platform>-<arch>[.exe]
56
- ```
57
-
58
- The native version comes from `package.json` at `baijimu.nativeVersion`. If that
59
- field is absent, the npm package version is used.
60
-
61
- Supported platform directory examples:
62
-
63
- ```text
64
- native/darwin-arm64/baijimu
65
- native/darwin-x64/baijimu
66
- native/linux-x64/baijimu
67
- native/linux-arm64/baijimu
68
- native/win32-x64/baijimu.exe
69
- ```
70
-
71
- ## Release
72
-
73
- Build and test the npm wrapper:
74
-
75
- ```bash
76
- npm ci
77
- npm run test
78
- npm run pack:check
79
- ```
80
-
81
- For offline-friendly npm releases, place Rust build artifacts under `native/`
82
- before publishing. If `native/` is absent, installation still works through the
83
- release download URL as long as the matching asset has been published.
84
-
85
- Publish:
86
-
87
- ```bash
88
- npm run release:npm
89
- ```
16
+ `BAIJIMU_NATIVE_CLI` can select an explicit signed or locally built binary.
package/dist/index.js CHANGED
@@ -1,27 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { realpathSync } from "node:fs";
3
- import { fileURLToPath } from "node:url";
4
- import { missingNativeMessage, resolveNativeCli, runNativeCli } from "./native.js";
5
- export async function main(argv = process.argv.slice(2)) {
6
- const native = resolveNativeCli(import.meta.url);
7
- if (!native) {
8
- process.stderr.write(`${missingNativeMessage()}\n`);
9
- process.exit(127);
10
- }
11
- const exitCode = await runNativeCli(native.path, argv);
12
- process.exit(exitCode);
13
- }
14
- function isEntrypoint() {
15
- if (!process.argv[1]) {
16
- return false;
17
- }
18
- return realpathSync(fileURLToPath(import.meta.url)) === realpathSync(process.argv[1]);
19
- }
20
- if (isEntrypoint()) {
21
- main().catch((error) => {
22
- const message = error instanceof Error ? error.stack || error.message : String(error);
23
- process.stderr.write(`${message}\n`);
24
- process.exit(1);
25
- });
26
- }
27
- //# sourceMappingURL=index.js.map
2
+ import { run } from "./launcher.js";
3
+
4
+ run(process.argv.slice(2)).then(
5
+ (code) => process.exit(code),
6
+ (error) => {
7
+ process.stderr.write(`@baijimu/cli: ${error instanceof Error ? error.message : String(error)}\n`);
8
+ process.exit(1);
9
+ }
10
+ );
@@ -0,0 +1,94 @@
1
+ import { accessSync, constants, readFileSync, realpathSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { dirname, join, resolve } from "node:path";
4
+ import { spawn, spawnSync } from "node:child_process";
5
+ import { fileURLToPath } from "node:url";
6
+
7
+ const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
8
+ const metadata = JSON.parse(readFileSync(join(packageRoot, "package.json"), "utf8"));
9
+ export const nativeVersion = metadata.baijimu.nativeVersion;
10
+
11
+ export function binaryName() {
12
+ return process.platform === "win32" ? "baijimu.exe" : "baijimu";
13
+ }
14
+
15
+ export function platformTriple() {
16
+ return `${process.platform}-${process.arch}`;
17
+ }
18
+
19
+ export function nativeCandidates(entrypoint = process.argv[1]) {
20
+ const candidates = [];
21
+ if (process.env.BAIJIMU_NATIVE_CLI) {
22
+ candidates.push({ path: process.env.BAIJIMU_NATIVE_CLI, source: "env" });
23
+ }
24
+ if (process.env.BAIJIMU_CLI_IGNORE_EXTERNAL !== "1") {
25
+ candidates.push({
26
+ path: process.platform === "win32"
27
+ ? join(process.env.LOCALAPPDATA || homedir(), "Baijimu", "bin", binaryName())
28
+ : join(homedir(), ".local", "bin", binaryName()),
29
+ source: "managed"
30
+ });
31
+ if (process.platform !== "win32") {
32
+ candidates.push({ path: "/usr/local/bin/baijimu", source: "system" });
33
+ }
34
+ }
35
+ if (process.env.BAIJIMU_CLI_IGNORE_BUNDLED !== "1") {
36
+ candidates.push({ path: join(packageRoot, "native", platformTriple(), binaryName()), source: "bundled" });
37
+ }
38
+ return candidates.filter((candidate) => !entrypoint || !samePath(candidate.path, entrypoint));
39
+ }
40
+
41
+ export function resolveNativeCli(entrypoint = process.argv[1]) {
42
+ for (const candidate of nativeCandidates(entrypoint)) {
43
+ if (validNative(candidate.path)) {
44
+ return candidate;
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+
50
+ export function validNative(path) {
51
+ try {
52
+ accessSync(path, constants.X_OK);
53
+ const result = spawnSync(path, ["--version", "--json"], { encoding: "utf8", timeout: 10000 });
54
+ if (result.status !== 0) return false;
55
+ const version = JSON.parse(result.stdout);
56
+ return version.name === "baijimu" && version.implementation === "rust-native" &&
57
+ compareVersions(version.version, nativeVersion) >= 0;
58
+ } catch {
59
+ return false;
60
+ }
61
+ }
62
+
63
+ export function compareVersions(left, right) {
64
+ const parse = (value) => value.split(".").map((part) => Number(part) || 0);
65
+ const a = parse(left);
66
+ const b = parse(right);
67
+ for (let index = 0; index < Math.max(a.length, b.length); index += 1) {
68
+ if ((a[index] || 0) !== (b[index] || 0)) return (a[index] || 0) > (b[index] || 0) ? 1 : -1;
69
+ }
70
+ return 0;
71
+ }
72
+
73
+ export async function run(argv) {
74
+ const native = resolveNativeCli();
75
+ if (!native) {
76
+ throw new Error([
77
+ `native Baijimu CLI ${nativeVersion} or newer was not found for ${platformTriple()}.`,
78
+ "Install Baijimu Local, reinstall @baijimu/cli, or set BAIJIMU_NATIVE_CLI."
79
+ ].join(" "));
80
+ }
81
+ return new Promise((resolveExit) => {
82
+ const child = spawn(native.path, argv, { stdio: "inherit", env: process.env });
83
+ child.on("error", () => resolveExit(127));
84
+ child.on("exit", (code, signal) => resolveExit(typeof code === "number" ? code : signal ? 128 : 1));
85
+ });
86
+ }
87
+
88
+ function samePath(left, right) {
89
+ try {
90
+ return realpathSync(left) === realpathSync(right);
91
+ } catch {
92
+ return false;
93
+ }
94
+ }
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,32 +1,29 @@
1
1
  {
2
2
  "name": "@baijimu/cli",
3
- "version": "0.1.6",
4
- "description": "npm distribution wrapper for the native Rust Baijimu CLI.",
5
- "baijimu": {
6
- "nativeVersion": "0.1.0",
7
- "releaseBaseUrl": "https://gitee.com/zxflimit_admin/baijimu-cli-rs/releases/download/v${version}"
3
+ "version": "0.1.9",
4
+ "description": "npm launcher for the native Rust Baijimu CLI.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/momoplan/bridge-agent.git"
8
8
  },
9
9
  "type": "module",
10
- "private": false,
11
10
  "bin": {
12
- "baijimu": "./dist/index.js",
13
- "bjm": "./dist/index.js"
11
+ "baijimu": "dist/index.js",
12
+ "bjm": "dist/index.js"
14
13
  },
15
14
  "files": [
16
15
  "dist",
17
16
  "native",
18
- "scripts/postinstall.cjs",
19
17
  "README.md"
20
18
  ],
19
+ "baijimu": {
20
+ "nativeVersion": "0.1.8"
21
+ },
21
22
  "scripts": {
22
- "build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json && chmod +x dist/index.js dist/install.js",
23
- "check": "tsc -p tsconfig.json --noEmit",
24
- "test": "npm run build && node --test test/*.test.mjs",
23
+ "test": "node --test test/*.test.mjs",
25
24
  "pack:check": "npm pack --dry-run",
26
- "postinstall": "node scripts/postinstall.cjs",
27
25
  "release:npm": "npm publish --access public --registry https://registry.npmjs.org/",
28
- "prepublishOnly": "npm run test && npm run pack:check",
29
- "prepare": "npm run build"
26
+ "prepublishOnly": "npm test && npm run pack:check"
30
27
  },
31
28
  "engines": {
32
29
  "node": ">=18.18"
@@ -34,9 +31,5 @@
34
31
  "publishConfig": {
35
32
  "access": "public",
36
33
  "registry": "https://registry.npmjs.org/"
37
- },
38
- "devDependencies": {
39
- "@types/node": "^20.14.11",
40
- "typescript": "^5.5.3"
41
34
  }
42
35
  }
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export declare function main(argv?: string[]): Promise<void>;
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,IAAI,YAAY,EAAE,EAAE,CAAC;IACnB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/install.d.ts DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- export declare function main(): Promise<void>;
3
- export declare function nativeAssetName(): string;
4
- export declare function nativeDownloadUrl(): string | null;
package/dist/install.js DELETED
@@ -1,155 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createWriteStream, existsSync, realpathSync, renameSync, unlinkSync } from "node:fs";
3
- import { copyFile } from "node:fs/promises";
4
- import http from "node:http";
5
- import https from "node:https";
6
- import { join } from "node:path";
7
- import { fileURLToPath, URL } from "node:url";
8
- import { NATIVE_VERSION, PACKAGE_METADATA, binaryName, bundledNativePath, cacheNativePath, ensureExecutable, ensureNativeCacheDir, explicitNativeCandidate, externalNativeCandidates, isExecutable, packageRoot, platformTriple, } from "./platform.js";
9
- const MAX_REDIRECTS = 5;
10
- export async function main() {
11
- if (process.env.BAIJIMU_CLI_SKIP_INSTALL === "1") {
12
- log("skipping native install because BAIJIMU_CLI_SKIP_INSTALL=1");
13
- return;
14
- }
15
- const existing = findExistingNative(import.meta.url);
16
- if (existing) {
17
- log(`using existing Rust CLI: ${existing}`);
18
- return;
19
- }
20
- const localBinary = localNativeSource();
21
- if (localBinary) {
22
- await installFromLocalFile(localBinary);
23
- return;
24
- }
25
- const url = nativeDownloadUrl();
26
- if (!url) {
27
- throw new Error([
28
- "No Baijimu Rust CLI binary is available for this install.",
29
- "Set BAIJIMU_CLI_BINARY_URL to an exact binary URL, set BAIJIMU_CLI_NATIVE_DIR to a directory containing the binary,",
30
- "or publish this npm package with native/<platform>-<arch>/baijimu included.",
31
- ].join(" "));
32
- }
33
- await downloadNative(url);
34
- }
35
- export function nativeAssetName() {
36
- return `baijimu-${NATIVE_VERSION}-${platformTriple()}${process.platform === "win32" ? ".exe" : ""}`;
37
- }
38
- export function nativeDownloadUrl() {
39
- if (process.env.BAIJIMU_CLI_BINARY_URL) {
40
- return process.env.BAIJIMU_CLI_BINARY_URL;
41
- }
42
- const releaseBaseUrl = process.env.BAIJIMU_CLI_RELEASE_BASE_URL || defaultReleaseBaseUrl();
43
- if (!releaseBaseUrl) {
44
- return null;
45
- }
46
- return `${releaseBaseUrl.replace(/\/$/, "")}/${nativeAssetName()}`;
47
- }
48
- function defaultReleaseBaseUrl() {
49
- const configured = PACKAGE_METADATA.releaseBaseUrl;
50
- if (configured) {
51
- return configured.replaceAll("${version}", NATIVE_VERSION);
52
- }
53
- return `https://gitee.com/zxflimit_admin/baijimu-cli-rs/releases/download/v${NATIVE_VERSION}`;
54
- }
55
- function findExistingNative(importMetaUrl) {
56
- const root = packageRoot(importMetaUrl);
57
- const candidates = [
58
- explicitNativeCandidate(),
59
- ...externalNativeCandidates(),
60
- bundledNativePath(root),
61
- cacheNativePath(),
62
- ].filter((candidate) => Boolean(candidate));
63
- for (const candidate of candidates) {
64
- ensureExecutable(candidate);
65
- if (isExecutable(candidate)) {
66
- return candidate;
67
- }
68
- }
69
- return null;
70
- }
71
- function localNativeSource() {
72
- const nativeDir = process.env.BAIJIMU_CLI_NATIVE_DIR;
73
- if (!nativeDir) {
74
- return null;
75
- }
76
- const candidate = join(nativeDir, platformTriple(), binaryName());
77
- return existsSync(candidate) ? candidate : null;
78
- }
79
- async function installFromLocalFile(sourcePath) {
80
- const destination = cacheNativePath();
81
- ensureNativeCacheDir();
82
- await copyFile(sourcePath, destination);
83
- ensureExecutable(destination);
84
- log(`installed Rust CLI from ${sourcePath}`);
85
- }
86
- async function downloadNative(url) {
87
- ensureNativeCacheDir();
88
- const destination = cacheNativePath();
89
- const tempPath = `${destination}.download`;
90
- try {
91
- await downloadToFile(url, tempPath, MAX_REDIRECTS);
92
- renameSync(tempPath, destination);
93
- ensureExecutable(destination);
94
- log(`installed Rust CLI from ${url}`);
95
- }
96
- catch (error) {
97
- try {
98
- unlinkSync(tempPath);
99
- }
100
- catch {
101
- // Nothing to clean.
102
- }
103
- throw error;
104
- }
105
- }
106
- function downloadToFile(url, destination, redirectsLeft) {
107
- return new Promise((resolveDownload, rejectDownload) => {
108
- const parsed = new URL(url);
109
- if (parsed.protocol === "file:") {
110
- copyFile(parsed, destination).then(resolveDownload, rejectDownload);
111
- return;
112
- }
113
- const client = parsed.protocol === "https:" ? https : http;
114
- const request = client.get(parsed, (response) => {
115
- const statusCode = response.statusCode || 0;
116
- if (statusCode >= 300 && statusCode < 400 && response.headers.location) {
117
- response.resume();
118
- if (redirectsLeft <= 0) {
119
- rejectDownload(new Error(`too many redirects while downloading ${url}`));
120
- return;
121
- }
122
- const redirectUrl = new URL(response.headers.location, parsed).toString();
123
- downloadToFile(redirectUrl, destination, redirectsLeft - 1).then(resolveDownload, rejectDownload);
124
- return;
125
- }
126
- if (statusCode !== 200) {
127
- response.resume();
128
- rejectDownload(new Error(`download failed with HTTP ${statusCode}: ${url}`));
129
- return;
130
- }
131
- const file = createWriteStream(destination, { mode: 0o755 });
132
- response.pipe(file);
133
- file.on("finish", () => file.close(() => resolveDownload()));
134
- file.on("error", rejectDownload);
135
- });
136
- request.on("error", rejectDownload);
137
- });
138
- }
139
- function log(message) {
140
- process.stderr.write(`@baijimu/cli: ${message}\n`);
141
- }
142
- function isEntrypoint() {
143
- if (!process.argv[1]) {
144
- return false;
145
- }
146
- return realpathSync(fileURLToPath(import.meta.url)) === realpathSync(process.argv[1]);
147
- }
148
- if (isEntrypoint()) {
149
- main().catch((error) => {
150
- const message = error instanceof Error ? error.message : String(error);
151
- process.stderr.write(`@baijimu/cli: ${message}\n`);
152
- process.exit(1);
153
- });
154
- }
155
- //# sourceMappingURL=install.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/native.d.ts DELETED
@@ -1,7 +0,0 @@
1
- export interface NativeResolution {
2
- path: string;
3
- source: "env" | "bundled" | "cache" | "external";
4
- }
5
- export declare function resolveNativeCli(importMetaUrl: string, currentEntrypoint?: string): NativeResolution | null;
6
- export declare function runNativeCli(nativePath: string, argv: string[]): Promise<number>;
7
- export declare function missingNativeMessage(): string;
package/dist/native.js DELETED
@@ -1,51 +0,0 @@
1
- import { spawn } from "node:child_process";
2
- import { bundledNativePath, cacheNativePath, ensureExecutable, explicitNativeCandidate, externalNativeCandidates, isExecutable, isSamePath, packageRoot, } from "./platform.js";
3
- export function resolveNativeCli(importMetaUrl, currentEntrypoint = process.argv[1]) {
4
- const root = packageRoot(importMetaUrl);
5
- const bundled = bundledNativePath(root);
6
- const cache = cacheNativePath();
7
- const candidates = [
8
- ...(explicitNativeCandidate() ? [{ path: explicitNativeCandidate(), source: "env" }] : []),
9
- { path: bundled, source: "bundled" },
10
- { path: cache, source: "cache" },
11
- ...externalNativeCandidates().map((path) => ({ path, source: "external" })),
12
- ];
13
- for (const candidate of candidates) {
14
- if (currentEntrypoint && isSamePath(candidate.path, currentEntrypoint)) {
15
- continue;
16
- }
17
- ensureExecutable(candidate.path);
18
- if (isExecutable(candidate.path)) {
19
- return candidate;
20
- }
21
- }
22
- return null;
23
- }
24
- export function runNativeCli(nativePath, argv) {
25
- return new Promise((resolveExit) => {
26
- const child = spawn(nativePath, argv, {
27
- stdio: "inherit",
28
- env: process.env,
29
- });
30
- child.on("error", () => resolveExit(127));
31
- child.on("exit", (code, signal) => {
32
- if (typeof code === "number") {
33
- resolveExit(code);
34
- return;
35
- }
36
- resolveExit(signal ? 128 : 1);
37
- });
38
- });
39
- }
40
- export function missingNativeMessage() {
41
- return [
42
- "Baijimu Rust CLI binary was not found.",
43
- "",
44
- "The npm package installs the native binary during postinstall. Re-run:",
45
- " npm rebuild @baijimu/cli",
46
- "",
47
- "For offline or managed installs, set BAIJIMU_NATIVE_CLI to an existing baijimu binary,",
48
- "or pre-bundle native/<platform>-<arch>/baijimu before publishing this package.",
49
- ].join("\n");
50
- }
51
- //# sourceMappingURL=native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAOvB,MAAM,UAAU,gBAAgB,CAAC,aAAqB,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,UAAU,GAAuB;QACrC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAY,EAAE,MAAM,EAAE,KAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;QAChC,GAAG,wBAAwB,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAmB,EAAE,CAAC,CAAC;KACrF,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,iBAAiB,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;YACvE,SAAS;QACX,CAAC;QACD,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,IAAc;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;YACpC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,wCAAwC;QACxC,EAAE;QACF,wEAAwE;QACxE,4BAA4B;QAC5B,EAAE;QACF,wFAAwF;QACxF,gFAAgF;KACjF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -1,21 +0,0 @@
1
- export declare const PACKAGE_METADATA: PackageMetadata;
2
- export declare const PACKAGE_VERSION: string;
3
- export declare const NATIVE_VERSION: string;
4
- export interface PackageMetadata {
5
- version: string;
6
- nativeVersion: string;
7
- releaseBaseUrl: string | null;
8
- }
9
- export declare function binaryName(): string;
10
- export declare function platformTriple(): string;
11
- export declare function packageRoot(importMetaUrl: string): string;
12
- export declare function bundledNativePath(root: string): string;
13
- export declare function cacheNativePath(): string;
14
- export declare function nativeCacheDir(): string;
15
- export declare function cacheRoot(): string;
16
- export declare function externalNativeCandidates(): string[];
17
- export declare function explicitNativeCandidate(): string | null;
18
- export declare function isExecutable(path: string): boolean;
19
- export declare function ensureExecutable(path: string): void;
20
- export declare function ensureNativeCacheDir(): string;
21
- export declare function isSamePath(left: string, right: string): boolean;
package/dist/platform.js DELETED
@@ -1,96 +0,0 @@
1
- import { accessSync, constants, chmodSync, existsSync, mkdirSync, readFileSync, realpathSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { dirname, join, resolve } from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- export const PACKAGE_METADATA = readPackageMetadata();
6
- export const PACKAGE_VERSION = PACKAGE_METADATA.version;
7
- export const NATIVE_VERSION = PACKAGE_METADATA.nativeVersion;
8
- function readPackageMetadata() {
9
- const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
10
- const raw = readFileSync(join(root, "package.json"), "utf8");
11
- const parsed = JSON.parse(raw);
12
- if (typeof parsed.version !== "string" || !parsed.version) {
13
- throw new Error("package.json is missing a valid version");
14
- }
15
- const nativeVersion = typeof parsed.baijimu?.nativeVersion === "string" && parsed.baijimu.nativeVersion
16
- ? parsed.baijimu.nativeVersion
17
- : parsed.version;
18
- const releaseBaseUrl = typeof parsed.baijimu?.releaseBaseUrl === "string" && parsed.baijimu.releaseBaseUrl
19
- ? parsed.baijimu.releaseBaseUrl
20
- : null;
21
- return {
22
- version: parsed.version,
23
- nativeVersion,
24
- releaseBaseUrl,
25
- };
26
- }
27
- export function binaryName() {
28
- return process.platform === "win32" ? "baijimu.exe" : "baijimu";
29
- }
30
- export function platformTriple() {
31
- return `${process.platform}-${process.arch}`;
32
- }
33
- export function packageRoot(importMetaUrl) {
34
- return resolve(dirname(fileURLToPath(importMetaUrl)), "..");
35
- }
36
- export function bundledNativePath(root) {
37
- return join(root, "native", platformTriple(), binaryName());
38
- }
39
- export function cacheNativePath() {
40
- return join(nativeCacheDir(), binaryName());
41
- }
42
- export function nativeCacheDir() {
43
- return join(cacheRoot(), NATIVE_VERSION, platformTriple());
44
- }
45
- export function cacheRoot() {
46
- if (process.env.BAIJIMU_CLI_CACHE_DIR) {
47
- return process.env.BAIJIMU_CLI_CACHE_DIR;
48
- }
49
- if (process.platform === "win32") {
50
- return join(process.env.LOCALAPPDATA || homedir(), "Baijimu", "cli-native");
51
- }
52
- return join(homedir(), ".cache", "baijimu-cli", "native");
53
- }
54
- export function externalNativeCandidates() {
55
- if (process.env.BAIJIMU_CLI_IGNORE_EXTERNAL === "1") {
56
- return [];
57
- }
58
- const candidates = [
59
- process.platform === "win32"
60
- ? join(process.env.LOCALAPPDATA || homedir(), "Baijimu", "bin", binaryName())
61
- : join(homedir(), ".local", "bin", binaryName()),
62
- process.platform === "win32" ? undefined : "/usr/local/bin/baijimu",
63
- ];
64
- return candidates.filter((candidate) => Boolean(candidate));
65
- }
66
- export function explicitNativeCandidate() {
67
- return process.env.BAIJIMU_NATIVE_CLI || null;
68
- }
69
- export function isExecutable(path) {
70
- try {
71
- accessSync(path, constants.X_OK);
72
- return true;
73
- }
74
- catch {
75
- return false;
76
- }
77
- }
78
- export function ensureExecutable(path) {
79
- if (process.platform !== "win32" && existsSync(path)) {
80
- chmodSync(path, 0o755);
81
- }
82
- }
83
- export function ensureNativeCacheDir() {
84
- const dir = nativeCacheDir();
85
- mkdirSync(dir, { recursive: true });
86
- return dir;
87
- }
88
- export function isSamePath(left, right) {
89
- try {
90
- return realpathSync(left) === realpathSync(right);
91
- }
92
- catch {
93
- return false;
94
- }
95
- }
96
- //# sourceMappingURL=platform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- const { existsSync } = require("node:fs");
2
- const { join } = require("node:path");
3
- const { pathToFileURL } = require("node:url");
4
-
5
- const installScript = join(__dirname, "..", "dist", "install.js");
6
-
7
- if (!existsSync(installScript)) {
8
- process.stderr.write("@baijimu/cli: dist/install.js is not built; skipping source checkout postinstall\n");
9
- process.exit(0);
10
- }
11
-
12
- import(pathToFileURL(installScript).toString())
13
- .then((module) => module.main())
14
- .catch((error) => {
15
- const message = error instanceof Error ? error.message : String(error);
16
- process.stderr.write(`@baijimu/cli: ${message}\n`);
17
- process.exit(1);
18
- });