pleumrouter 0.5.34 → 0.5.35
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/package.json +1 -1
- package/src/launch.mjs +3 -0
- package/src/login.mjs +18 -1
- package/src/recipes.mjs +0 -1
- package/src/settings.mjs +2 -2
- package/src/wire.mjs +1 -1
package/package.json
CHANGED
package/src/launch.mjs
CHANGED
|
@@ -117,6 +117,9 @@ export async function launch(tool, model, passthrough, { exit = true } = {}) {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
const env = { ...process.env, ...r.env(key, model) };
|
|
120
|
+
if (resolved === "claude") {
|
|
121
|
+
delete env.ANTHROPIC_API_KEY;
|
|
122
|
+
}
|
|
120
123
|
|
|
121
124
|
// Codex는 격리 CODEX_HOME에 config.toml을 써서 사용자 ~/.codex를 보존한다.
|
|
122
125
|
if (r.type === "codex-home") {
|
package/src/login.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createServer } from "node:http";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { spawn } from "node:child_process";
|
|
4
|
-
import { ROOT, SITE_ROOT, V1, readConfig, writeConfig, mergeLoginConfig, clearCredentials } from "./config.mjs";
|
|
4
|
+
import { ROOT, SITE_ROOT, V1, readConfig, writeConfig, mergeLoginConfig, clearCredentials, setActiveContext } from "./config.mjs";
|
|
5
5
|
import { t } from "./i18n.mjs";
|
|
6
6
|
import { sanitizeTerminalText } from "./ansi.mjs";
|
|
7
7
|
|
|
@@ -47,6 +47,21 @@ function saveTokens({ access_token, refresh_token, expires_in }) {
|
|
|
47
47
|
);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
export async function syncCliContext(accessToken) {
|
|
51
|
+
if (!accessToken) return;
|
|
52
|
+
try {
|
|
53
|
+
const res = await fetch(`${V1}/auth/cli-context`, {
|
|
54
|
+
headers: { Authorization: `Bearer ${accessToken}` },
|
|
55
|
+
});
|
|
56
|
+
if (res.ok) {
|
|
57
|
+
const data = await res.json();
|
|
58
|
+
if (data?.active_context) {
|
|
59
|
+
setActiveContext(data.active_context);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
} catch {}
|
|
63
|
+
}
|
|
64
|
+
|
|
50
65
|
// 브라우저 핸드오프: 로컬 콜백 서버를 열고 대시보드 /cli-auth로 보낸다.
|
|
51
66
|
// 프론트가 로그인 확인 후 JWT를 발급해 127.0.0.1:PORT/cb 로 POST 한다.
|
|
52
67
|
export async function login() {
|
|
@@ -110,6 +125,7 @@ export async function login() {
|
|
|
110
125
|
});
|
|
111
126
|
|
|
112
127
|
saveTokens(tokens);
|
|
128
|
+
await syncCliContext(tokens.access_token);
|
|
113
129
|
console.log(`✓ ${t("Logged in. Saved the session to ~/.pleum/config.json.")}`);
|
|
114
130
|
}
|
|
115
131
|
|
|
@@ -157,6 +173,7 @@ export async function loginDevice() {
|
|
|
157
173
|
process.exit(1);
|
|
158
174
|
}
|
|
159
175
|
saveTokens(data);
|
|
176
|
+
await syncCliContext(data.access_token);
|
|
160
177
|
console.log(`✓ ${t("Logged in. Saved the session to ~/.pleum/config.json.")}`);
|
|
161
178
|
return;
|
|
162
179
|
}
|
package/src/recipes.mjs
CHANGED
|
@@ -50,7 +50,6 @@ export const RECIPES = {
|
|
|
50
50
|
const toAnthropic = (x) => (x.startsWith("anthropic/") ? x : `anthropic/${x}`);
|
|
51
51
|
return {
|
|
52
52
|
ANTHROPIC_BASE_URL: ROOT,
|
|
53
|
-
ANTHROPIC_API_KEY: key,
|
|
54
53
|
ANTHROPIC_AUTH_TOKEN: key,
|
|
55
54
|
// CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY는 의도적으로 설정하지 않는다:
|
|
56
55
|
// 활성화 시 Claude Code가 GET /v1/models를 호출해 카탈로그 200+개 모델을
|
package/src/settings.mjs
CHANGED
|
@@ -30,8 +30,8 @@ export function buildSettingsItems({
|
|
|
30
30
|
autoUpdate = true,
|
|
31
31
|
latestVersion = null,
|
|
32
32
|
}) {
|
|
33
|
-
const contextDesc = activeContext?.type === "team"
|
|
34
|
-
? `${t("Team")}: ${activeContext.org_name}`
|
|
33
|
+
const contextDesc = activeContext?.type === "team"
|
|
34
|
+
? `${t("Team")}: ${activeContext.org_name || activeContext.org_id}`
|
|
35
35
|
: t("Personal Credit");
|
|
36
36
|
const updateDesc = latestVersion && isNewerVersion(version, latestVersion)
|
|
37
37
|
? `${t("Current version: {version}", { version })} → v${latestVersion} (${t("Update available")})`
|
package/src/wire.mjs
CHANGED
|
@@ -87,10 +87,10 @@ export function wireClaudeSettings(existingJson, { root, key }) {
|
|
|
87
87
|
...(obj.env && typeof obj.env === "object" && !Array.isArray(obj.env) ? obj.env : {}),
|
|
88
88
|
ANTHROPIC_BASE_URL: root,
|
|
89
89
|
ANTHROPIC_AUTH_TOKEN: key,
|
|
90
|
-
ANTHROPIC_API_KEY: key,
|
|
91
90
|
API_TIMEOUT_MS: "3000000",
|
|
92
91
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1",
|
|
93
92
|
};
|
|
93
|
+
delete obj.env.ANTHROPIC_API_KEY;
|
|
94
94
|
return `${JSON.stringify(obj, null, 2)}\n`;
|
|
95
95
|
}
|
|
96
96
|
|