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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pleumrouter",
3
- "version": "0.5.34",
3
+ "version": "0.5.35",
4
4
  "description": "Official PleumRouter terminal CLI — launch any coding agent against PleumRouter.",
5
5
  "type": "module",
6
6
  "bin": {
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" && activeContext.org_name
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