@kevin0181/rcodex 0.0.2 → 0.0.4
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 +3 -3
- package/dist/commands/doctor.js +11 -11
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +8 -7
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/migrate.js +6 -6
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/switch.js +4 -4
- package/dist/commands/switch.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +12 -21
- package/dist/commands/sync.js.map +1 -1
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +15 -6
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/ui.d.ts.map +1 -1
- package/dist/gateway/ui.js +267 -208
- package/dist/gateway/ui.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/logger.js +4 -4
- package/dist/utils/logger.js.map +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.cjs +9 -17
package/README.md
CHANGED
|
@@ -62,8 +62,8 @@ Use the sidebar to add accounts and model slots. Drag model slots onto the canva
|
|
|
62
62
|
|
|
63
63
|
Supported account types:
|
|
64
64
|
|
|
65
|
-
- Claude with Anthropic API key.
|
|
66
|
-
- OpenAI API key or
|
|
65
|
+
- Claude with Anthropic API key or Claude Code OAuth.
|
|
66
|
+
- OpenAI API key, OAuth flow, or unofficial ChatGPT session token.
|
|
67
67
|
- Google Gemini API key.
|
|
68
68
|
- Antigravity OAuth, using Gemini / Cloud Code routing.
|
|
69
69
|
- GitHub Copilot OAuth device login.
|
|
@@ -86,7 +86,7 @@ Supported account types:
|
|
|
86
86
|
|
|
87
87
|
### Claude
|
|
88
88
|
|
|
89
|
-
rcodex supports Anthropic API-key accounts. Older unofficial Claude.ai session auth is not supported for direct inference
|
|
89
|
+
rcodex supports Anthropic API-key accounts and Claude Code OAuth. Older unofficial Claude.ai session auth is not supported for direct inference, so the UI does not offer it.
|
|
90
90
|
|
|
91
91
|
### Ollama
|
|
92
92
|
|
package/dist/commands/doctor.js
CHANGED
|
@@ -18,7 +18,7 @@ export async function runDoctor() {
|
|
|
18
18
|
if (codexOk)
|
|
19
19
|
logger.success("Codex installed");
|
|
20
20
|
else
|
|
21
|
-
logger.warn("Codex NOT found
|
|
21
|
+
logger.warn("Codex NOT found: https://github.com/openai/codex");
|
|
22
22
|
// Gateway
|
|
23
23
|
const gw = loadConfig();
|
|
24
24
|
try {
|
|
@@ -30,16 +30,16 @@ export async function runDoctor() {
|
|
|
30
30
|
logger.success(`rcodex Gateway running on :${data.port} (${data.accountCount ?? 0} accounts)`);
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
33
|
-
logger.warn(`rcodex Gateway not running (port: ${gw.port})
|
|
33
|
+
logger.warn(`rcodex Gateway not running (port: ${gw.port}); run: rcodex`);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
catch {
|
|
37
|
-
logger.warn(`rcodex Gateway not running (port: ${gw.port})
|
|
37
|
+
logger.warn(`rcodex Gateway not running (port: ${gw.port}); run: rcodex`);
|
|
38
38
|
}
|
|
39
39
|
// Connected accounts
|
|
40
40
|
const accounts = gw.accounts ?? [];
|
|
41
41
|
if (accounts.length === 0) {
|
|
42
|
-
logger.warn("No accounts connected
|
|
42
|
+
logger.warn("No accounts connected; open the Gateway UI to add providers");
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
45
|
logger.success(`Accounts: ${accounts.map(a => `${a.provider}(${a.label})`).join(", ")}`);
|
|
@@ -49,12 +49,12 @@ export async function runDoctor() {
|
|
|
49
49
|
if (ollamaOk) {
|
|
50
50
|
const models = await getOllamaModels();
|
|
51
51
|
if (models.length === 0)
|
|
52
|
-
logger.warn("Ollama installed but no models
|
|
52
|
+
logger.warn("Ollama installed but no models; run: ollama pull <model>");
|
|
53
53
|
else
|
|
54
|
-
logger.success(`Ollama: ${models.length} model(s)
|
|
54
|
+
logger.success(`Ollama: ${models.length} model(s): ${models.slice(0, 3).join(", ")}${models.length > 3 ? "..." : ""}`);
|
|
55
55
|
}
|
|
56
56
|
else {
|
|
57
|
-
logger.warn("Ollama NOT found
|
|
57
|
+
logger.warn("Ollama NOT found: https://ollama.com (optional)");
|
|
58
58
|
}
|
|
59
59
|
// Antigravity credentials check + auto-fix
|
|
60
60
|
logger.separator();
|
|
@@ -65,7 +65,7 @@ export async function runDoctor() {
|
|
|
65
65
|
logger.success("Antigravity credentials available");
|
|
66
66
|
}
|
|
67
67
|
else {
|
|
68
|
-
logger.warn("Antigravity credentials not found
|
|
68
|
+
logger.warn("Antigravity credentials not found; attempting auto-fix...");
|
|
69
69
|
// Try to extract bundled credentials and write to user path
|
|
70
70
|
try {
|
|
71
71
|
const creds = getAppCredentials(); // will throw if bundled also missing
|
|
@@ -91,7 +91,7 @@ export async function runDoctor() {
|
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
93
93
|
if (!existsSync(configPath)) {
|
|
94
|
-
logger.warn("config.toml not found
|
|
94
|
+
logger.warn("config.toml not found; run: rcodex to create it");
|
|
95
95
|
logger.done();
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
@@ -104,10 +104,10 @@ export async function runDoctor() {
|
|
|
104
104
|
if (gatewayRegistered)
|
|
105
105
|
logger.success(" Gateway registered in Codex config");
|
|
106
106
|
else
|
|
107
|
-
logger.warn(" Gateway NOT registered
|
|
107
|
+
logger.warn(" Gateway NOT registered; run: rcodex");
|
|
108
108
|
}
|
|
109
109
|
catch {
|
|
110
|
-
logger.warn("config.toml parse failed
|
|
110
|
+
logger.warn("config.toml parse failed; file may be corrupted");
|
|
111
111
|
}
|
|
112
112
|
logger.done();
|
|
113
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEtG,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,CAAC,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAClE,MAAM,CAAC,SAAS,EAAE,CAAC;IAEnB,QAAQ;IACR,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACzC,IAAI,OAAO;QAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;;QAC1C,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AA2EA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AA2EA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA+E/C"}
|
package/dist/commands/launch.js
CHANGED
|
@@ -15,8 +15,8 @@ function getGatewayDaemonCommand() {
|
|
|
15
15
|
const entry = process.argv[1] ?? "";
|
|
16
16
|
if (entry.endsWith(".ts")) {
|
|
17
17
|
return {
|
|
18
|
-
command: process.
|
|
19
|
-
args: ["
|
|
18
|
+
command: process.execPath,
|
|
19
|
+
args: ["--import", "tsx", entry, "_gateway"],
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
return {
|
|
@@ -82,11 +82,12 @@ export async function runLaunch() {
|
|
|
82
82
|
logger.info("Starting gateway in background...");
|
|
83
83
|
if (!existsSync(RCODEX_DIR))
|
|
84
84
|
mkdirSync(RCODEX_DIR, { recursive: true });
|
|
85
|
-
const
|
|
85
|
+
const stdoutFd = openSync(DAEMON_LOG, "a");
|
|
86
|
+
const stderrFd = openSync(DAEMON_LOG, "a");
|
|
86
87
|
const daemon = getGatewayDaemonCommand();
|
|
87
88
|
const child = spawn(daemon.command, daemon.args, {
|
|
88
89
|
detached: true,
|
|
89
|
-
stdio: ["ignore",
|
|
90
|
+
stdio: ["ignore", stdoutFd, stderrFd],
|
|
90
91
|
windowsHide: true,
|
|
91
92
|
});
|
|
92
93
|
child.unref();
|
|
@@ -102,16 +103,16 @@ export async function runLaunch() {
|
|
|
102
103
|
const codexPort = getCodexConfigPort(configPath);
|
|
103
104
|
if (codexPort !== actualPort) {
|
|
104
105
|
syncCodexConfigPort(configPath, actualPort);
|
|
105
|
-
logger.success(`Config updated: ${MANAGED_PROVIDER_KEY}
|
|
106
|
+
logger.success(`Config updated: ${MANAGED_PROVIDER_KEY} -> http://localhost:${actualPort}/v1` +
|
|
106
107
|
(codexPort ? ` (was :${codexPort})` : " (new)"));
|
|
107
108
|
}
|
|
108
109
|
else {
|
|
109
|
-
logger.success(`Config OK: ${MANAGED_PROVIDER_KEY}
|
|
110
|
+
logger.success(`Config OK: ${MANAGED_PROVIDER_KEY} -> http://localhost:${actualPort}/v1`);
|
|
110
111
|
}
|
|
111
112
|
// 5. Migrate threads if needed (only when there's something to do)
|
|
112
113
|
if (hasUnmigratedThreads(MANAGED_PROVIDER_KEY)) {
|
|
113
114
|
logger.separator();
|
|
114
|
-
logger.info("Unmigrated threads found
|
|
115
|
+
logger.info("Unmigrated threads found; migrating to rcodex Gateway...");
|
|
115
116
|
const codexRunning = await isCodexRunning();
|
|
116
117
|
if (codexRunning) {
|
|
117
118
|
await killCodex();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEnD,SAAS,uBAAuB;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,QAAQ
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/migrate.js
CHANGED
|
@@ -9,7 +9,7 @@ import { isCodexRunning } from "../core/codex.js";
|
|
|
9
9
|
const CODEX_DIR = join(homedir(), ".codex");
|
|
10
10
|
const DB_PATH = join(CODEX_DIR, "state_5.sqlite");
|
|
11
11
|
const SESSIONS_DIR = join(CODEX_DIR, "sessions");
|
|
12
|
-
// rollout .jsonl
|
|
12
|
+
// rollout .jsonl ???뵬??筌?餓?session_meta)?癒?퐣 model_provider????ν뒄??뺣뼄.
|
|
13
13
|
function patchRolloutFile(filePath, targetProvider, dryRun) {
|
|
14
14
|
try {
|
|
15
15
|
const content = readFileSync(filePath, "utf-8");
|
|
@@ -33,7 +33,7 @@ function patchRolloutFile(filePath, targetProvider, dryRun) {
|
|
|
33
33
|
return false;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
// sessions
|
|
36
|
+
// sessions ??륁맄 筌뤴뫀諭?.jsonl ???뵬????? ?癒?퉳
|
|
37
37
|
function findRolloutFiles(dir) {
|
|
38
38
|
if (!existsSync(dir))
|
|
39
39
|
return [];
|
|
@@ -77,7 +77,7 @@ export async function migrateThreads(targetProvider, dryRun) {
|
|
|
77
77
|
logger.info("Run Codex once to create the database, then try again.");
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
|
-
//
|
|
80
|
+
// ???? 1. SQLite ????????????????????????????????????????????????????????????????????????????????????????????????
|
|
81
81
|
if (!dryRun) {
|
|
82
82
|
copyFileSync(DB_PATH, `${DB_PATH}.backup-${Date.now()}`);
|
|
83
83
|
}
|
|
@@ -109,19 +109,19 @@ export async function migrateThreads(targetProvider, dryRun) {
|
|
|
109
109
|
finally {
|
|
110
110
|
db.close();
|
|
111
111
|
}
|
|
112
|
-
//
|
|
112
|
+
// ???? 2. Rollout .jsonl ???뵬 ??ν뒄 ??????????????????????????????????????????????????????????
|
|
113
113
|
const rolloutFiles = findRolloutFiles(SESSIONS_DIR);
|
|
114
114
|
let fileChanged = 0;
|
|
115
115
|
for (const f of rolloutFiles) {
|
|
116
116
|
if (patchRolloutFile(f, targetProvider, dryRun))
|
|
117
117
|
fileChanged++;
|
|
118
118
|
}
|
|
119
|
-
logger.success(`Threads migrated
|
|
119
|
+
logger.success(`Threads migrated -> "${targetProvider}": ${dbChanged} DB rows, ${fileChanged} session files`);
|
|
120
120
|
}
|
|
121
121
|
export async function runMigrate(dryRun = false, showHeader = true) {
|
|
122
122
|
if (showHeader)
|
|
123
123
|
logger.header();
|
|
124
|
-
logger.info(`Migrating Codex threads
|
|
124
|
+
logger.info(`Migrating Codex threads -> "${MANAGED_PROVIDER_KEY}"...`);
|
|
125
125
|
logger.separator();
|
|
126
126
|
if (await isCodexRunning()) {
|
|
127
127
|
logger.error("Codex is running. Close it completely and try again.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAClG,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAClD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAEjD,
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/switch.js
CHANGED
|
@@ -14,7 +14,7 @@ export async function runSwitch(target) {
|
|
|
14
14
|
config = readCodexConfig(configPath);
|
|
15
15
|
}
|
|
16
16
|
catch (err) {
|
|
17
|
-
logger.error(`Config
|
|
17
|
+
logger.error(`Config save failed: ${err}`);
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
backupCodexConfig(configPath);
|
|
@@ -32,7 +32,7 @@ export async function runSwitch(target) {
|
|
|
32
32
|
config.model_provider = MANAGED_PROVIDER_KEY;
|
|
33
33
|
// Clear top-level model so Codex picks from /v1/models
|
|
34
34
|
delete config.model;
|
|
35
|
-
logger.success(`Provider: ${MANAGED_PROVIDER_KEY}
|
|
35
|
+
logger.success(`Provider: ${MANAGED_PROVIDER_KEY} -> rcodex Gateway (${gatewayUrl})`);
|
|
36
36
|
logger.info("Models are managed at the gateway web UI. Run 'rcodex' if not already running.");
|
|
37
37
|
}
|
|
38
38
|
else if (target === "openai") {
|
|
@@ -47,14 +47,14 @@ export async function runSwitch(target) {
|
|
|
47
47
|
config.model = "gpt-5.5";
|
|
48
48
|
logger.success(`Provider: native OpenAI (${DEFAULT_OPENAI_BASE_URL})`);
|
|
49
49
|
logger.success(`Model: gpt-5.5`);
|
|
50
|
-
logger.info("Bypassing rcodex Gateway
|
|
50
|
+
logger.info("Bypassing rcodex Gateway; using Codex built-in OpenAI auth.");
|
|
51
51
|
}
|
|
52
52
|
try {
|
|
53
53
|
writeCodexConfig(configPath, config);
|
|
54
54
|
logger.success(`Config saved: ${displayPath(configPath)}`);
|
|
55
55
|
}
|
|
56
56
|
catch (err) {
|
|
57
|
-
logger.error(
|
|
57
|
+
logger.error(`Config save failed: ${err}`);
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
// Kill Codex (if running) before migrating ??DB must not be locked
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/commands/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAoB;IAClD,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,WAAW,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAErD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/commands/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAoB;IAClD,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,WAAW,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAErD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAEpD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,oBAAoB,aAAa,CAAC,IAAI,KAAK,CAAC;QAE/D,IAAI,CAAC,MAAM,CAAC,eAAe;YAAE,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC;QACzD,MAAM,CAAC,eAAe,CAAC,oBAAoB,CAAC,GAAG;YAC7C,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,WAAW;SACtB,CAAC;QACF,MAAM,CAAC,cAAc,GAAG,oBAAoB,CAAC;QAC7C,uDAAuD;QACvD,OAAO,MAAM,CAAC,KAAK,CAAC;QAEpB,MAAM,CAAC,OAAO,CAAC,aAAa,oBAAoB,uBAAuB,UAAU,GAAG,CAAC,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAEhG,CAAC;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,8DAA8D;QAC9D,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,OAAO,MAAM,CAAC,eAAe,CAAC;YAChC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,cAAc,CAAC;QAC7B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;QAEzB,MAAM,CAAC,OAAO,CAAC,4BAA4B,uBAAuB,GAAG,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC;QACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,iBAAiB,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,mEAAmE;IACnE,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;IAC1C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,SAAS,EAAE,CAAC;QAClB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,0CAA0C;IAC1C,MAAM,CAAC,SAAS,EAAE,CAAC;IACnB,MAAM,aAAa,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACxF,MAAM,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAE3C,wCAAwC;IACxC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,YAAY,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA0BrD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA0BrD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EjE"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -11,7 +11,7 @@ async function waitUntilCodexClosed() {
|
|
|
11
11
|
const ask = () => new Promise((resolve) => {
|
|
12
12
|
rl.question("", async () => {
|
|
13
13
|
if (await isCodexRunning()) {
|
|
14
|
-
logger.warn("
|
|
14
|
+
logger.warn("Codex is still running. Close it completely, then press Enter.");
|
|
15
15
|
resolve(ask());
|
|
16
16
|
}
|
|
17
17
|
else {
|
|
@@ -25,45 +25,39 @@ async function waitUntilCodexClosed() {
|
|
|
25
25
|
export async function runSync(options) {
|
|
26
26
|
if (options.showHeader !== false)
|
|
27
27
|
logger.header();
|
|
28
|
-
// 1. Codex ?�치 ?�인 (미감지 ??경고�? ?�정?� 계속 진행)
|
|
29
28
|
if (!(await isCodexInstalled())) {
|
|
30
29
|
logger.warn("Codex not found in PATH. Install it first: https://github.com/openai/codex");
|
|
31
|
-
logger.warn("Continuing setup
|
|
30
|
+
logger.warn("Continuing setup; gateway config will be written but Codex will not launch automatically.");
|
|
32
31
|
}
|
|
33
32
|
else {
|
|
34
33
|
logger.success("Codex detected");
|
|
35
34
|
}
|
|
36
|
-
// 2. Config 경로 ?�인
|
|
37
35
|
let configPath;
|
|
38
36
|
try {
|
|
39
37
|
configPath = getCodexConfigPath();
|
|
40
38
|
}
|
|
41
39
|
catch (err) {
|
|
42
|
-
logger.error(`
|
|
40
|
+
logger.error(`Could not resolve Codex config path: ${err}`);
|
|
43
41
|
return;
|
|
44
42
|
}
|
|
45
43
|
logger.success(`Config found: ${displayPath(configPath)}`);
|
|
46
|
-
// 3. Config 백업
|
|
47
44
|
try {
|
|
48
45
|
const backupPath = backupCodexConfig(configPath);
|
|
49
46
|
logger.success(`Backup created: ${displayPath(backupPath)}`);
|
|
50
47
|
}
|
|
51
48
|
catch (err) {
|
|
52
|
-
logger.error(`Config
|
|
49
|
+
logger.error(`Config backup failed: ${err}`);
|
|
53
50
|
return;
|
|
54
51
|
}
|
|
55
|
-
// 4. Config ?�기
|
|
56
52
|
let config;
|
|
57
53
|
try {
|
|
58
54
|
config = readCodexConfig(configPath);
|
|
59
55
|
}
|
|
60
56
|
catch (err) {
|
|
61
|
-
logger.error(`Config
|
|
57
|
+
logger.error(`Config parse failed: ${err}`);
|
|
62
58
|
return;
|
|
63
59
|
}
|
|
64
|
-
// ?�전 버전 ?�거??provider ???�리
|
|
65
60
|
removeLegacyProviders(config, MANAGED_PROVIDER_KEY);
|
|
66
|
-
// 5. 게이?�웨??endpoint�??�일 provider�??�록
|
|
67
61
|
const gatewayConfig = loadConfig();
|
|
68
62
|
const gatewayUrl = `http://localhost:${gatewayConfig.port}/v1`;
|
|
69
63
|
if (!config.model_providers)
|
|
@@ -75,32 +69,29 @@ export async function runSync(options) {
|
|
|
75
69
|
wire_api: "responses",
|
|
76
70
|
};
|
|
77
71
|
config.model_provider = MANAGED_PROVIDER_KEY;
|
|
78
|
-
logger.success(`Gateway provider ${existed ? "updated" : "registered"}: ${MANAGED_PROVIDER_KEY}
|
|
72
|
+
logger.success(`Gateway provider ${existed ? "updated" : "registered"}: ${MANAGED_PROVIDER_KEY} -> ${gatewayUrl}`);
|
|
79
73
|
logger.info("Run 'rcodex' to launch the gateway and configure providers.");
|
|
80
|
-
// 6. Dry-run 처리
|
|
81
74
|
if (options.dryRun) {
|
|
82
75
|
logger.separator();
|
|
83
|
-
logger.info("[DRY RUN]
|
|
84
|
-
logger.info(` ${existed ? "
|
|
76
|
+
logger.info("[DRY RUN] No changes written.");
|
|
77
|
+
logger.info(` ${existed ? "Update" : "Add"}: provider:${MANAGED_PROVIDER_KEY} -> ${gatewayUrl}`);
|
|
85
78
|
logger.done();
|
|
86
79
|
return;
|
|
87
80
|
}
|
|
88
|
-
// 7. Config ?�??
|
|
89
81
|
try {
|
|
90
82
|
writeCodexConfig(configPath, config);
|
|
91
83
|
logger.success(`Config saved: ${displayPath(configPath)}`);
|
|
92
84
|
}
|
|
93
85
|
catch (err) {
|
|
94
|
-
logger.error(`Config
|
|
86
|
+
logger.error(`Config save failed: ${err}`);
|
|
95
87
|
return;
|
|
96
88
|
}
|
|
97
|
-
// 8. Migrate ?�동 ?�행
|
|
98
89
|
logger.separator();
|
|
99
90
|
if (await isCodexRunning()) {
|
|
100
|
-
logger.warn("Codex
|
|
101
|
-
logger.info("
|
|
91
|
+
logger.warn("Codex is running. Close it before migration can continue.");
|
|
92
|
+
logger.info("Close Codex, then press Enter to migrate threads.");
|
|
102
93
|
await waitUntilCodexClosed();
|
|
103
|
-
logger.success("Codex
|
|
94
|
+
logger.success("Codex closed");
|
|
104
95
|
}
|
|
105
96
|
await runMigrate(false, false);
|
|
106
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,KAAK,UAAU,oBAAoB;IACjC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,GAAkB,EAAE,CAC9B,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YACzB,IAAI,MAAM,cAAc,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"AA6DA,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAgB,mBAAmB,IAAI,aAAa,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/gateway/server.ts"],"names":[],"mappings":"AA6DA,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAg1BnD"}
|
package/dist/gateway/server.js
CHANGED
|
@@ -174,10 +174,19 @@ export function createGatewayServer() {
|
|
|
174
174
|
const body = (rl.rate_limit && typeof rl.rate_limit === "object" ? rl.rate_limit : rl);
|
|
175
175
|
const primary = (body.primary_window ?? body.primary);
|
|
176
176
|
const secondary = (body.secondary_window ?? body.secondary);
|
|
177
|
+
const resetValue = (w) => {
|
|
178
|
+
if (!w)
|
|
179
|
+
return null;
|
|
180
|
+
const absolute = w.reset_at ?? w.resets_at;
|
|
181
|
+
if (absolute != null)
|
|
182
|
+
return absolute;
|
|
183
|
+
const relative = w.reset_after_seconds ?? w.reset_after;
|
|
184
|
+
return typeof relative === "number" ? Date.now() + relative * 1000 : null;
|
|
185
|
+
};
|
|
177
186
|
entry = {
|
|
178
187
|
provider: "openai", label: account.label, id: account.id,
|
|
179
|
-
primary: primary ? { used: Math.min(100, primary.used_percent ?? primary.percent_used ?? 0), resets_at: primary
|
|
180
|
-
secondary: secondary ? { used: Math.min(100, secondary.used_percent ?? secondary.percent_used ?? 0), resets_at: secondary
|
|
188
|
+
primary: primary ? { used: Math.min(100, primary.used_percent ?? primary.percent_used ?? 0), resets_at: resetValue(primary) } : undefined,
|
|
189
|
+
secondary: secondary ? { used: Math.min(100, secondary.used_percent ?? secondary.percent_used ?? 0), resets_at: resetValue(secondary) } : undefined,
|
|
181
190
|
};
|
|
182
191
|
}
|
|
183
192
|
else {
|
|
@@ -302,7 +311,7 @@ export function createGatewayServer() {
|
|
|
302
311
|
if (!provider || !label || !method)
|
|
303
312
|
return reply.code(400).send("provider, label, method required");
|
|
304
313
|
const account = addAccount(provider, label, method, { apiKey, sessionToken });
|
|
305
|
-
glog(`[account]
|
|
314
|
+
glog(`[account] added: ${label} (${provider}, ${method})`);
|
|
306
315
|
return account;
|
|
307
316
|
});
|
|
308
317
|
// ?�?� Remove account ?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�
|
|
@@ -313,7 +322,7 @@ export function createGatewayServer() {
|
|
|
313
322
|
if (!account)
|
|
314
323
|
return reply.code(404).send("Account not found");
|
|
315
324
|
removeAccount(id);
|
|
316
|
-
glog(`[account]
|
|
325
|
+
glog(`[account] removed: ${account.label} (${account.provider})`);
|
|
317
326
|
return { ok: true };
|
|
318
327
|
});
|
|
319
328
|
// ?�?� Account node state (canvas connection) ?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�
|
|
@@ -339,7 +348,7 @@ export function createGatewayServer() {
|
|
|
339
348
|
if (!account)
|
|
340
349
|
return reply.code(404).send("Account not found");
|
|
341
350
|
const slot = addModelSlot(id, model, slotId);
|
|
342
|
-
glog(`[slot]
|
|
351
|
+
glog(`[slot] added: ${account.label} -> ${model}`);
|
|
343
352
|
return slot ?? reply.code(500).send("Failed to create slot");
|
|
344
353
|
});
|
|
345
354
|
// ?�?� Remove model slot ?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�
|
|
@@ -351,7 +360,7 @@ export function createGatewayServer() {
|
|
|
351
360
|
return reply.code(404).send("Account not found");
|
|
352
361
|
const slot = account.activeModels?.find(s => s.slotId === slotId);
|
|
353
362
|
removeModelSlot(id, slotId);
|
|
354
|
-
glog(`[slot]
|
|
363
|
+
glog(`[slot] removed: ${account.label} -> ${slot?.model ?? slotId}`);
|
|
355
364
|
return { ok: true };
|
|
356
365
|
});
|
|
357
366
|
// ?�?� Reorder all slots (cross-account) ?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�
|