@rynfar/meridian 1.43.0 → 1.44.0

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/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  startProxyServer
4
- } from "./cli-1x5gqsqc.js";
4
+ } from "./cli-fc6mt326.js";
5
5
  import"./cli-cx463q74.js";
6
6
  import"./cli-sry5aqdj.js";
7
7
  import"./cli-4rqtm83g.js";
@@ -9,8 +9,8 @@ import {
9
9
  resolveClaudeExecutableAsync
10
10
  } from "./cli-yeazzt32.js";
11
11
  import"./cli-340h1chz.js";
12
- import"./cli-rtab0qa6.js";
13
- import"./cli-7k1fcprd.js";
12
+ import"./cli-je60fevk.js";
13
+ import"./cli-1kbcm3yn.js";
14
14
  import {
15
15
  __require
16
16
  } from "./cli-p9swy5t3.js";
@@ -53,16 +53,17 @@ See https://github.com/rynfar/meridian for full documentation.`);
53
53
  process.exit(0);
54
54
  }
55
55
  if (args[0] === "profile") {
56
- const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-0h4nc2h8.js");
56
+ const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-xcmmr5w4.js");
57
57
  const subcommand = args[1];
58
58
  const profileId = args[2];
59
+ const headless = args.includes("--headless");
59
60
  if (subcommand === "add" && profileId) {
60
61
  const oauthFlagIdx = args.indexOf("--oauth-token", 3);
61
62
  if (oauthFlagIdx >= 0) {
62
63
  const tokenArg = args[oauthFlagIdx + 1];
63
- await profileAddOauthToken(profileId, tokenArg);
64
+ await profileAddOauthToken(profileId, tokenArg?.startsWith("--") ? undefined : tokenArg);
64
65
  } else {
65
- profileAdd(profileId);
66
+ await profileAdd(profileId, { headless });
66
67
  }
67
68
  } else if (subcommand === "list" || subcommand === "ls")
68
69
  profileList();
@@ -71,15 +72,27 @@ if (args[0] === "profile") {
71
72
  else if (subcommand === "switch" && profileId)
72
73
  await profileSwitch(profileId);
73
74
  else if (subcommand === "login" && profileId)
74
- profileLogin(profileId);
75
+ await profileLogin(profileId, { headless });
75
76
  else
76
77
  profileHelp();
77
78
  process.exit(0);
78
79
  }
79
80
  if (args[0] === "setup") {
80
- const { findPluginPath, runSetup } = await import("./setup-v5pnqe04.js");
81
+ const { findPluginPath, runSetup, UnparseableConfigError } = await import("./setup-6c11e8d6.js");
81
82
  const pluginPath = findPluginPath(import.meta.url);
82
- const result = runSetup(pluginPath);
83
+ let result;
84
+ try {
85
+ result = runSetup(pluginPath);
86
+ } catch (err) {
87
+ if (err instanceof UnparseableConfigError) {
88
+ console.error(`\x1B[31m✗ Could not parse ${err.configPath}\x1B[0m`);
89
+ console.error(" Your config was left untouched. Fix the syntax error, then re-run");
90
+ console.error(` 'meridian setup' — or add this plugin manually:`);
91
+ console.error(` "plugin": ["${pluginPath}"]`);
92
+ process.exit(1);
93
+ }
94
+ throw err;
95
+ }
83
96
  if (result.alreadyConfigured) {
84
97
  console.log(`\x1B[32m✓ Meridian plugin already configured\x1B[0m`);
85
98
  console.log(` ${result.configPath}`);
@@ -98,7 +111,7 @@ Restart OpenCode for the plugin to take effect.`);
98
111
  process.exit(0);
99
112
  }
100
113
  if (args[0] === "refresh-token") {
101
- const { refreshOAuthToken } = await import("./tokenRefresh-swetnf89.js");
114
+ const { refreshOAuthToken } = await import("./tokenRefresh-pvc2q8ea.js");
102
115
  const success = await refreshOAuthToken();
103
116
  if (success) {
104
117
  console.log("Token refreshed successfully");
@@ -110,12 +123,6 @@ if (args[0] === "refresh-token") {
110
123
  }
111
124
  var exec = promisify(execCallback);
112
125
  var execFile = promisify(execFileCallback);
113
- process.on("uncaughtException", (err) => {
114
- console.error(`[PROXY] Uncaught exception (recovered): ${err.message}`);
115
- });
116
- process.on("unhandledRejection", (reason) => {
117
- console.error(`[PROXY] Unhandled rejection (recovered): ${reason instanceof Error ? reason.message : reason}`);
118
- });
119
126
  var port = parseInt(process.env.MERIDIAN_PORT ?? process.env.CLAUDE_PROXY_PORT ?? "3456", 10);
120
127
  var host = process.env.MERIDIAN_HOST ?? process.env.CLAUDE_PROXY_HOST ?? "127.0.0.1";
121
128
  var idleTimeoutSeconds = parseInt(process.env.MERIDIAN_IDLE_TIMEOUT_SECONDS ?? process.env.CLAUDE_PROXY_IDLE_TIMEOUT_SECONDS ?? "120", 10);
@@ -135,7 +142,7 @@ async function runCli(start = startProxyServer, runAuthCheck = async () => {
135
142
  return execFile(claudePath, ["auth", "status"], { timeout: 5000 });
136
143
  }) {
137
144
  try {
138
- const { findOpencodeConfigPath, checkPluginConfigured, findPluginPath } = await import("./setup-v5pnqe04.js");
145
+ const { findOpencodeConfigPath, checkPluginConfigured, findPluginPath } = await import("./setup-6c11e8d6.js");
139
146
  const configPath = findOpencodeConfigPath();
140
147
  const { existsSync } = await import("fs");
141
148
  if (existsSync(configPath) && !checkPluginConfigured(configPath)) {
@@ -163,7 +170,7 @@ async function runCli(start = startProxyServer, runAuthCheck = async () => {
163
170
  const { enableDiskProfileDiscovery } = await import("./profiles-rdd84b45.js");
164
171
  enableDiskProfileDiscovery();
165
172
  }
166
- const proxy = await start({ port, host, idleTimeoutSeconds, profiles, defaultProfile, version });
173
+ const proxy = await start({ port, host, idleTimeoutSeconds, profiles, defaultProfile, version, installProcessErrorHandlers: true });
167
174
  proxy.server.on("error", (error) => {
168
175
  if (error.code === "EADDRINUSE") {
169
176
  process.exit(1);
@@ -4,21 +4,79 @@ import {
4
4
  import {
5
5
  setSetting
6
6
  } from "./cli-340h1chz.js";
7
+ import {
8
+ createPlatformCredentialStore
9
+ } from "./cli-1kbcm3yn.js";
7
10
  import"./cli-p9swy5t3.js";
8
11
 
9
12
  // src/proxy/profileCli.ts
10
- import { mkdirSync, existsSync, rmSync, readFileSync, writeFileSync } from "node:fs";
11
- import { join } from "node:path";
12
13
  import { execFileSync, spawnSync } from "node:child_process";
14
+ import { createHash, randomBytes } from "node:crypto";
15
+ import { mkdirSync, readFileSync, rmSync, writeFileSync, existsSync } from "node:fs";
13
16
  import { homedir } from "node:os";
17
+ import { join } from "node:path";
14
18
  var PROFILES_DIR = join(homedir(), ".config", "meridian", "profiles");
15
19
  var CONFIG_FILE = join(homedir(), ".config", "meridian", "profiles.json");
20
+ var OAUTH_AUTHORIZE_URL = "https://claude.com/cai/oauth/authorize";
21
+ var OAUTH_TOKEN_URL = "https://platform.claude.com/v1/oauth/token";
22
+ var OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
23
+ var OAUTH_REDIRECT_URI = "https://platform.claude.com/oauth/code/callback";
24
+ var OAUTH_SCOPES = [
25
+ "org:create_api_key",
26
+ "user:profile",
27
+ "user:inference",
28
+ "user:sessions:claude_code",
29
+ "user:mcp_servers",
30
+ "user:file_upload"
31
+ ];
16
32
  function ensureProfilesDir() {
17
33
  mkdirSync(PROFILES_DIR, { recursive: true });
18
34
  }
19
35
  function getProfileDir(id) {
20
36
  return join(PROFILES_DIR, id);
21
37
  }
38
+ function buildAuthLoginEnv(configDir, _options = {}, baseEnv = process.env) {
39
+ const env = { ...baseEnv };
40
+ if (configDir)
41
+ env.CLAUDE_CONFIG_DIR = configDir;
42
+ return env;
43
+ }
44
+ function base64Url(bytes) {
45
+ return bytes.toString("base64url");
46
+ }
47
+ function createManualOAuthSession() {
48
+ const codeVerifier = base64Url(randomBytes(32));
49
+ const state = base64Url(randomBytes(32));
50
+ const codeChallenge = createHash("sha256").update(codeVerifier).digest("base64url");
51
+ const url = new URL(OAUTH_AUTHORIZE_URL);
52
+ url.searchParams.set("code", "true");
53
+ url.searchParams.set("client_id", OAUTH_CLIENT_ID);
54
+ url.searchParams.set("response_type", "code");
55
+ url.searchParams.set("redirect_uri", OAUTH_REDIRECT_URI);
56
+ url.searchParams.set("scope", OAUTH_SCOPES.join(" "));
57
+ url.searchParams.set("code_challenge", codeChallenge);
58
+ url.searchParams.set("code_challenge_method", "S256");
59
+ url.searchParams.set("state", state);
60
+ return { authorizeUrl: url.toString(), codeVerifier, state };
61
+ }
62
+ function parseAuthorizationCodeInput(input) {
63
+ const trimmed = input.trim();
64
+ if (!trimmed)
65
+ return null;
66
+ try {
67
+ const url = new URL(trimmed);
68
+ const code2 = url.searchParams.get("code") ?? new URLSearchParams(url.hash.replace(/^#/, "")).get("code");
69
+ const state2 = url.searchParams.get("state") ?? new URLSearchParams(url.hash.replace(/^#/, "")).get("state") ?? undefined;
70
+ return code2 ? { code: code2, state: state2 } : null;
71
+ } catch {}
72
+ const [codePart, hashState] = trimmed.split("#", 2);
73
+ if (!codePart)
74
+ return null;
75
+ const ampersandParams = codePart.includes("&") ? new URLSearchParams(codePart.slice(codePart.indexOf("&") + 1)) : null;
76
+ const code = codePart.split("&", 1)[0]?.trim();
77
+ const state = ampersandParams?.get("state") ?? hashState?.trim() ?? undefined;
78
+ return code ? { code, state } : null;
79
+ }
22
80
  function loadProfileConfig() {
23
81
  if (!existsSync(CONFIG_FILE))
24
82
  return [];
@@ -31,7 +89,7 @@ function loadProfileConfig() {
31
89
  }
32
90
  function saveProfileConfig(profiles) {
33
91
  ensureProfilesDir();
34
- writeFileSync(CONFIG_FILE, JSON.stringify(profiles, null, 2) + `
92
+ writeFileSync(CONFIG_FILE, `${JSON.stringify(profiles, null, 2)}
35
93
  `, { mode: 384 });
36
94
  }
37
95
  function getAuthStatus(configDir) {
@@ -52,7 +110,72 @@ function getAuthStatus(configDir) {
52
110
  return { loggedIn: false };
53
111
  }
54
112
  }
55
- function profileAdd(id) {
113
+ async function completeManualOAuthLogin(configDir) {
114
+ const session = createManualOAuthSession();
115
+ console.log("\x1B[33m⚠ Headless OAuth login: open this URL in a browser:\x1B[0m");
116
+ console.log();
117
+ console.log(session.authorizeUrl);
118
+ console.log();
119
+ console.log("After sign-in, paste the code shown by Claude below.");
120
+ const input = promptLine("Paste code:");
121
+ const parsed = parseAuthorizationCodeInput(input);
122
+ if (!parsed) {
123
+ console.error("\x1B[31m✗ No authorization code received.\x1B[0m");
124
+ return false;
125
+ }
126
+ if (parsed.state && parsed.state !== session.state) {
127
+ console.error("\x1B[31m✗ OAuth state mismatch. Please retry the login.\x1B[0m");
128
+ return false;
129
+ }
130
+ let response;
131
+ try {
132
+ response = await fetch(OAUTH_TOKEN_URL, {
133
+ method: "POST",
134
+ headers: { "Content-Type": "application/json" },
135
+ body: JSON.stringify({
136
+ grant_type: "authorization_code",
137
+ client_id: OAUTH_CLIENT_ID,
138
+ code: parsed.code,
139
+ redirect_uri: OAUTH_REDIRECT_URI,
140
+ code_verifier: session.codeVerifier,
141
+ state: parsed.state ?? session.state
142
+ }),
143
+ signal: AbortSignal.timeout(30000)
144
+ });
145
+ } catch (err) {
146
+ console.error(`\x1B[31m✗ OAuth token exchange failed: ${err instanceof Error ? err.message : err}\x1B[0m`);
147
+ return false;
148
+ }
149
+ if (!response.ok) {
150
+ const body = await response.text().catch(() => "");
151
+ console.error(`\x1B[31m✗ OAuth token exchange failed (${response.status}).\x1B[0m`);
152
+ if (body)
153
+ console.error(` ${body.slice(0, 300)}`);
154
+ return false;
155
+ }
156
+ let tokenData;
157
+ try {
158
+ tokenData = await response.json();
159
+ } catch (err) {
160
+ console.error(`\x1B[31m✗ OAuth token response was invalid: ${err instanceof Error ? err.message : err}\x1B[0m`);
161
+ return false;
162
+ }
163
+ if (!tokenData.access_token || !tokenData.refresh_token) {
164
+ console.error("\x1B[31m✗ OAuth token response did not include the required tokens.\x1B[0m");
165
+ return false;
166
+ }
167
+ const expiresAt = tokenData.expires_at ?? Date.now() + (tokenData.expires_in ?? 8 * 60 * 60) * 1000;
168
+ const store = createPlatformCredentialStore({ claudeConfigDir: configDir });
169
+ return store.write({
170
+ claudeAiOauth: {
171
+ accessToken: tokenData.access_token,
172
+ refreshToken: tokenData.refresh_token,
173
+ expiresAt,
174
+ scopes: tokenData.scope?.split(" ").filter(Boolean) ?? OAUTH_SCOPES
175
+ }
176
+ });
177
+ }
178
+ async function profileAdd(id, options = {}) {
56
179
  if (!id || /[^a-zA-Z0-9_-]/.test(id)) {
57
180
  console.error("\x1B[31m✗ Invalid profile ID.\x1B[0m Use only letters, numbers, hyphens, underscores.");
58
181
  process.exit(1);
@@ -95,33 +218,43 @@ function profileAdd(id) {
95
218
  printEnvHint(profiles);
96
219
  return;
97
220
  }
98
- console.log("\x1B[33m⚠ Important: Before logging in, make sure you're signed into the");
99
- console.log(` correct Claude account in your browser (the one for "${id}").\x1B[0m`);
100
- console.log();
101
- console.log(" If you're currently signed into a different account:");
102
- console.log(" 1. Go to https://claude.ai and sign out");
103
- console.log(" 2. Sign in with the account you want for this profile");
104
- console.log(" 3. Come back here the login will open your browser");
105
- console.log();
106
- console.log(" Press Ctrl+C to cancel, or wait for the browser to open...");
107
- console.log();
108
- const resolvedAuth = resolveClaudeExecutableSync();
109
- if (!resolvedAuth) {
110
- console.error("\x1B[31m✗ Could not find a Claude executable to run auth login.\x1B[0m");
111
- console.error(" Install via: npm install -g @anthropic-ai/claude-code, or set MERIDIAN_CLAUDE_PATH=/path/to/claude");
112
- process.exit(1);
221
+ if (!options.headless) {
222
+ console.log("\x1B[33m⚠ Important: Before logging in, make sure you're signed into the");
223
+ console.log(` correct Claude account in your browser (the one for "${id}").\x1B[0m`);
224
+ console.log();
225
+ console.log(" If you're currently signed into a different account:");
226
+ console.log(" 1. Go to https://claude.ai and sign out");
227
+ console.log(" 2. Sign in with the account you want for this profile");
228
+ console.log(" 3. Come back here — the login will open your browser");
229
+ console.log();
230
+ console.log(" Press Ctrl+C to cancel, or wait for the browser to open...");
113
231
  }
114
- const result = spawnSync(resolvedAuth.path, ["auth", "login"], {
115
- env: { ...process.env, CLAUDE_CONFIG_DIR: configDir },
116
- stdio: "inherit"
117
- });
118
- if (result.status !== 0) {
119
- console.error("\x1B[31m✗ Login failed.\x1B[0m");
120
- process.exit(1);
232
+ console.log();
233
+ if (options.headless) {
234
+ const success = await completeManualOAuthLogin(configDir);
235
+ if (!success) {
236
+ console.error("\x1B[31m✗ Login failed.\x1B[0m");
237
+ process.exit(1);
238
+ }
239
+ } else {
240
+ const resolvedAuth = resolveClaudeExecutableSync();
241
+ if (!resolvedAuth) {
242
+ console.error("\x1B[31m✗ Could not find a Claude executable to run auth login.\x1B[0m");
243
+ console.error(" Install via: npm install -g @anthropic-ai/claude-code, or set MERIDIAN_CLAUDE_PATH=/path/to/claude");
244
+ process.exit(1);
245
+ }
246
+ const result = spawnSync(resolvedAuth.path, ["auth", "login"], {
247
+ env: buildAuthLoginEnv(configDir, options),
248
+ stdio: "inherit"
249
+ });
250
+ if (result.status !== 0) {
251
+ console.error("\x1B[31m✗ Login failed.\x1B[0m");
252
+ process.exit(1);
253
+ }
121
254
  }
122
255
  const auth = getAuthStatus(configDir);
123
256
  if (!auth.loggedIn) {
124
- console.error("\x1B[31m✗ Login did not complete. Try again: meridian profile add " + id + "\x1B[0m");
257
+ console.error(`\x1B[31m✗ Login did not complete. Try again: meridian profile add ${id}\x1B[0m`);
125
258
  process.exit(1);
126
259
  }
127
260
  console.log();
@@ -180,7 +313,7 @@ function profileList() {
180
313
  }
181
314
  function dirsToRemoveOnProfileRemove(profile, profilesDir) {
182
315
  const dirs = [];
183
- if (profile.claudeConfigDir && profile.claudeConfigDir.startsWith(profilesDir)) {
316
+ if (profile.claudeConfigDir?.startsWith(profilesDir)) {
184
317
  dirs.push(profile.claudeConfigDir);
185
318
  }
186
319
  if (profile.oauthToken || profile.type === "oauth-token") {
@@ -198,6 +331,10 @@ function profileRemove(id) {
198
331
  process.exit(1);
199
332
  }
200
333
  const removed = profiles[idx];
334
+ if (!removed) {
335
+ console.error(`\x1B[31m✗ Profile "${id}" not found.\x1B[0m`);
336
+ process.exit(1);
337
+ }
201
338
  const dirsToRemove = dirsToRemoveOnProfileRemove(removed, PROFILES_DIR);
202
339
  profiles.splice(idx, 1);
203
340
  saveProfileConfig(profiles);
@@ -233,7 +370,7 @@ async function profileSwitch(id) {
233
370
  process.exit(1);
234
371
  }
235
372
  }
236
- function profileLogin(id) {
373
+ async function profileLogin(id, options = {}) {
237
374
  const profiles = loadProfileConfig();
238
375
  const profile = profiles.find((p) => p.id === id);
239
376
  if (!profile) {
@@ -247,21 +384,31 @@ function profileLogin(id) {
247
384
  }
248
385
  console.log(`\x1B[36mRe-authenticating profile: ${id}\x1B[0m`);
249
386
  console.log();
250
- console.log("\x1B[33m⚠ Make sure you're signed into the correct Claude account in your browser.\x1B[0m");
251
- console.log();
252
- const resolvedLogin = resolveClaudeExecutableSync();
253
- if (!resolvedLogin) {
254
- console.error("\x1B[31m✗ Could not find a Claude executable to run auth login.\x1B[0m");
255
- console.error(" Install via: npm install -g @anthropic-ai/claude-code, or set MERIDIAN_CLAUDE_PATH=/path/to/claude");
256
- process.exit(1);
387
+ if (!options.headless) {
388
+ console.log("\x1B[33m⚠ Make sure you're signed into the correct Claude account in your browser.\x1B[0m");
257
389
  }
258
- const result = spawnSync(resolvedLogin.path, ["auth", "login"], {
259
- env: { ...process.env, CLAUDE_CONFIG_DIR: profile.claudeConfigDir },
260
- stdio: "inherit"
261
- });
262
- if (result.status !== 0) {
263
- console.error("\x1B[31m✗ Login failed.\x1B[0m");
264
- process.exit(1);
390
+ console.log();
391
+ if (options.headless) {
392
+ const success = await completeManualOAuthLogin(profile.claudeConfigDir ?? getProfileDir(id));
393
+ if (!success) {
394
+ console.error("\x1B[31m✗ Login failed.\x1B[0m");
395
+ process.exit(1);
396
+ }
397
+ } else {
398
+ const resolvedLogin = resolveClaudeExecutableSync();
399
+ if (!resolvedLogin) {
400
+ console.error("\x1B[31m✗ Could not find a Claude executable to run auth login.\x1B[0m");
401
+ console.error(" Install via: npm install -g @anthropic-ai/claude-code, or set MERIDIAN_CLAUDE_PATH=/path/to/claude");
402
+ process.exit(1);
403
+ }
404
+ const result = spawnSync(resolvedLogin.path, ["auth", "login"], {
405
+ env: buildAuthLoginEnv(profile.claudeConfigDir, options),
406
+ stdio: "inherit"
407
+ });
408
+ if (result.status !== 0) {
409
+ console.error("\x1B[31m✗ Login failed.\x1B[0m");
410
+ process.exit(1);
411
+ }
265
412
  }
266
413
  const auth = getAuthStatus(profile.claudeConfigDir ?? "");
267
414
  if (auth.loggedIn) {
@@ -279,6 +426,16 @@ function promptYesNo(question) {
279
426
  const answer = (result.stdout?.toString().trim() ?? "").toLowerCase();
280
427
  return answer !== "n" && answer !== "no";
281
428
  }
429
+ function promptLine(question) {
430
+ process.stderr.write(`${question} `);
431
+ const result = spawnSync("node", ["-e", [
432
+ `const rl = require("readline").createInterface({ input: process.stdin });`,
433
+ `rl.once("line", (a) => { process.stdout.write(a); rl.close(); });`,
434
+ `rl.once("close", () => process.exit(0));`
435
+ ].join(`
436
+ `)], { stdio: ["inherit", "pipe", "inherit"] });
437
+ return result.stdout?.toString().trim() ?? "";
438
+ }
282
439
  function promptToken(question) {
283
440
  process.stderr.write(`${question}
284
441
  > `);
@@ -322,20 +479,22 @@ function profileHelp() {
322
479
  console.log(`meridian profile — manage Claude account profiles
323
480
 
324
481
  Commands:
325
- meridian profile add <name> Add a profile via browser login
482
+ meridian profile add <name> [--headless] Add a profile via Claude OAuth login
326
483
  meridian profile add <name> --oauth-token [TOKEN] Add a profile from a \`claude setup-token\` value
327
484
  (if TOKEN is omitted, you will be prompted; input is hidden)
328
485
  meridian profile list List profiles and auth status
329
486
  meridian profile remove <name> Remove a profile
330
487
  meridian profile switch <name> Switch the active profile (requires running proxy)
331
- meridian profile login <name> Re-authenticate an existing profile (claude-max only)
488
+ meridian profile login <name> [--headless] Re-authenticate an existing profile (claude-max only)
332
489
 
333
490
  Examples:
334
491
  meridian profile add personal # Add personal account (browser login)
335
492
  meridian profile add work # Add work account
493
+ meridian profile add work --headless # Print OAuth URL, prompt for returned code, store credentials
336
494
  meridian profile add ci --oauth-token # Add headless CI profile (prompted, no echo)
337
495
  meridian profile add ci --oauth-token sk-ant-oat01-...
338
496
  # Add headless CI profile (token from CLI argument)
497
+ meridian profile login work --headless # Re-authenticate via OAuth URL/code prompt
339
498
  meridian profile switch work # Switch to work account
340
499
  meridian profile list # Show all profiles`);
341
500
  }
@@ -347,5 +506,8 @@ export {
347
506
  profileHelp,
348
507
  profileAddOauthToken,
349
508
  profileAdd,
350
- dirsToRemoveOnProfileRemove
509
+ parseAuthorizationCodeInput,
510
+ dirsToRemoveOnProfileRemove,
511
+ createManualOAuthSession,
512
+ buildAuthLoginEnv
351
513
  };
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/detect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AA0C9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAgDtD"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/detect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AA8C9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAgDtD"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * OpenAI-compatible endpoint adapter.
3
+ *
4
+ * `/v1/chat/completions` serves generic OpenAI chat clients (Open WebUI,
5
+ * LibreChat, curl, any OpenAI-compatible tool). These are NOT coding agents:
6
+ * they bring their own system prompt and don't want the ~28KB claude_code
7
+ * preset injected on top of it (which would override their intent with the
8
+ * Claude Code persona — see the #526 investigation).
9
+ *
10
+ * The handler tags the internal hop with `x-meridian-agent: openai` so this
11
+ * adapter is selected deterministically instead of falling through to the
12
+ * default `opencode` adapter (whose preset defaults ON). Behaviour is
13
+ * otherwise identical to `opencode` — same tools, MCP server, passthrough,
14
+ * and transforms — the ONLY difference is the system-prompt preset default,
15
+ * which is set OFF in sdkFeatures.ADAPTER_DEFAULTS. This mirrors the
16
+ * `passthrough` adapter precedent (#190).
17
+ *
18
+ * NOTE: agent-specific. Keep this as a thin re-identification of the OpenCode
19
+ * adapter; do not fork behaviour here.
20
+ */
21
+ import type { AgentAdapter } from "../adapter";
22
+ export declare const openAiAdapter: AgentAdapter;
23
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C,eAAO,MAAM,aAAa,EAAE,YAG3B,CAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Reasoning effort levels and normalization.
3
+ *
4
+ * The Claude Code SDK `--effort` flag accepts a fixed vocabulary. Clients send
5
+ * the effort under several keys (`effort`, `x-opencode-effort`, the standard
6
+ * OpenAI `reasoning_effort`, or an Anthropic-style `output_config.effort`), and
7
+ * not every value they send is valid for Claude — OpenAI notably offers
8
+ * `"minimal"`, which the SDK rejects. normalizeEffort gates the value so an
9
+ * unknown effort falls back to the model default (undefined) rather than
10
+ * erroring the whole request at the SDK boundary.
11
+ *
12
+ * Pure module — no I/O, no imports from server/session.
13
+ */
14
+ export declare const VALID_EFFORTS: readonly ["low", "medium", "high", "xhigh", "max"];
15
+ export type Effort = (typeof VALID_EFFORTS)[number];
16
+ /**
17
+ * Return the value if it is a valid Claude effort level, else undefined.
18
+ * Case-sensitive: the SDK expects lowercase.
19
+ */
20
+ export declare function normalizeEffort(value: unknown): Effort | undefined;
21
+ //# sourceMappingURL=effort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort.d.ts","sourceRoot":"","sources":["../../src/proxy/effort.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,aAAa,oDAAqD,CAAA;AAE/E,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIlE"}
@@ -61,6 +61,12 @@ export interface OpenAiChatRequest {
61
61
  temperature?: number;
62
62
  top_p?: number;
63
63
  tools?: OpenAiChatTool[];
64
+ /** Standard OpenAI reasoning level (low/medium/high/…). */
65
+ reasoning_effort?: string;
66
+ /** Anthropic-style nesting some clients use. */
67
+ output_config?: {
68
+ effort?: string;
69
+ };
64
70
  }
65
71
  export interface AnthropicTextBlock {
66
72
  type: "text";
@@ -93,6 +99,12 @@ export interface AnthropicRequestBody {
93
99
  temperature?: number;
94
100
  top_p?: number;
95
101
  tools?: AnthropicTool[];
102
+ /** Reasoning effort carried from the OpenAI request so the internal
103
+ * /v1/messages hop forwards it to the SDK (value gated by normalizeEffort). */
104
+ reasoning_effort?: string;
105
+ output_config?: {
106
+ effort?: string;
107
+ };
96
108
  }
97
109
  export interface AnthropicUsage {
98
110
  input_tokens?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/proxy/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/proxy/openai.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import type { Options, SettingSource } from "@anthropic-ai/claude-agent-sdk";
8
8
  import { createPassthroughMcpServer } from "./passthroughTools";
9
+ import type { Effort } from "./effort";
9
10
  export interface QueryContext {
10
11
  /** The prompt to send (text or async iterable for multimodal) */
11
12
  prompt: string | AsyncIterable<any>;
@@ -56,8 +57,8 @@ export interface QueryContext {
56
57
  allowedMcpTools: readonly string[];
57
58
  /** Callback to receive stderr lines from the Claude subprocess */
58
59
  onStderr?: (line: string) => void;
59
- /** Effort level — controls thinking depth (low/medium/high/max) */
60
- effort?: 'low' | 'medium' | 'high' | 'max';
60
+ /** Effort level — controls thinking depth (low/medium/high/xhigh/max) */
61
+ effort?: Effort;
61
62
  /** Thinking configuration — adaptive, enabled with budget, or disabled */
62
63
  thinking?: {
63
64
  type: 'adaptive';
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/proxy/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/proxy/query.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sdkFeatures.d.ts","sourceRoot":"","sources":["../../src/proxy/sdkFeatures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,gBAAgB,EAAE,OAAO,CAAA;IACzB,kFAAkF;IAClF,kBAAkB,EAAE,OAAO,CAAA;IAC3B,4DAA4D;IAC5D,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;IACpC,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAA;IACf,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAA;IACjB,0DAA0D;IAC1D,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;IAC7C,4CAA4C;IAC5C,mBAAmB,EAAE,OAAO,CAAA;IAC5B,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAA;IACrB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAA;IACjB,uEAAuE;IACvE,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;AA6EpE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAU1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAOtE;AAKD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAgC5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAInG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAI9D"}
1
+ {"version":3,"file":"sdkFeatures.d.ts","sourceRoot":"","sources":["../../src/proxy/sdkFeatures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,gBAAgB,EAAE,OAAO,CAAA;IACzB,kFAAkF;IAClF,kBAAkB,EAAE,OAAO,CAAA;IAC3B,4DAA4D;IAC5D,QAAQ,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;IACpC,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAA;IACf,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAA;IACjB,0DAA0D;IAC1D,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;IAC7C,4CAA4C;IAC5C,mBAAmB,EAAE,OAAO,CAAA;IAC5B,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAA;IACrB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAA;IACjB,uEAAuE;IACvE,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;AAqFpE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAU1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAOtE;AAKD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAgC5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAInG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAI9D"}
@@ -8,5 +8,6 @@ export { computeLineageHash, hashMessage, computeMessageHashes };
8
8
  export { clearSessionCache, getMaxSessionsLimit };
9
9
  export type { LineageResult };
10
10
  export declare function createProxyServer(config?: Partial<ProxyConfig>): ProxyServer;
11
+ export declare function installProxyProcessErrorHandlers(): void;
11
12
  export declare function startProxyServer(config?: Partial<ProxyConfig>): Promise<ProxyInstance>;
12
13
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;AAGvD,YAAY,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAA;AAKpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAgCnG,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EAEpB,KAAK,aAAa,EAGnB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAA+B,iBAAiB,EAAE,mBAAmB,EAAsC,MAAM,iBAAiB,CAAA;AAGzI,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,CAAA;AA+N7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CA6nFhF;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmFhG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;AAGvD,YAAY,EACV,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAA;AAKpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAiCnG,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EAEpB,KAAK,aAAa,EAGnB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAA+B,iBAAiB,EAAE,mBAAmB,EAAsC,MAAM,iBAAiB,CAAA;AAGzI,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,CAAA;AA2P7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CA+pFhF;AAWD,wBAAgB,gCAAgC,IAAI,IAAI,CAavD;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmGhG"}