@kevin0181/rcodex 0.0.1 → 0.0.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/README.md +2 -4
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +15 -1
- package/dist/commands/launch.js.map +1 -1
- package/package.json +2 -1
- package/scripts/postinstall.cjs +32 -0
package/README.md
CHANGED
|
@@ -123,17 +123,15 @@ Run `rcodex doctor` to diagnose and auto-fix supported setup issues.
|
|
|
123
123
|
|
|
124
124
|
npm is the distribution channel for the `rcodex` command. GitHub Releases are useful for release notes and source archives, but users receive updates from npm because they install the package with `npm install -g @kevin0181/rcodex`.
|
|
125
125
|
|
|
126
|
-
For the
|
|
126
|
+
For the current release:
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
129
|
npm login
|
|
130
130
|
npm run build
|
|
131
131
|
npm publish --access public
|
|
132
|
-
git tag v0.0.1
|
|
133
|
-
git push origin v0.0.1
|
|
134
132
|
```
|
|
135
133
|
|
|
136
|
-
Then create a GitHub Release from tag
|
|
134
|
+
Then create a GitHub Release from the version tag and paste the release notes. For later versions:
|
|
137
135
|
|
|
138
136
|
```bash
|
|
139
137
|
npm version patch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AA2EA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA8E/C"}
|
package/dist/commands/launch.js
CHANGED
|
@@ -11,6 +11,19 @@ import { isCodexRunning, killCodex, openCodexApp } from "../core/codex.js";
|
|
|
11
11
|
import { hasUnmigratedThreads, migrateThreads } from "./migrate.js";
|
|
12
12
|
const RCODEX_DIR = join(homedir(), ".rcodex");
|
|
13
13
|
const DAEMON_LOG = join(RCODEX_DIR, "gateway.log");
|
|
14
|
+
function getGatewayDaemonCommand() {
|
|
15
|
+
const entry = process.argv[1] ?? "";
|
|
16
|
+
if (entry.endsWith(".ts")) {
|
|
17
|
+
return {
|
|
18
|
+
command: process.platform === "win32" ? "npm.cmd" : "npm",
|
|
19
|
+
args: ["run", "dev", "--", "_gateway"],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
command: process.execPath,
|
|
24
|
+
args: [entry, "_gateway"],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
14
27
|
// Poll until gateway responds or timeout. Re-reads gateway.json each tick so we
|
|
15
28
|
// pick up the actual port if the daemon had to use a different one.
|
|
16
29
|
async function waitForGateway(initialPort, timeoutMs = 6000) {
|
|
@@ -70,7 +83,8 @@ export async function runLaunch() {
|
|
|
70
83
|
if (!existsSync(RCODEX_DIR))
|
|
71
84
|
mkdirSync(RCODEX_DIR, { recursive: true });
|
|
72
85
|
const logFd = openSync(DAEMON_LOG, "a");
|
|
73
|
-
const
|
|
86
|
+
const daemon = getGatewayDaemonCommand();
|
|
87
|
+
const child = spawn(daemon.command, daemon.args, {
|
|
74
88
|
detached: true,
|
|
75
89
|
stdio: ["ignore", logFd, logFd],
|
|
76
90
|
windowsHide: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kevin0181/rcodex",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Gateway and provider manager for Codex: Claude, GPT, Gemini, Ollama, Antigravity, and Copilot via a single local proxy",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist/",
|
|
20
|
+
"scripts/postinstall.cjs",
|
|
20
21
|
"README.md",
|
|
21
22
|
"LICENSE"
|
|
22
23
|
],
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const { execSync } = require("child_process");
|
|
2
|
+
const path = require("path");
|
|
3
|
+
|
|
4
|
+
function normalizePath(inputPath) {
|
|
5
|
+
try {
|
|
6
|
+
return path.resolve(inputPath.trim().replace(/[\\/]+/g, path.sep)).toLowerCase();
|
|
7
|
+
} catch {
|
|
8
|
+
return inputPath.toLowerCase();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
try {
|
|
13
|
+
const prefix = execSync("npm config get prefix", { encoding: "utf8" }).trim();
|
|
14
|
+
const binDir = process.platform === "win32" ? prefix : path.join(prefix, "bin");
|
|
15
|
+
const normalizedBinDir = normalizePath(binDir);
|
|
16
|
+
const paths = (process.env.PATH || "")
|
|
17
|
+
.split(path.delimiter)
|
|
18
|
+
.map((entry) => normalizePath(entry));
|
|
19
|
+
|
|
20
|
+
const isInPath = paths.some((entry) => entry === normalizedBinDir || entry === normalizedBinDir + path.sep);
|
|
21
|
+
|
|
22
|
+
if (!isInPath) {
|
|
23
|
+
console.warn("\n======================================================================");
|
|
24
|
+
console.warn("WARNING: The global npm binaries directory is not in your PATH.");
|
|
25
|
+
console.warn("Please add the following directory to your PATH environment variable:");
|
|
26
|
+
console.warn(` ${binDir}`);
|
|
27
|
+
console.warn("Otherwise, the 'rcodex' command will not be recognized by your terminal.");
|
|
28
|
+
console.warn("======================================================================\n");
|
|
29
|
+
}
|
|
30
|
+
} catch {
|
|
31
|
+
// Do not fail installation for a PATH warning.
|
|
32
|
+
}
|