@rynfar/meridian 1.42.0 → 1.43.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-kvwnarfk.js → cli-1x5gqsqc.js} +177 -302
- package/dist/cli-yeazzt32.js +279 -0
- package/dist/cli.js +12 -5
- package/dist/{profileCli-wpb4qbjn.js → profileCli-0h4nc2h8.js} +24 -4
- package/dist/proxy/models.d.ts +20 -1
- package/dist/proxy/models.d.ts.map +1 -1
- package/dist/proxy/openai.d.ts.map +1 -1
- package/dist/proxy/query.d.ts +2 -0
- package/dist/proxy/query.d.ts.map +1 -1
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/package.json +1 -1
|
@@ -20,6 +20,18 @@ import {
|
|
|
20
20
|
profileBarJs,
|
|
21
21
|
themeCss
|
|
22
22
|
} from "./cli-4rqtm83g.js";
|
|
23
|
+
import {
|
|
24
|
+
getAuthCacheInfo,
|
|
25
|
+
getClaudeAuthStatusAsync,
|
|
26
|
+
getResolvedClaudeExecutableInfo,
|
|
27
|
+
hasExtendedContext,
|
|
28
|
+
isClosedControllerError,
|
|
29
|
+
mapModelToClaudeModel,
|
|
30
|
+
recordExtendedContextUnavailable,
|
|
31
|
+
resolveClaudeExecutableAsync,
|
|
32
|
+
resolveSdkModelDefaults,
|
|
33
|
+
stripExtendedContext
|
|
34
|
+
} from "./cli-yeazzt32.js";
|
|
23
35
|
import {
|
|
24
36
|
checkPluginConfigured
|
|
25
37
|
} from "./cli-rtab0qa6.js";
|
|
@@ -1181,14 +1193,14 @@ __export(exports_sdkFeatures, {
|
|
|
1181
1193
|
getFeaturesForAdapter: () => getFeaturesForAdapter,
|
|
1182
1194
|
getAllFeatureConfigs: () => getAllFeatureConfigs
|
|
1183
1195
|
});
|
|
1184
|
-
import { existsSync as
|
|
1185
|
-
import { join as
|
|
1196
|
+
import { existsSync as existsSync5, mkdirSync as mkdirSync2, readFileSync as readFileSync4, writeFileSync as writeFileSync2, renameSync as renameSync2 } from "node:fs";
|
|
1197
|
+
import { join as join4 } from "node:path";
|
|
1186
1198
|
import { homedir as homedir3 } from "node:os";
|
|
1187
1199
|
function getConfigPath() {
|
|
1188
|
-
const dir =
|
|
1189
|
-
if (!
|
|
1200
|
+
const dir = join4(homedir3(), ".config", "meridian");
|
|
1201
|
+
if (!existsSync5(dir))
|
|
1190
1202
|
mkdirSync2(dir, { recursive: true });
|
|
1191
|
-
return
|
|
1203
|
+
return join4(dir, "sdk-features.json");
|
|
1192
1204
|
}
|
|
1193
1205
|
function readConfig() {
|
|
1194
1206
|
const now = Date.now();
|
|
@@ -1196,7 +1208,7 @@ function readConfig() {
|
|
|
1196
1208
|
return cachedConfig;
|
|
1197
1209
|
const path3 = getConfigPath();
|
|
1198
1210
|
try {
|
|
1199
|
-
if (
|
|
1211
|
+
if (existsSync5(path3)) {
|
|
1200
1212
|
cachedConfig = JSON.parse(readFileSync4(path3, "utf-8"));
|
|
1201
1213
|
} else {
|
|
1202
1214
|
cachedConfig = {};
|
|
@@ -3711,7 +3723,7 @@ var serve = (options, listeningListener) => {
|
|
|
3711
3723
|
|
|
3712
3724
|
// src/proxy/server.ts
|
|
3713
3725
|
import { homedir as homedir4 } from "node:os";
|
|
3714
|
-
import { join as
|
|
3726
|
+
import { join as join5 } from "node:path";
|
|
3715
3727
|
import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
3716
3728
|
|
|
3717
3729
|
// src/proxy/rateLimitStore.ts
|
|
@@ -3967,8 +3979,8 @@ function createRequestContext(params) {
|
|
|
3967
3979
|
};
|
|
3968
3980
|
}
|
|
3969
3981
|
// src/proxy/server.ts
|
|
3970
|
-
import { exec as
|
|
3971
|
-
import { promisify as
|
|
3982
|
+
import { exec as execCallback } from "child_process";
|
|
3983
|
+
import { promisify as promisify2 } from "util";
|
|
3972
3984
|
import { randomUUID } from "crypto";
|
|
3973
3985
|
|
|
3974
3986
|
// src/proxy/passthroughTools.ts
|
|
@@ -9181,7 +9193,7 @@ function isRateLimitError(errMsg) {
|
|
|
9181
9193
|
}
|
|
9182
9194
|
function isExtraUsageRequiredError(errMsg) {
|
|
9183
9195
|
const lower = errMsg.toLowerCase();
|
|
9184
|
-
return lower.includes("extra usage") && lower.includes("1m");
|
|
9196
|
+
return lower.includes("extra usage") && lower.includes("1m") || lower.includes("out of extra usage");
|
|
9185
9197
|
}
|
|
9186
9198
|
var STDERR_TAIL_MAX = 500;
|
|
9187
9199
|
var RAW_TAIL_MAX = 300;
|
|
@@ -9260,270 +9272,6 @@ function formatSdkTermination(t, ctx) {
|
|
|
9260
9272
|
return `sdk_termination ${parts.join(" ")}`;
|
|
9261
9273
|
}
|
|
9262
9274
|
|
|
9263
|
-
// src/proxy/models.ts
|
|
9264
|
-
import { exec as execCallback } from "child_process";
|
|
9265
|
-
import { existsSync as existsSync3, statSync } from "fs";
|
|
9266
|
-
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
9267
|
-
import { join as join2, dirname as dirname2 } from "path";
|
|
9268
|
-
import { promisify } from "util";
|
|
9269
|
-
var exec = promisify(execCallback);
|
|
9270
|
-
var STUB_SIZE_THRESHOLD = 4096;
|
|
9271
|
-
var CANONICAL_OPUS_MODEL = "claude-opus-4-7";
|
|
9272
|
-
var CANONICAL_SONNET_MODEL = "claude-sonnet-4-6";
|
|
9273
|
-
var CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
9274
|
-
function resolveSdkModelDefaults(env2 = process.env) {
|
|
9275
|
-
return {
|
|
9276
|
-
ANTHROPIC_DEFAULT_OPUS_MODEL: env2.MERIDIAN_DEFAULT_OPUS_MODEL ?? CANONICAL_OPUS_MODEL,
|
|
9277
|
-
ANTHROPIC_DEFAULT_SONNET_MODEL: env2.MERIDIAN_DEFAULT_SONNET_MODEL ?? CANONICAL_SONNET_MODEL,
|
|
9278
|
-
ANTHROPIC_DEFAULT_HAIKU_MODEL: env2.MERIDIAN_DEFAULT_HAIKU_MODEL ?? CANONICAL_HAIKU_MODEL
|
|
9279
|
-
};
|
|
9280
|
-
}
|
|
9281
|
-
var AUTH_STATUS_CACHE_TTL_MS = 60000;
|
|
9282
|
-
var AUTH_STATUS_FAILURE_TTL_MS = 5000;
|
|
9283
|
-
var cachedAuthStatus = null;
|
|
9284
|
-
var lastKnownGoodAuthStatus = null;
|
|
9285
|
-
var cachedAuthStatusAt = 0;
|
|
9286
|
-
var cachedAuthStatusIsFailure = false;
|
|
9287
|
-
var cachedAuthStatusPromise = null;
|
|
9288
|
-
function supports1mContext(model) {
|
|
9289
|
-
if (model.includes("4-5") || model.includes("4.5"))
|
|
9290
|
-
return false;
|
|
9291
|
-
return true;
|
|
9292
|
-
}
|
|
9293
|
-
function mapModelToClaudeModel(model, subscriptionType, agentMode) {
|
|
9294
|
-
if (model.includes("haiku"))
|
|
9295
|
-
return "haiku";
|
|
9296
|
-
const use1m = supports1mContext(model);
|
|
9297
|
-
const isSubagent = agentMode === "subagent";
|
|
9298
|
-
if (model.includes("opus")) {
|
|
9299
|
-
if (use1m && !isSubagent && !isExtendedContextKnownUnavailable())
|
|
9300
|
-
return "opus[1m]";
|
|
9301
|
-
return "opus";
|
|
9302
|
-
}
|
|
9303
|
-
const sonnetOverride = process.env.MERIDIAN_SONNET_MODEL ?? process.env.CLAUDE_PROXY_SONNET_MODEL;
|
|
9304
|
-
if (sonnetOverride === "sonnet[1m]") {
|
|
9305
|
-
if (!use1m || isSubagent || isExtendedContextKnownUnavailable())
|
|
9306
|
-
return "sonnet";
|
|
9307
|
-
return "sonnet[1m]";
|
|
9308
|
-
}
|
|
9309
|
-
return "sonnet";
|
|
9310
|
-
}
|
|
9311
|
-
var EXTRA_USAGE_RETRY_MS = 60 * 60 * 1000;
|
|
9312
|
-
var extraUsageUnavailableAt = 0;
|
|
9313
|
-
function recordExtendedContextUnavailable() {
|
|
9314
|
-
extraUsageUnavailableAt = Date.now();
|
|
9315
|
-
}
|
|
9316
|
-
function isExtendedContextKnownUnavailable() {
|
|
9317
|
-
return extraUsageUnavailableAt > 0 && Date.now() - extraUsageUnavailableAt < EXTRA_USAGE_RETRY_MS;
|
|
9318
|
-
}
|
|
9319
|
-
function stripExtendedContext(model) {
|
|
9320
|
-
if (model === "opus[1m]")
|
|
9321
|
-
return "opus";
|
|
9322
|
-
if (model === "sonnet[1m]")
|
|
9323
|
-
return "sonnet";
|
|
9324
|
-
return model;
|
|
9325
|
-
}
|
|
9326
|
-
function hasExtendedContext(model) {
|
|
9327
|
-
return model.endsWith("[1m]");
|
|
9328
|
-
}
|
|
9329
|
-
var profileAuthCaches = new Map;
|
|
9330
|
-
function getAuthCacheInfo(profileId) {
|
|
9331
|
-
if (!profileId) {
|
|
9332
|
-
return { lastCheckedAt: cachedAuthStatusAt, lastSuccessAt: cachedAuthStatusIsFailure ? 0 : cachedAuthStatusAt, isFailure: cachedAuthStatusIsFailure };
|
|
9333
|
-
}
|
|
9334
|
-
const cache = profileAuthCaches.get(profileId);
|
|
9335
|
-
if (!cache)
|
|
9336
|
-
return { lastCheckedAt: 0, lastSuccessAt: 0, isFailure: false };
|
|
9337
|
-
return { lastCheckedAt: cache.at, lastSuccessAt: cache.lastSuccessAt, isFailure: cache.isFailure };
|
|
9338
|
-
}
|
|
9339
|
-
function getAuthCache(key) {
|
|
9340
|
-
let cache = profileAuthCaches.get(key);
|
|
9341
|
-
if (!cache) {
|
|
9342
|
-
cache = { status: null, lastKnownGood: null, at: 0, isFailure: false, promise: null, lastSuccessAt: 0 };
|
|
9343
|
-
profileAuthCaches.set(key, cache);
|
|
9344
|
-
}
|
|
9345
|
-
return cache;
|
|
9346
|
-
}
|
|
9347
|
-
async function getClaudeAuthStatusAsync(profileId, envOverrides) {
|
|
9348
|
-
const isDefault = !profileId;
|
|
9349
|
-
const cache = isDefault ? null : getAuthCache(profileId);
|
|
9350
|
-
const c_status = cache ? cache.status : cachedAuthStatus;
|
|
9351
|
-
const c_lastKnownGood = cache ? cache.lastKnownGood : lastKnownGoodAuthStatus;
|
|
9352
|
-
const c_at = cache ? cache.at : cachedAuthStatusAt;
|
|
9353
|
-
const c_isFailure = cache ? cache.isFailure : cachedAuthStatusIsFailure;
|
|
9354
|
-
let c_promise = cache ? cache.promise : cachedAuthStatusPromise;
|
|
9355
|
-
const ttl = c_isFailure ? AUTH_STATUS_FAILURE_TTL_MS : AUTH_STATUS_CACHE_TTL_MS;
|
|
9356
|
-
if (c_at > 0 && Date.now() - c_at < ttl) {
|
|
9357
|
-
return c_status ?? c_lastKnownGood;
|
|
9358
|
-
}
|
|
9359
|
-
if (c_promise)
|
|
9360
|
-
return c_promise;
|
|
9361
|
-
c_promise = (async () => {
|
|
9362
|
-
try {
|
|
9363
|
-
const { stdout } = await exec("claude auth status", {
|
|
9364
|
-
timeout: 5000,
|
|
9365
|
-
...envOverrides ? { env: { ...process.env, ...envOverrides } } : {}
|
|
9366
|
-
});
|
|
9367
|
-
const parsed = JSON.parse(stdout);
|
|
9368
|
-
if (cache) {
|
|
9369
|
-
cache.status = parsed;
|
|
9370
|
-
cache.lastKnownGood = parsed;
|
|
9371
|
-
cache.at = Date.now();
|
|
9372
|
-
cache.isFailure = false;
|
|
9373
|
-
cache.lastSuccessAt = Date.now();
|
|
9374
|
-
} else {
|
|
9375
|
-
cachedAuthStatus = parsed;
|
|
9376
|
-
lastKnownGoodAuthStatus = parsed;
|
|
9377
|
-
cachedAuthStatusAt = Date.now();
|
|
9378
|
-
cachedAuthStatusIsFailure = false;
|
|
9379
|
-
}
|
|
9380
|
-
return parsed;
|
|
9381
|
-
} catch {
|
|
9382
|
-
if (cache) {
|
|
9383
|
-
cache.isFailure = true;
|
|
9384
|
-
cache.at = Date.now();
|
|
9385
|
-
cache.status = null;
|
|
9386
|
-
return cache.lastKnownGood;
|
|
9387
|
-
} else {
|
|
9388
|
-
cachedAuthStatusIsFailure = true;
|
|
9389
|
-
cachedAuthStatusAt = Date.now();
|
|
9390
|
-
cachedAuthStatus = null;
|
|
9391
|
-
return lastKnownGoodAuthStatus;
|
|
9392
|
-
}
|
|
9393
|
-
}
|
|
9394
|
-
})();
|
|
9395
|
-
if (cache)
|
|
9396
|
-
cache.promise = c_promise;
|
|
9397
|
-
else
|
|
9398
|
-
cachedAuthStatusPromise = c_promise;
|
|
9399
|
-
try {
|
|
9400
|
-
return await c_promise;
|
|
9401
|
-
} finally {
|
|
9402
|
-
if (cache)
|
|
9403
|
-
cache.promise = null;
|
|
9404
|
-
else
|
|
9405
|
-
cachedAuthStatusPromise = null;
|
|
9406
|
-
}
|
|
9407
|
-
}
|
|
9408
|
-
var cachedClaudeInfo = null;
|
|
9409
|
-
var cachedClaudePathPromise = null;
|
|
9410
|
-
var DEFAULT_DEPS = {
|
|
9411
|
-
existsSync: existsSync3,
|
|
9412
|
-
statSync: (p) => statSync(p),
|
|
9413
|
-
exec,
|
|
9414
|
-
resolvePackage: (specifier) => fileURLToPath2(import.meta.resolve(specifier)),
|
|
9415
|
-
envGet: (name) => process.env[name],
|
|
9416
|
-
platform: process.platform,
|
|
9417
|
-
arch: process.arch,
|
|
9418
|
-
isBun: typeof process.versions.bun !== "undefined"
|
|
9419
|
-
};
|
|
9420
|
-
function tryEnvOverride(deps) {
|
|
9421
|
-
const explicit = deps.envGet("MERIDIAN_CLAUDE_PATH");
|
|
9422
|
-
if (!explicit)
|
|
9423
|
-
return null;
|
|
9424
|
-
return deps.existsSync(explicit) ? explicit : null;
|
|
9425
|
-
}
|
|
9426
|
-
function tryBundledBinary(deps) {
|
|
9427
|
-
try {
|
|
9428
|
-
const pkgPath = deps.resolvePackage("@anthropic-ai/claude-code/package.json");
|
|
9429
|
-
const bundled = join2(dirname2(pkgPath), "bin", "claude.exe");
|
|
9430
|
-
if (!deps.existsSync(bundled))
|
|
9431
|
-
return null;
|
|
9432
|
-
const size = deps.statSync(bundled).size;
|
|
9433
|
-
if (size <= STUB_SIZE_THRESHOLD)
|
|
9434
|
-
return null;
|
|
9435
|
-
return bundled;
|
|
9436
|
-
} catch {
|
|
9437
|
-
return null;
|
|
9438
|
-
}
|
|
9439
|
-
}
|
|
9440
|
-
function tryPlatformPackage(deps) {
|
|
9441
|
-
const binName = deps.platform === "win32" ? "claude.exe" : "claude";
|
|
9442
|
-
const candidates = [`@anthropic-ai/claude-code-${deps.platform}-${deps.arch}`];
|
|
9443
|
-
if (deps.platform === "linux") {
|
|
9444
|
-
candidates.push(`@anthropic-ai/claude-code-${deps.platform}-${deps.arch}-musl`);
|
|
9445
|
-
}
|
|
9446
|
-
for (const pkg of candidates) {
|
|
9447
|
-
try {
|
|
9448
|
-
const pkgJson = deps.resolvePackage(`${pkg}/package.json`);
|
|
9449
|
-
const candidate = join2(dirname2(pkgJson), binName);
|
|
9450
|
-
if (deps.existsSync(candidate))
|
|
9451
|
-
return candidate;
|
|
9452
|
-
} catch {}
|
|
9453
|
-
}
|
|
9454
|
-
return null;
|
|
9455
|
-
}
|
|
9456
|
-
async function tryPathLookup(deps) {
|
|
9457
|
-
const cmd = deps.platform === "win32" ? "where claude" : "which claude";
|
|
9458
|
-
try {
|
|
9459
|
-
const { stdout } = await deps.exec(cmd);
|
|
9460
|
-
const candidates = stdout.split(/\r?\n/).map((s) => s.trim()).filter(Boolean);
|
|
9461
|
-
for (const candidate of candidates) {
|
|
9462
|
-
if (deps.platform === "win32" && candidate.startsWith("/"))
|
|
9463
|
-
continue;
|
|
9464
|
-
if (deps.existsSync(candidate))
|
|
9465
|
-
return candidate;
|
|
9466
|
-
}
|
|
9467
|
-
} catch {}
|
|
9468
|
-
return null;
|
|
9469
|
-
}
|
|
9470
|
-
function tryLegacySdkCliJs(deps) {
|
|
9471
|
-
if (!deps.isBun)
|
|
9472
|
-
return null;
|
|
9473
|
-
try {
|
|
9474
|
-
const sdkPath = deps.resolvePackage("@anthropic-ai/claude-agent-sdk");
|
|
9475
|
-
const cliJs = join2(dirname2(sdkPath), "cli.js");
|
|
9476
|
-
return deps.existsSync(cliJs) ? cliJs : null;
|
|
9477
|
-
} catch {
|
|
9478
|
-
return null;
|
|
9479
|
-
}
|
|
9480
|
-
}
|
|
9481
|
-
async function resolveClaudeExecutableWithSource(deps = DEFAULT_DEPS) {
|
|
9482
|
-
const env2 = tryEnvOverride(deps);
|
|
9483
|
-
if (env2)
|
|
9484
|
-
return { path: env2, source: "env" };
|
|
9485
|
-
const bundled = tryBundledBinary(deps);
|
|
9486
|
-
if (bundled)
|
|
9487
|
-
return { path: bundled, source: "bundled" };
|
|
9488
|
-
const platformPkg = tryPlatformPackage(deps);
|
|
9489
|
-
if (platformPkg)
|
|
9490
|
-
return { path: platformPkg, source: "platform-package" };
|
|
9491
|
-
const pathLookup = await tryPathLookup(deps);
|
|
9492
|
-
if (pathLookup)
|
|
9493
|
-
return { path: pathLookup, source: "path-lookup" };
|
|
9494
|
-
const legacy = tryLegacySdkCliJs(deps);
|
|
9495
|
-
if (legacy)
|
|
9496
|
-
return { path: legacy, source: "legacy-cli-js" };
|
|
9497
|
-
return null;
|
|
9498
|
-
}
|
|
9499
|
-
function getResolvedClaudeExecutableInfo() {
|
|
9500
|
-
return cachedClaudeInfo;
|
|
9501
|
-
}
|
|
9502
|
-
async function resolveClaudeExecutableAsync() {
|
|
9503
|
-
if (cachedClaudeInfo)
|
|
9504
|
-
return cachedClaudeInfo.path;
|
|
9505
|
-
if (cachedClaudePathPromise)
|
|
9506
|
-
return cachedClaudePathPromise;
|
|
9507
|
-
cachedClaudePathPromise = (async () => {
|
|
9508
|
-
const resolved = await resolveClaudeExecutableWithSource();
|
|
9509
|
-
if (resolved) {
|
|
9510
|
-
cachedClaudeInfo = resolved;
|
|
9511
|
-
return resolved.path;
|
|
9512
|
-
}
|
|
9513
|
-
throw new Error("Could not find Claude Code executable. Install via: npm install -g @anthropic-ai/claude-code, " + "or set MERIDIAN_CLAUDE_PATH=/path/to/claude to point at an existing binary.");
|
|
9514
|
-
})();
|
|
9515
|
-
try {
|
|
9516
|
-
return await cachedClaudePathPromise;
|
|
9517
|
-
} finally {
|
|
9518
|
-
cachedClaudePathPromise = null;
|
|
9519
|
-
}
|
|
9520
|
-
}
|
|
9521
|
-
function isClosedControllerError(error) {
|
|
9522
|
-
if (!(error instanceof Error))
|
|
9523
|
-
return false;
|
|
9524
|
-
return error.message.includes("Controller is already closed");
|
|
9525
|
-
}
|
|
9526
|
-
|
|
9527
9275
|
// src/proxy/openai.ts
|
|
9528
9276
|
function extractOpenAiContent(content) {
|
|
9529
9277
|
if (typeof content === "string")
|
|
@@ -9905,6 +9653,14 @@ function buildModelList(isMaxSubscription, now = Math.floor(Date.now() / 1000))
|
|
|
9905
9653
|
display_name: "Claude Opus 4.7",
|
|
9906
9654
|
context_window: isMaxSubscription ? 1e6 : 200000
|
|
9907
9655
|
},
|
|
9656
|
+
{
|
|
9657
|
+
id: "claude-opus-4-8",
|
|
9658
|
+
object: "model",
|
|
9659
|
+
created: now,
|
|
9660
|
+
owned_by: "anthropic",
|
|
9661
|
+
display_name: "Claude Opus 4.8",
|
|
9662
|
+
context_window: isMaxSubscription ? 1e6 : 200000
|
|
9663
|
+
},
|
|
9908
9664
|
{
|
|
9909
9665
|
id: "claude-haiku-4-5",
|
|
9910
9666
|
object: "model",
|
|
@@ -11041,8 +10797,8 @@ function detectAdapter(c) {
|
|
|
11041
10797
|
import { createSdkMcpServer as createSdkMcpServer2, tool } from "@anthropic-ai/claude-agent-sdk";
|
|
11042
10798
|
import * as fs from "node:fs/promises";
|
|
11043
10799
|
import * as path2 from "node:path";
|
|
11044
|
-
import { exec
|
|
11045
|
-
import { promisify
|
|
10800
|
+
import { exec } from "node:child_process";
|
|
10801
|
+
import { promisify } from "node:util";
|
|
11046
10802
|
|
|
11047
10803
|
// node_modules/@isaacs/balanced-match/dist/esm/index.js
|
|
11048
10804
|
var balanced = (a, b, str) => {
|
|
@@ -12479,7 +12235,7 @@ minimatch.escape = escape;
|
|
|
12479
12235
|
minimatch.unescape = unescape;
|
|
12480
12236
|
|
|
12481
12237
|
// node_modules/glob/dist/esm/glob.js
|
|
12482
|
-
import { fileURLToPath as
|
|
12238
|
+
import { fileURLToPath as fileURLToPath3 } from "node:url";
|
|
12483
12239
|
|
|
12484
12240
|
// node_modules/lru-cache/dist/esm/index.js
|
|
12485
12241
|
var defaultPerf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date;
|
|
@@ -13642,7 +13398,7 @@ class LRUCache {
|
|
|
13642
13398
|
|
|
13643
13399
|
// node_modules/path-scurry/dist/esm/index.js
|
|
13644
13400
|
import { posix, win32 } from "node:path";
|
|
13645
|
-
import { fileURLToPath as
|
|
13401
|
+
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
13646
13402
|
import { lstatSync, readdir as readdirCB, readdirSync, readlinkSync, realpathSync as rps } from "fs";
|
|
13647
13403
|
import * as actualFS from "node:fs";
|
|
13648
13404
|
import { lstat, readdir, readlink, realpath } from "node:fs/promises";
|
|
@@ -15097,7 +14853,7 @@ class PathScurryBase {
|
|
|
15097
14853
|
constructor(cwd = process.cwd(), pathImpl, sep2, { nocase, childrenCacheSize = 16 * 1024, fs = defaultFS } = {}) {
|
|
15098
14854
|
this.#fs = fsFromOption(fs);
|
|
15099
14855
|
if (cwd instanceof URL || cwd.startsWith("file://")) {
|
|
15100
|
-
cwd =
|
|
14856
|
+
cwd = fileURLToPath2(cwd);
|
|
15101
14857
|
}
|
|
15102
14858
|
const cwdPath = pathImpl.resolve(cwd);
|
|
15103
14859
|
this.roots = Object.create(null);
|
|
@@ -16401,7 +16157,7 @@ class Glob {
|
|
|
16401
16157
|
if (!opts.cwd) {
|
|
16402
16158
|
this.cwd = "";
|
|
16403
16159
|
} else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) {
|
|
16404
|
-
opts.cwd =
|
|
16160
|
+
opts.cwd = fileURLToPath3(opts.cwd);
|
|
16405
16161
|
}
|
|
16406
16162
|
this.cwd = opts.cwd || "";
|
|
16407
16163
|
this.root = opts.root;
|
|
@@ -16592,7 +16348,7 @@ var glob = Object.assign(glob_, {
|
|
|
16592
16348
|
glob.glob = glob;
|
|
16593
16349
|
|
|
16594
16350
|
// src/mcpTools.ts
|
|
16595
|
-
var execAsync =
|
|
16351
|
+
var execAsync = promisify(exec);
|
|
16596
16352
|
var getCwd = () => process.env.MERIDIAN_WORKDIR ?? process.env.CLAUDE_PROXY_WORKDIR ?? process.cwd();
|
|
16597
16353
|
function createOpencodeMcpServer() {
|
|
16598
16354
|
return createSdkMcpServer2({
|
|
@@ -16767,6 +16523,8 @@ function resolveSystemPrompt(systemContext, passthrough, settingSources, codeSys
|
|
|
16767
16523
|
}
|
|
16768
16524
|
if (append)
|
|
16769
16525
|
return { systemPrompt: append };
|
|
16526
|
+
if (codeSystemPrompt === false)
|
|
16527
|
+
return { systemPrompt: "" };
|
|
16770
16528
|
return {};
|
|
16771
16529
|
}
|
|
16772
16530
|
function buildQueryOptions(ctx) {
|
|
@@ -16822,6 +16580,8 @@ function buildQueryOptions(ctx) {
|
|
|
16822
16580
|
allowDangerouslySkipPermissions: true,
|
|
16823
16581
|
...resolveSystemPrompt(systemContext, passthrough, settingSources, codeSystemPrompt, clientSystemPrompt, cwdNote),
|
|
16824
16582
|
...passthrough ? {
|
|
16583
|
+
tools: [],
|
|
16584
|
+
settingSources: [],
|
|
16825
16585
|
disallowedTools: [...allBlockedTools],
|
|
16826
16586
|
...passthroughMcp ? {
|
|
16827
16587
|
allowedTools: [...passthroughMcp.toolNames],
|
|
@@ -16845,7 +16605,8 @@ function buildQueryOptions(ctx) {
|
|
|
16845
16605
|
...sharedMemory ? stripConfigDir(cleanEnv) : cleanEnv,
|
|
16846
16606
|
ENABLE_TOOL_SEARCH: hasDeferredTools ? "true" : "false",
|
|
16847
16607
|
...passthrough ? { ENABLE_CLAUDEAI_MCP_SERVERS: "false" } : {},
|
|
16848
|
-
...process.getuid?.() === 0 ? { IS_SANDBOX: "1" } : {}
|
|
16608
|
+
...process.getuid?.() === 0 ? { IS_SANDBOX: "1" } : {},
|
|
16609
|
+
...ctx.envOverrides
|
|
16849
16610
|
},
|
|
16850
16611
|
...Object.keys(sdkAgents).length > 0 ? { agents: sdkAgents } : {},
|
|
16851
16612
|
...resumeSessionId ? { resume: resumeSessionId } : {},
|
|
@@ -16878,8 +16639,8 @@ function getAdapterTransforms(adapterName) {
|
|
|
16878
16639
|
}
|
|
16879
16640
|
|
|
16880
16641
|
// src/proxy/plugins/loader.ts
|
|
16881
|
-
import { readdirSync as readdirSync2, readFileSync as readFileSync2, existsSync as
|
|
16882
|
-
import { join as
|
|
16642
|
+
import { readdirSync as readdirSync2, readFileSync as readFileSync2, existsSync as existsSync3 } from "fs";
|
|
16643
|
+
import { join as join2, isAbsolute as isAbsolute2, extname } from "path";
|
|
16883
16644
|
import { pathToFileURL } from "url";
|
|
16884
16645
|
|
|
16885
16646
|
// src/proxy/plugins/validation.ts
|
|
@@ -16920,7 +16681,7 @@ function validateTransform(exported) {
|
|
|
16920
16681
|
// src/proxy/plugins/loader.ts
|
|
16921
16682
|
var loadCounter = 0;
|
|
16922
16683
|
function parsePluginConfig(configPath) {
|
|
16923
|
-
if (!
|
|
16684
|
+
if (!existsSync3(configPath))
|
|
16924
16685
|
return [];
|
|
16925
16686
|
try {
|
|
16926
16687
|
const raw2 = readFileSync2(configPath, "utf-8");
|
|
@@ -16933,7 +16694,7 @@ function parsePluginConfig(configPath) {
|
|
|
16933
16694
|
async function loadPlugins(pluginDir, configPath) {
|
|
16934
16695
|
resetAllPluginStats();
|
|
16935
16696
|
const config = configPath ? parsePluginConfig(configPath) : [];
|
|
16936
|
-
const pluginDirExists =
|
|
16697
|
+
const pluginDirExists = existsSync3(pluginDir);
|
|
16937
16698
|
let filenames = [];
|
|
16938
16699
|
if (pluginDirExists) {
|
|
16939
16700
|
try {
|
|
@@ -16964,7 +16725,7 @@ async function loadPlugins(pluginDir, configPath) {
|
|
|
16964
16725
|
const loaded = [];
|
|
16965
16726
|
const seenNames = new Set;
|
|
16966
16727
|
for (const { filename, entry } of ordered) {
|
|
16967
|
-
const filePath = isAbsolute2(filename) ? filename :
|
|
16728
|
+
const filePath = isAbsolute2(filename) ? filename : join2(pluginDir, filename);
|
|
16968
16729
|
if (entry && !entry.enabled) {
|
|
16969
16730
|
loaded.push({
|
|
16970
16731
|
name: filename,
|
|
@@ -17336,17 +17097,17 @@ function verifyLineage(cached, messages, cacheKey2, cache) {
|
|
|
17336
17097
|
// src/proxy/sessionStore.ts
|
|
17337
17098
|
import {
|
|
17338
17099
|
closeSync,
|
|
17339
|
-
existsSync as
|
|
17100
|
+
existsSync as existsSync4,
|
|
17340
17101
|
mkdirSync,
|
|
17341
17102
|
openSync,
|
|
17342
17103
|
readFileSync as readFileSync3,
|
|
17343
17104
|
renameSync,
|
|
17344
|
-
statSync
|
|
17105
|
+
statSync,
|
|
17345
17106
|
unlinkSync,
|
|
17346
17107
|
writeFileSync
|
|
17347
17108
|
} from "node:fs";
|
|
17348
17109
|
import { homedir as homedir2 } from "node:os";
|
|
17349
|
-
import { join as
|
|
17110
|
+
import { join as join3 } from "node:path";
|
|
17350
17111
|
var DEFAULT_MAX_STORED_SESSIONS = 1e4;
|
|
17351
17112
|
var STALE_LOCK_THRESHOLD_MS = 30000;
|
|
17352
17113
|
function getMaxStoredSessions() {
|
|
@@ -17370,7 +17131,7 @@ function acquireLock(lockPath) {
|
|
|
17370
17131
|
return false;
|
|
17371
17132
|
}
|
|
17372
17133
|
try {
|
|
17373
|
-
const stat =
|
|
17134
|
+
const stat = statSync(lockPath);
|
|
17374
17135
|
if (Date.now() - stat.mtimeMs > STALE_LOCK_THRESHOLD_MS) {
|
|
17375
17136
|
unlinkSync(lockPath);
|
|
17376
17137
|
const fd = openSync(lockPath, "wx");
|
|
@@ -17394,17 +17155,17 @@ var sessionDirOverride = null;
|
|
|
17394
17155
|
var skipLocking = false;
|
|
17395
17156
|
function getStorePath() {
|
|
17396
17157
|
const dir = sessionDirOverride || process.env.MERIDIAN_SESSION_DIR || process.env.CLAUDE_PROXY_SESSION_DIR || getDefaultCacheDir();
|
|
17397
|
-
if (!
|
|
17158
|
+
if (!existsSync4(dir)) {
|
|
17398
17159
|
mkdirSync(dir, { recursive: true });
|
|
17399
17160
|
}
|
|
17400
|
-
return
|
|
17161
|
+
return join3(dir, "sessions.json");
|
|
17401
17162
|
}
|
|
17402
17163
|
function getDefaultCacheDir() {
|
|
17403
|
-
const newDir =
|
|
17404
|
-
const oldDir =
|
|
17405
|
-
if (
|
|
17164
|
+
const newDir = join3(homedir2(), ".cache", "meridian");
|
|
17165
|
+
const oldDir = join3(homedir2(), ".cache", "opencode-claude-max-proxy");
|
|
17166
|
+
if (existsSync4(newDir))
|
|
17406
17167
|
return newDir;
|
|
17407
|
-
if (
|
|
17168
|
+
if (existsSync4(oldDir)) {
|
|
17408
17169
|
try {
|
|
17409
17170
|
const { symlinkSync } = __require("fs");
|
|
17410
17171
|
symlinkSync(oldDir, newDir);
|
|
@@ -17417,7 +17178,7 @@ function getDefaultCacheDir() {
|
|
|
17417
17178
|
}
|
|
17418
17179
|
function readStore() {
|
|
17419
17180
|
const path3 = getStorePath();
|
|
17420
|
-
if (!
|
|
17181
|
+
if (!existsSync4(path3))
|
|
17421
17182
|
return {};
|
|
17422
17183
|
try {
|
|
17423
17184
|
const data = readFileSync3(path3, "utf-8");
|
|
@@ -17741,7 +17502,7 @@ function storeSession(sessionId, messages, claudeSessionId, workingDirectory, sd
|
|
|
17741
17502
|
}
|
|
17742
17503
|
|
|
17743
17504
|
// src/proxy/server.ts
|
|
17744
|
-
var
|
|
17505
|
+
var exec2 = promisify2(execCallback);
|
|
17745
17506
|
var claudeExecutable = "";
|
|
17746
17507
|
var MULTIMODAL_TYPES = new Set(["image", "document", "file"]);
|
|
17747
17508
|
function hasMultimodalContent(content) {
|
|
@@ -17919,8 +17680,8 @@ function createProxyServer(config = {}) {
|
|
|
17919
17680
|
const sessionDiscoveredTools = new Map;
|
|
17920
17681
|
const sessionToolCache = new Map;
|
|
17921
17682
|
const sessionMcpCache = new LRUMap(getMaxSessionsLimit());
|
|
17922
|
-
const pluginDir = finalConfig.pluginDir ??
|
|
17923
|
-
const pluginConfigPath = finalConfig.pluginConfigPath ??
|
|
17683
|
+
const pluginDir = finalConfig.pluginDir ?? join5(homedir4(), ".config", "meridian", "plugins");
|
|
17684
|
+
const pluginConfigPath = finalConfig.pluginConfigPath ?? join5(homedir4(), ".config", "meridian", "plugins.json");
|
|
17924
17685
|
let loadedPlugins = [];
|
|
17925
17686
|
let pluginTransforms = [];
|
|
17926
17687
|
const app = new Hono2;
|
|
@@ -17995,7 +17756,9 @@ function createProxyServer(config = {}) {
|
|
|
17995
17756
|
const authStatus = await getClaudeAuthStatusAsync(profile.id !== "default" ? profile.id : undefined, Object.keys(profile.env).length > 0 ? profile.env : undefined);
|
|
17996
17757
|
const agentMode = c.req.header("x-opencode-agent-mode") ?? null;
|
|
17997
17758
|
const requestSource = c.req.header("x-meridian-source")?.slice(0, 64) || undefined;
|
|
17998
|
-
|
|
17759
|
+
const requestedModel = typeof body.model === "string" ? body.model : "sonnet";
|
|
17760
|
+
let model = mapModelToClaudeModel(requestedModel, authStatus?.subscriptionType, agentMode);
|
|
17761
|
+
const envOverrides = requestedModel.startsWith("claude-opus-") ? { ANTHROPIC_DEFAULT_OPUS_MODEL: requestedModel } : undefined;
|
|
17999
17762
|
const cwdResolution = resolveSdkWorkingDirectory({
|
|
18000
17763
|
envOverride: process.env.MERIDIAN_WORKDIR ?? process.env.CLAUDE_PROXY_WORKDIR,
|
|
18001
17764
|
adapterCwd: adapter.extractWorkingDirectory(body),
|
|
@@ -18289,6 +18052,7 @@ function createProxyServer(config = {}) {
|
|
|
18289
18052
|
let rateLimitRetries = 0;
|
|
18290
18053
|
await ensureFreshToken().catch(() => {});
|
|
18291
18054
|
let tokenRefreshed = false;
|
|
18055
|
+
let didFreshBaseRetry = false;
|
|
18292
18056
|
while (true) {
|
|
18293
18057
|
let didYieldContent = false;
|
|
18294
18058
|
try {
|
|
@@ -18304,6 +18068,7 @@ function createProxyServer(config = {}) {
|
|
|
18304
18068
|
sdkAgents,
|
|
18305
18069
|
passthroughMcp,
|
|
18306
18070
|
cleanEnv: profileEnv,
|
|
18071
|
+
envOverrides,
|
|
18307
18072
|
hasDeferredTools,
|
|
18308
18073
|
resumeSessionId,
|
|
18309
18074
|
isUndo,
|
|
@@ -18366,6 +18131,7 @@ function createProxyServer(config = {}) {
|
|
|
18366
18131
|
sdkAgents,
|
|
18367
18132
|
passthroughMcp,
|
|
18368
18133
|
cleanEnv: profileEnv,
|
|
18134
|
+
envOverrides,
|
|
18369
18135
|
hasDeferredTools,
|
|
18370
18136
|
resumeSessionId: undefined,
|
|
18371
18137
|
isUndo: false,
|
|
@@ -18407,6 +18173,59 @@ function createProxyServer(config = {}) {
|
|
|
18407
18173
|
console.error(`[PROXY] ${requestMeta.requestId} extra usage required for [1m], falling back to ${model} (skipping [1m] for 1h)`);
|
|
18408
18174
|
continue;
|
|
18409
18175
|
}
|
|
18176
|
+
if (isExtraUsageRequiredError(errMsg) && resumeSessionId && !didFreshBaseRetry) {
|
|
18177
|
+
didFreshBaseRetry = true;
|
|
18178
|
+
claudeLog("upstream.session_fallback", {
|
|
18179
|
+
mode: "non_stream",
|
|
18180
|
+
model,
|
|
18181
|
+
reason: "extra_usage_required_resume"
|
|
18182
|
+
});
|
|
18183
|
+
console.error(`[PROXY] ${requestMeta.requestId} extra usage persisted on resumed ${model}, retrying as fresh session`);
|
|
18184
|
+
evictSession(profileSessionId, profileScopedCwd, allMessages);
|
|
18185
|
+
sdkUuidMap.length = 0;
|
|
18186
|
+
for (let i = 0;i < allMessages.length; i++)
|
|
18187
|
+
sdkUuidMap.push(null);
|
|
18188
|
+
yield* query(buildQueryOptions({
|
|
18189
|
+
prompt: buildFreshPrompt(allMessages, sanitizeOpts),
|
|
18190
|
+
model,
|
|
18191
|
+
workingDirectory,
|
|
18192
|
+
clientWorkingDirectory,
|
|
18193
|
+
systemContext,
|
|
18194
|
+
claudeExecutable,
|
|
18195
|
+
passthrough,
|
|
18196
|
+
stream: false,
|
|
18197
|
+
sdkAgents,
|
|
18198
|
+
passthroughMcp,
|
|
18199
|
+
cleanEnv: profileEnv,
|
|
18200
|
+
envOverrides,
|
|
18201
|
+
hasDeferredTools,
|
|
18202
|
+
resumeSessionId: undefined,
|
|
18203
|
+
isUndo: false,
|
|
18204
|
+
undoRollbackUuid: undefined,
|
|
18205
|
+
sdkHooks,
|
|
18206
|
+
blockedTools: pipelineCtx.blockedTools,
|
|
18207
|
+
incompatibleTools: pipelineCtx.incompatibleTools,
|
|
18208
|
+
mcpServerName: adapter.getMcpServerName(),
|
|
18209
|
+
allowedMcpTools: pipelineCtx.allowedMcpTools,
|
|
18210
|
+
onStderr,
|
|
18211
|
+
effort,
|
|
18212
|
+
thinking,
|
|
18213
|
+
taskBudget,
|
|
18214
|
+
betas,
|
|
18215
|
+
settingSources,
|
|
18216
|
+
codeSystemPrompt: sdkFeatures.codeSystemPrompt,
|
|
18217
|
+
clientSystemPrompt: sdkFeatures.clientSystemPrompt === false ? false : undefined,
|
|
18218
|
+
memory: sdkFeatures.memory,
|
|
18219
|
+
dreaming: sdkFeatures.dreaming,
|
|
18220
|
+
sharedMemory: sdkFeatures.sharedMemory,
|
|
18221
|
+
maxBudgetUsd: sdkFeatures.maxBudgetUsd,
|
|
18222
|
+
fallbackModel: sdkFeatures.fallbackModel,
|
|
18223
|
+
sdkDebug: sdkFeatures.sdkDebug,
|
|
18224
|
+
additionalDirectories: sdkFeatures.additionalDirectories ? sdkFeatures.additionalDirectories.split(",").map((d) => d.trim()).filter(Boolean) : undefined,
|
|
18225
|
+
advisorModel
|
|
18226
|
+
}));
|
|
18227
|
+
return;
|
|
18228
|
+
}
|
|
18410
18229
|
if (isExpiredTokenError(errMsg) && !tokenRefreshed) {
|
|
18411
18230
|
tokenRefreshed = true;
|
|
18412
18231
|
const refreshed = await refreshOAuthToken();
|
|
@@ -18691,6 +18510,7 @@ Subprocess stderr: ${stderrOutput}`;
|
|
|
18691
18510
|
let rateLimitRetries = 0;
|
|
18692
18511
|
await ensureFreshToken().catch(() => {});
|
|
18693
18512
|
let tokenRefreshed = false;
|
|
18513
|
+
let didFreshBaseRetry = false;
|
|
18694
18514
|
while (true) {
|
|
18695
18515
|
let didYieldClientEvent = false;
|
|
18696
18516
|
try {
|
|
@@ -18706,6 +18526,7 @@ Subprocess stderr: ${stderrOutput}`;
|
|
|
18706
18526
|
sdkAgents,
|
|
18707
18527
|
passthroughMcp,
|
|
18708
18528
|
cleanEnv: profileEnv,
|
|
18529
|
+
envOverrides,
|
|
18709
18530
|
hasDeferredTools,
|
|
18710
18531
|
resumeSessionId,
|
|
18711
18532
|
isUndo,
|
|
@@ -18768,6 +18589,7 @@ Subprocess stderr: ${stderrOutput}`;
|
|
|
18768
18589
|
sdkAgents,
|
|
18769
18590
|
passthroughMcp,
|
|
18770
18591
|
cleanEnv: profileEnv,
|
|
18592
|
+
envOverrides,
|
|
18771
18593
|
hasDeferredTools,
|
|
18772
18594
|
resumeSessionId: undefined,
|
|
18773
18595
|
isUndo: false,
|
|
@@ -18809,6 +18631,59 @@ Subprocess stderr: ${stderrOutput}`;
|
|
|
18809
18631
|
console.error(`[PROXY] ${requestMeta.requestId} extra usage required for [1m], falling back to ${model} (skipping [1m] for 1h)`);
|
|
18810
18632
|
continue;
|
|
18811
18633
|
}
|
|
18634
|
+
if (isExtraUsageRequiredError(errMsg) && resumeSessionId && !didFreshBaseRetry) {
|
|
18635
|
+
didFreshBaseRetry = true;
|
|
18636
|
+
claudeLog("upstream.session_fallback", {
|
|
18637
|
+
mode: "stream",
|
|
18638
|
+
model,
|
|
18639
|
+
reason: "extra_usage_required_resume"
|
|
18640
|
+
});
|
|
18641
|
+
console.error(`[PROXY] ${requestMeta.requestId} extra usage persisted on resumed ${model}, retrying as fresh session`);
|
|
18642
|
+
evictSession(profileSessionId, profileScopedCwd, allMessages);
|
|
18643
|
+
sdkUuidMap.length = 0;
|
|
18644
|
+
for (let i = 0;i < allMessages.length; i++)
|
|
18645
|
+
sdkUuidMap.push(null);
|
|
18646
|
+
yield* query(buildQueryOptions({
|
|
18647
|
+
prompt: buildFreshPrompt(allMessages, sanitizeOpts),
|
|
18648
|
+
model,
|
|
18649
|
+
workingDirectory,
|
|
18650
|
+
clientWorkingDirectory,
|
|
18651
|
+
systemContext,
|
|
18652
|
+
claudeExecutable,
|
|
18653
|
+
passthrough,
|
|
18654
|
+
stream: true,
|
|
18655
|
+
sdkAgents,
|
|
18656
|
+
passthroughMcp,
|
|
18657
|
+
cleanEnv: profileEnv,
|
|
18658
|
+
envOverrides,
|
|
18659
|
+
hasDeferredTools,
|
|
18660
|
+
resumeSessionId: undefined,
|
|
18661
|
+
isUndo: false,
|
|
18662
|
+
undoRollbackUuid: undefined,
|
|
18663
|
+
sdkHooks,
|
|
18664
|
+
blockedTools: pipelineCtx.blockedTools,
|
|
18665
|
+
incompatibleTools: pipelineCtx.incompatibleTools,
|
|
18666
|
+
mcpServerName: adapter.getMcpServerName(),
|
|
18667
|
+
allowedMcpTools: pipelineCtx.allowedMcpTools,
|
|
18668
|
+
onStderr,
|
|
18669
|
+
effort,
|
|
18670
|
+
thinking,
|
|
18671
|
+
taskBudget,
|
|
18672
|
+
betas,
|
|
18673
|
+
settingSources,
|
|
18674
|
+
codeSystemPrompt: sdkFeatures.codeSystemPrompt,
|
|
18675
|
+
clientSystemPrompt: sdkFeatures.clientSystemPrompt === false ? false : undefined,
|
|
18676
|
+
memory: sdkFeatures.memory,
|
|
18677
|
+
dreaming: sdkFeatures.dreaming,
|
|
18678
|
+
sharedMemory: sdkFeatures.sharedMemory,
|
|
18679
|
+
maxBudgetUsd: sdkFeatures.maxBudgetUsd,
|
|
18680
|
+
fallbackModel: sdkFeatures.fallbackModel,
|
|
18681
|
+
sdkDebug: sdkFeatures.sdkDebug,
|
|
18682
|
+
additionalDirectories: sdkFeatures.additionalDirectories ? sdkFeatures.additionalDirectories.split(",").map((d) => d.trim()).filter(Boolean) : undefined,
|
|
18683
|
+
advisorModel
|
|
18684
|
+
}));
|
|
18685
|
+
return;
|
|
18686
|
+
}
|
|
18812
18687
|
if (isExpiredTokenError(errMsg) && !tokenRefreshed) {
|
|
18813
18688
|
tokenRefreshed = true;
|
|
18814
18689
|
const refreshed = await refreshOAuthToken();
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
// src/proxy/models.ts
|
|
2
|
+
import { exec as execCallback, execFile as execFileCallback } from "child_process";
|
|
3
|
+
import { existsSync, statSync } from "fs";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
import { join, dirname } from "path";
|
|
6
|
+
import { promisify } from "util";
|
|
7
|
+
var exec = promisify(execCallback);
|
|
8
|
+
var execFile = promisify(execFileCallback);
|
|
9
|
+
var STUB_SIZE_THRESHOLD = 4096;
|
|
10
|
+
var CANONICAL_OPUS_MODEL = "claude-opus-4-8";
|
|
11
|
+
var CANONICAL_SONNET_MODEL = "claude-sonnet-4-6";
|
|
12
|
+
var CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
13
|
+
function resolveSdkModelDefaults(env = process.env) {
|
|
14
|
+
return {
|
|
15
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: env.MERIDIAN_DEFAULT_OPUS_MODEL ?? CANONICAL_OPUS_MODEL,
|
|
16
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: env.MERIDIAN_DEFAULT_SONNET_MODEL ?? CANONICAL_SONNET_MODEL,
|
|
17
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: env.MERIDIAN_DEFAULT_HAIKU_MODEL ?? CANONICAL_HAIKU_MODEL
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
var AUTH_STATUS_CACHE_TTL_MS = 60000;
|
|
21
|
+
var AUTH_STATUS_FAILURE_TTL_MS = 5000;
|
|
22
|
+
var cachedAuthStatus = null;
|
|
23
|
+
var lastKnownGoodAuthStatus = null;
|
|
24
|
+
var cachedAuthStatusAt = 0;
|
|
25
|
+
var cachedAuthStatusIsFailure = false;
|
|
26
|
+
var cachedAuthStatusPromise = null;
|
|
27
|
+
function supports1mContext(model) {
|
|
28
|
+
if (model.includes("4-5") || model.includes("4.5"))
|
|
29
|
+
return false;
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
function mapModelToClaudeModel(model, subscriptionType, agentMode) {
|
|
33
|
+
if (model.includes("haiku"))
|
|
34
|
+
return "haiku";
|
|
35
|
+
const use1m = supports1mContext(model);
|
|
36
|
+
const isSubagent = agentMode === "subagent";
|
|
37
|
+
if (model.includes("opus")) {
|
|
38
|
+
if (use1m && !isSubagent && !isExtendedContextKnownUnavailable())
|
|
39
|
+
return "opus[1m]";
|
|
40
|
+
return "opus";
|
|
41
|
+
}
|
|
42
|
+
const sonnetOverride = process.env.MERIDIAN_SONNET_MODEL ?? process.env.CLAUDE_PROXY_SONNET_MODEL;
|
|
43
|
+
if (sonnetOverride === "sonnet[1m]") {
|
|
44
|
+
if (!use1m || isSubagent || isExtendedContextKnownUnavailable())
|
|
45
|
+
return "sonnet";
|
|
46
|
+
return "sonnet[1m]";
|
|
47
|
+
}
|
|
48
|
+
return "sonnet";
|
|
49
|
+
}
|
|
50
|
+
var EXTRA_USAGE_RETRY_MS = 60 * 60 * 1000;
|
|
51
|
+
var extraUsageUnavailableAt = 0;
|
|
52
|
+
function recordExtendedContextUnavailable() {
|
|
53
|
+
extraUsageUnavailableAt = Date.now();
|
|
54
|
+
}
|
|
55
|
+
function isExtendedContextKnownUnavailable() {
|
|
56
|
+
return extraUsageUnavailableAt > 0 && Date.now() - extraUsageUnavailableAt < EXTRA_USAGE_RETRY_MS;
|
|
57
|
+
}
|
|
58
|
+
function stripExtendedContext(model) {
|
|
59
|
+
if (model === "opus[1m]")
|
|
60
|
+
return "opus";
|
|
61
|
+
if (model === "sonnet[1m]")
|
|
62
|
+
return "sonnet";
|
|
63
|
+
return model;
|
|
64
|
+
}
|
|
65
|
+
function hasExtendedContext(model) {
|
|
66
|
+
return model.endsWith("[1m]");
|
|
67
|
+
}
|
|
68
|
+
var profileAuthCaches = new Map;
|
|
69
|
+
function getAuthCacheInfo(profileId) {
|
|
70
|
+
if (!profileId) {
|
|
71
|
+
return { lastCheckedAt: cachedAuthStatusAt, lastSuccessAt: cachedAuthStatusIsFailure ? 0 : cachedAuthStatusAt, isFailure: cachedAuthStatusIsFailure };
|
|
72
|
+
}
|
|
73
|
+
const cache = profileAuthCaches.get(profileId);
|
|
74
|
+
if (!cache)
|
|
75
|
+
return { lastCheckedAt: 0, lastSuccessAt: 0, isFailure: false };
|
|
76
|
+
return { lastCheckedAt: cache.at, lastSuccessAt: cache.lastSuccessAt, isFailure: cache.isFailure };
|
|
77
|
+
}
|
|
78
|
+
function getAuthCache(key) {
|
|
79
|
+
let cache = profileAuthCaches.get(key);
|
|
80
|
+
if (!cache) {
|
|
81
|
+
cache = { status: null, lastKnownGood: null, at: 0, isFailure: false, promise: null, lastSuccessAt: 0 };
|
|
82
|
+
profileAuthCaches.set(key, cache);
|
|
83
|
+
}
|
|
84
|
+
return cache;
|
|
85
|
+
}
|
|
86
|
+
async function getClaudeAuthStatusAsync(profileId, envOverrides) {
|
|
87
|
+
const isDefault = !profileId;
|
|
88
|
+
const cache = isDefault ? null : getAuthCache(profileId);
|
|
89
|
+
const c_status = cache ? cache.status : cachedAuthStatus;
|
|
90
|
+
const c_lastKnownGood = cache ? cache.lastKnownGood : lastKnownGoodAuthStatus;
|
|
91
|
+
const c_at = cache ? cache.at : cachedAuthStatusAt;
|
|
92
|
+
const c_isFailure = cache ? cache.isFailure : cachedAuthStatusIsFailure;
|
|
93
|
+
let c_promise = cache ? cache.promise : cachedAuthStatusPromise;
|
|
94
|
+
const ttl = c_isFailure ? AUTH_STATUS_FAILURE_TTL_MS : AUTH_STATUS_CACHE_TTL_MS;
|
|
95
|
+
if (c_at > 0 && Date.now() - c_at < ttl) {
|
|
96
|
+
return c_status ?? c_lastKnownGood;
|
|
97
|
+
}
|
|
98
|
+
if (c_promise)
|
|
99
|
+
return c_promise;
|
|
100
|
+
c_promise = (async () => {
|
|
101
|
+
try {
|
|
102
|
+
const claudePath = await resolveClaudeExecutableAsync();
|
|
103
|
+
const { stdout } = await execFile(claudePath, ["auth", "status"], {
|
|
104
|
+
timeout: 5000,
|
|
105
|
+
...envOverrides ? { env: { ...process.env, ...envOverrides } } : {}
|
|
106
|
+
});
|
|
107
|
+
const parsed = JSON.parse(stdout);
|
|
108
|
+
if (cache) {
|
|
109
|
+
cache.status = parsed;
|
|
110
|
+
cache.lastKnownGood = parsed;
|
|
111
|
+
cache.at = Date.now();
|
|
112
|
+
cache.isFailure = false;
|
|
113
|
+
cache.lastSuccessAt = Date.now();
|
|
114
|
+
} else {
|
|
115
|
+
cachedAuthStatus = parsed;
|
|
116
|
+
lastKnownGoodAuthStatus = parsed;
|
|
117
|
+
cachedAuthStatusAt = Date.now();
|
|
118
|
+
cachedAuthStatusIsFailure = false;
|
|
119
|
+
}
|
|
120
|
+
return parsed;
|
|
121
|
+
} catch {
|
|
122
|
+
if (cache) {
|
|
123
|
+
cache.isFailure = true;
|
|
124
|
+
cache.at = Date.now();
|
|
125
|
+
cache.status = null;
|
|
126
|
+
return cache.lastKnownGood;
|
|
127
|
+
} else {
|
|
128
|
+
cachedAuthStatusIsFailure = true;
|
|
129
|
+
cachedAuthStatusAt = Date.now();
|
|
130
|
+
cachedAuthStatus = null;
|
|
131
|
+
return lastKnownGoodAuthStatus;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
})();
|
|
135
|
+
if (cache)
|
|
136
|
+
cache.promise = c_promise;
|
|
137
|
+
else
|
|
138
|
+
cachedAuthStatusPromise = c_promise;
|
|
139
|
+
try {
|
|
140
|
+
return await c_promise;
|
|
141
|
+
} finally {
|
|
142
|
+
if (cache)
|
|
143
|
+
cache.promise = null;
|
|
144
|
+
else
|
|
145
|
+
cachedAuthStatusPromise = null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
var cachedClaudeInfo = null;
|
|
149
|
+
var cachedClaudePathPromise = null;
|
|
150
|
+
var DEFAULT_DEPS = {
|
|
151
|
+
existsSync,
|
|
152
|
+
statSync: (p) => statSync(p),
|
|
153
|
+
exec,
|
|
154
|
+
resolvePackage: (specifier) => fileURLToPath(import.meta.resolve(specifier)),
|
|
155
|
+
envGet: (name) => process.env[name],
|
|
156
|
+
platform: process.platform,
|
|
157
|
+
arch: process.arch,
|
|
158
|
+
isBun: typeof process.versions.bun !== "undefined"
|
|
159
|
+
};
|
|
160
|
+
function tryEnvOverride(deps) {
|
|
161
|
+
const explicit = deps.envGet("MERIDIAN_CLAUDE_PATH");
|
|
162
|
+
if (!explicit)
|
|
163
|
+
return null;
|
|
164
|
+
return deps.existsSync(explicit) ? explicit : null;
|
|
165
|
+
}
|
|
166
|
+
function tryBundledBinary(deps) {
|
|
167
|
+
try {
|
|
168
|
+
const pkgPath = deps.resolvePackage("@anthropic-ai/claude-code/package.json");
|
|
169
|
+
const bundled = join(dirname(pkgPath), "bin", "claude.exe");
|
|
170
|
+
if (!deps.existsSync(bundled))
|
|
171
|
+
return null;
|
|
172
|
+
const size = deps.statSync(bundled).size;
|
|
173
|
+
if (size <= STUB_SIZE_THRESHOLD)
|
|
174
|
+
return null;
|
|
175
|
+
return bundled;
|
|
176
|
+
} catch {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function tryPlatformPackage(deps) {
|
|
181
|
+
const binName = deps.platform === "win32" ? "claude.exe" : "claude";
|
|
182
|
+
const candidates = [`@anthropic-ai/claude-code-${deps.platform}-${deps.arch}`];
|
|
183
|
+
if (deps.platform === "linux") {
|
|
184
|
+
candidates.push(`@anthropic-ai/claude-code-${deps.platform}-${deps.arch}-musl`);
|
|
185
|
+
}
|
|
186
|
+
for (const pkg of candidates) {
|
|
187
|
+
try {
|
|
188
|
+
const pkgJson = deps.resolvePackage(`${pkg}/package.json`);
|
|
189
|
+
const candidate = join(dirname(pkgJson), binName);
|
|
190
|
+
if (deps.existsSync(candidate))
|
|
191
|
+
return candidate;
|
|
192
|
+
} catch {}
|
|
193
|
+
}
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
async function tryPathLookup(deps) {
|
|
197
|
+
const cmd = deps.platform === "win32" ? "where claude" : "which claude";
|
|
198
|
+
try {
|
|
199
|
+
const { stdout } = await deps.exec(cmd);
|
|
200
|
+
const candidates = stdout.split(/\r?\n/).map((s) => s.trim()).filter(Boolean);
|
|
201
|
+
for (const candidate of candidates) {
|
|
202
|
+
if (deps.platform === "win32" && candidate.startsWith("/"))
|
|
203
|
+
continue;
|
|
204
|
+
if (deps.existsSync(candidate))
|
|
205
|
+
return candidate;
|
|
206
|
+
}
|
|
207
|
+
} catch {}
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
function tryLegacySdkCliJs(deps) {
|
|
211
|
+
if (!deps.isBun)
|
|
212
|
+
return null;
|
|
213
|
+
try {
|
|
214
|
+
const sdkPath = deps.resolvePackage("@anthropic-ai/claude-agent-sdk");
|
|
215
|
+
const cliJs = join(dirname(sdkPath), "cli.js");
|
|
216
|
+
return deps.existsSync(cliJs) ? cliJs : null;
|
|
217
|
+
} catch {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async function resolveClaudeExecutableWithSource(deps = DEFAULT_DEPS) {
|
|
222
|
+
const env = tryEnvOverride(deps);
|
|
223
|
+
if (env)
|
|
224
|
+
return { path: env, source: "env" };
|
|
225
|
+
const bundled = tryBundledBinary(deps);
|
|
226
|
+
if (bundled)
|
|
227
|
+
return { path: bundled, source: "bundled" };
|
|
228
|
+
const platformPkg = tryPlatformPackage(deps);
|
|
229
|
+
if (platformPkg)
|
|
230
|
+
return { path: platformPkg, source: "platform-package" };
|
|
231
|
+
const pathLookup = await tryPathLookup(deps);
|
|
232
|
+
if (pathLookup)
|
|
233
|
+
return { path: pathLookup, source: "path-lookup" };
|
|
234
|
+
const legacy = tryLegacySdkCliJs(deps);
|
|
235
|
+
if (legacy)
|
|
236
|
+
return { path: legacy, source: "legacy-cli-js" };
|
|
237
|
+
return null;
|
|
238
|
+
}
|
|
239
|
+
function resolveClaudeExecutableSync(deps = DEFAULT_DEPS) {
|
|
240
|
+
const env = tryEnvOverride(deps);
|
|
241
|
+
if (env)
|
|
242
|
+
return { path: env, source: "env" };
|
|
243
|
+
const bundled = tryBundledBinary(deps);
|
|
244
|
+
if (bundled)
|
|
245
|
+
return { path: bundled, source: "bundled" };
|
|
246
|
+
const platformPkg = tryPlatformPackage(deps);
|
|
247
|
+
if (platformPkg)
|
|
248
|
+
return { path: platformPkg, source: "platform-package" };
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
function getResolvedClaudeExecutableInfo() {
|
|
252
|
+
return cachedClaudeInfo;
|
|
253
|
+
}
|
|
254
|
+
async function resolveClaudeExecutableAsync() {
|
|
255
|
+
if (cachedClaudeInfo)
|
|
256
|
+
return cachedClaudeInfo.path;
|
|
257
|
+
if (cachedClaudePathPromise)
|
|
258
|
+
return cachedClaudePathPromise;
|
|
259
|
+
cachedClaudePathPromise = (async () => {
|
|
260
|
+
const resolved = await resolveClaudeExecutableWithSource();
|
|
261
|
+
if (resolved) {
|
|
262
|
+
cachedClaudeInfo = resolved;
|
|
263
|
+
return resolved.path;
|
|
264
|
+
}
|
|
265
|
+
throw new Error("Could not find Claude Code executable. Install via: npm install -g @anthropic-ai/claude-code, " + "or set MERIDIAN_CLAUDE_PATH=/path/to/claude to point at an existing binary.");
|
|
266
|
+
})();
|
|
267
|
+
try {
|
|
268
|
+
return await cachedClaudePathPromise;
|
|
269
|
+
} finally {
|
|
270
|
+
cachedClaudePathPromise = null;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
function isClosedControllerError(error) {
|
|
274
|
+
if (!(error instanceof Error))
|
|
275
|
+
return false;
|
|
276
|
+
return error.message.includes("Controller is already closed");
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export { resolveSdkModelDefaults, mapModelToClaudeModel, recordExtendedContextUnavailable, stripExtendedContext, hasExtendedContext, getAuthCacheInfo, getClaudeAuthStatusAsync, resolveClaudeExecutableSync, getResolvedClaudeExecutableInfo, resolveClaudeExecutableAsync, isClosedControllerError };
|
package/dist/cli.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
startProxyServer
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-1x5gqsqc.js";
|
|
5
5
|
import"./cli-cx463q74.js";
|
|
6
6
|
import"./cli-sry5aqdj.js";
|
|
7
7
|
import"./cli-4rqtm83g.js";
|
|
8
|
+
import {
|
|
9
|
+
resolveClaudeExecutableAsync
|
|
10
|
+
} from "./cli-yeazzt32.js";
|
|
8
11
|
import"./cli-340h1chz.js";
|
|
9
12
|
import"./cli-rtab0qa6.js";
|
|
10
13
|
import"./cli-7k1fcprd.js";
|
|
@@ -14,7 +17,7 @@ import {
|
|
|
14
17
|
|
|
15
18
|
// bin/cli.ts
|
|
16
19
|
import { createRequire } from "module";
|
|
17
|
-
import { exec as execCallback } from "child_process";
|
|
20
|
+
import { exec as execCallback, execFile as execFileCallback } from "child_process";
|
|
18
21
|
import { promisify } from "util";
|
|
19
22
|
var require2 = createRequire(import.meta.url);
|
|
20
23
|
var { version } = require2("../package.json");
|
|
@@ -50,7 +53,7 @@ See https://github.com/rynfar/meridian for full documentation.`);
|
|
|
50
53
|
process.exit(0);
|
|
51
54
|
}
|
|
52
55
|
if (args[0] === "profile") {
|
|
53
|
-
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-
|
|
56
|
+
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-0h4nc2h8.js");
|
|
54
57
|
const subcommand = args[1];
|
|
55
58
|
const profileId = args[2];
|
|
56
59
|
if (subcommand === "add" && profileId) {
|
|
@@ -106,6 +109,7 @@ if (args[0] === "refresh-token") {
|
|
|
106
109
|
}
|
|
107
110
|
}
|
|
108
111
|
var exec = promisify(execCallback);
|
|
112
|
+
var execFile = promisify(execFileCallback);
|
|
109
113
|
process.on("uncaughtException", (err) => {
|
|
110
114
|
console.error(`[PROXY] Uncaught exception (recovered): ${err.message}`);
|
|
111
115
|
});
|
|
@@ -126,7 +130,10 @@ try {
|
|
|
126
130
|
} catch (e) {
|
|
127
131
|
console.error(`[meridian] Failed to parse MERIDIAN_PROFILES: ${e instanceof Error ? e.message : e}`);
|
|
128
132
|
}
|
|
129
|
-
async function runCli(start = startProxyServer,
|
|
133
|
+
async function runCli(start = startProxyServer, runAuthCheck = async () => {
|
|
134
|
+
const claudePath = await resolveClaudeExecutableAsync();
|
|
135
|
+
return execFile(claudePath, ["auth", "status"], { timeout: 5000 });
|
|
136
|
+
}) {
|
|
130
137
|
try {
|
|
131
138
|
const { findOpencodeConfigPath, checkPluginConfigured, findPluginPath } = await import("./setup-v5pnqe04.js");
|
|
132
139
|
const configPath = findOpencodeConfigPath();
|
|
@@ -140,7 +147,7 @@ async function runCli(start = startProxyServer, runExec = exec) {
|
|
|
140
147
|
}
|
|
141
148
|
} catch {}
|
|
142
149
|
try {
|
|
143
|
-
const { stdout } = await
|
|
150
|
+
const { stdout } = await runAuthCheck();
|
|
144
151
|
const auth = JSON.parse(stdout);
|
|
145
152
|
if (!auth.loggedIn) {
|
|
146
153
|
console.error("\x1B[31m✗ Not logged in to Claude.\x1B[0m Run: claude login");
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveClaudeExecutableSync
|
|
3
|
+
} from "./cli-yeazzt32.js";
|
|
1
4
|
import {
|
|
2
5
|
setSetting
|
|
3
6
|
} from "./cli-340h1chz.js";
|
|
@@ -6,7 +9,7 @@ import"./cli-p9swy5t3.js";
|
|
|
6
9
|
// src/proxy/profileCli.ts
|
|
7
10
|
import { mkdirSync, existsSync, rmSync, readFileSync, writeFileSync } from "node:fs";
|
|
8
11
|
import { join } from "node:path";
|
|
9
|
-
import {
|
|
12
|
+
import { execFileSync, spawnSync } from "node:child_process";
|
|
10
13
|
import { homedir } from "node:os";
|
|
11
14
|
var PROFILES_DIR = join(homedir(), ".config", "meridian", "profiles");
|
|
12
15
|
var CONFIG_FILE = join(homedir(), ".config", "meridian", "profiles.json");
|
|
@@ -32,8 +35,13 @@ function saveProfileConfig(profiles) {
|
|
|
32
35
|
`, { mode: 384 });
|
|
33
36
|
}
|
|
34
37
|
function getAuthStatus(configDir) {
|
|
38
|
+
const resolved = resolveClaudeExecutableSync();
|
|
39
|
+
if (!resolved) {
|
|
40
|
+
console.warn(`[meridian] Could not resolve a Claude executable for auth check (set MERIDIAN_CLAUDE_PATH or install @anthropic-ai/claude-code)`);
|
|
41
|
+
return { loggedIn: false };
|
|
42
|
+
}
|
|
35
43
|
try {
|
|
36
|
-
const result =
|
|
44
|
+
const result = execFileSync(resolved.path, ["auth", "status"], {
|
|
37
45
|
timeout: 5000,
|
|
38
46
|
env: { ...process.env, CLAUDE_CONFIG_DIR: configDir },
|
|
39
47
|
stdio: ["pipe", "pipe", "pipe"]
|
|
@@ -97,7 +105,13 @@ function profileAdd(id) {
|
|
|
97
105
|
console.log();
|
|
98
106
|
console.log(" Press Ctrl+C to cancel, or wait for the browser to open...");
|
|
99
107
|
console.log();
|
|
100
|
-
const
|
|
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);
|
|
113
|
+
}
|
|
114
|
+
const result = spawnSync(resolvedAuth.path, ["auth", "login"], {
|
|
101
115
|
env: { ...process.env, CLAUDE_CONFIG_DIR: configDir },
|
|
102
116
|
stdio: "inherit"
|
|
103
117
|
});
|
|
@@ -235,7 +249,13 @@ function profileLogin(id) {
|
|
|
235
249
|
console.log();
|
|
236
250
|
console.log("\x1B[33m⚠ Make sure you're signed into the correct Claude account in your browser.\x1B[0m");
|
|
237
251
|
console.log();
|
|
238
|
-
const
|
|
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);
|
|
257
|
+
}
|
|
258
|
+
const result = spawnSync(resolvedLogin.path, ["auth", "login"], {
|
|
239
259
|
env: { ...process.env, CLAUDE_CONFIG_DIR: profile.claudeConfigDir },
|
|
240
260
|
stdio: "inherit"
|
|
241
261
|
});
|
package/dist/proxy/models.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export type ClaudeModel = "sonnet" | "sonnet[1m]" | "opus" | "opus[1m]" | "haiku
|
|
|
18
18
|
* override via MERIDIAN_DEFAULT_{TYPE}_MODEL (proxy-side) or
|
|
19
19
|
* ANTHROPIC_DEFAULT_{TYPE}_MODEL (shell env, wins over Meridian's pin).
|
|
20
20
|
*/
|
|
21
|
-
export declare const CANONICAL_OPUS_MODEL = "claude-opus-4-
|
|
21
|
+
export declare const CANONICAL_OPUS_MODEL = "claude-opus-4-8";
|
|
22
22
|
export declare const CANONICAL_SONNET_MODEL = "claude-sonnet-4-6";
|
|
23
23
|
export declare const CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
24
24
|
/**
|
|
@@ -134,6 +134,25 @@ export declare function resolveClaudeExecutableWithSource(deps?: ResolverDeps):
|
|
|
134
134
|
* test surface in claude-executable-resolver.test.ts).
|
|
135
135
|
*/
|
|
136
136
|
export declare function resolveClaudeExecutable(deps?: ResolverDeps): Promise<string | null>;
|
|
137
|
+
/**
|
|
138
|
+
* Synchronous subset of the resolver. Used by CLI commands
|
|
139
|
+
* (`meridian profile list`, `profileAdd`, etc.) that can't await before
|
|
140
|
+
* spawning `claude auth status`.
|
|
141
|
+
*
|
|
142
|
+
* Skips two steps that the async resolver runs:
|
|
143
|
+
* - `path-lookup` — running `which`/`where` synchronously is awkward
|
|
144
|
+
* and platform-fragile; the audit showed bundled + platform-package
|
|
145
|
+
* covers every supported install layout (npm-global, npx/bunx
|
|
146
|
+
* download, Docker, NixOS).
|
|
147
|
+
* - `legacy-cli-js` — only matters for stale Bun installs of SDK < 0.2.98.
|
|
148
|
+
*
|
|
149
|
+
* Closes the diagnostic gap from #478: `getAuthStatus` in profileCli.ts
|
|
150
|
+
* and `getClaudeAuthStatusAsync` in this file previously called
|
|
151
|
+
* `claude auth status` via shell, which fails when `claude` isn't on
|
|
152
|
+
* PATH (Stefan's case — bunx-installed meridian under systemd, no
|
|
153
|
+
* global claude). Both call sites now route through resolved paths.
|
|
154
|
+
*/
|
|
155
|
+
export declare function resolveClaudeExecutableSync(deps?: ResolverDeps): ClaudeExecutableInfo | null;
|
|
137
156
|
/**
|
|
138
157
|
* Returns the cached resolved-executable info — `null` if
|
|
139
158
|
* `resolveClaudeExecutableAsync` hasn't run yet. Used by `/health` and the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/proxy/models.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/proxy/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
package/dist/proxy/query.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export interface QueryContext {
|
|
|
34
34
|
passthroughMcp?: ReturnType<typeof createPassthroughMcpServer>;
|
|
35
35
|
/** Cleaned environment variables (API keys stripped) */
|
|
36
36
|
cleanEnv: Record<string, string | undefined>;
|
|
37
|
+
/** Per-request env overrides that must win over inherited env */
|
|
38
|
+
envOverrides?: Record<string, string | undefined>;
|
|
37
39
|
/** Whether any passthrough tools use deferred loading */
|
|
38
40
|
hasDeferredTools: boolean;
|
|
39
41
|
/** SDK session ID for resume (if continuing a session) */
|
|
@@ -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":"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,
|
|
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"}
|
package/dist/server.js
CHANGED
|
@@ -10,10 +10,11 @@ import {
|
|
|
10
10
|
runObserveHook,
|
|
11
11
|
runTransformHook,
|
|
12
12
|
startProxyServer
|
|
13
|
-
} from "./cli-
|
|
13
|
+
} from "./cli-1x5gqsqc.js";
|
|
14
14
|
import"./cli-cx463q74.js";
|
|
15
15
|
import"./cli-sry5aqdj.js";
|
|
16
16
|
import"./cli-4rqtm83g.js";
|
|
17
|
+
import"./cli-yeazzt32.js";
|
|
17
18
|
import"./cli-340h1chz.js";
|
|
18
19
|
import"./cli-rtab0qa6.js";
|
|
19
20
|
import"./cli-7k1fcprd.js";
|
package/package.json
CHANGED