@rynfar/meridian 1.44.0 → 1.45.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/README.md +4 -2
- package/dist/{cli-yeazzt32.js → cli-7bygmvmv.js} +47 -11
- package/dist/{cli-fc6mt326.js → cli-rakysex2.js} +116 -46
- package/dist/cli.js +3 -3
- package/dist/env.d.ts +16 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/{profileCli-xcmmr5w4.js → profileCli-w5gpxkyh.js} +1 -1
- package/dist/proxy/adapters/claudecode.d.ts.map +1 -1
- package/dist/proxy/adapters/droid.d.ts.map +1 -1
- package/dist/proxy/adapters/opencode.d.ts.map +1 -1
- package/dist/proxy/adapters/pi.d.ts.map +1 -1
- package/dist/proxy/models.d.ts +2 -1
- package/dist/proxy/models.d.ts.map +1 -1
- package/dist/proxy/openai.d.ts.map +1 -1
- package/dist/proxy/rateLimitStore.d.ts +5 -1
- package/dist/proxy/rateLimitStore.d.ts.map +1 -1
- package/dist/proxy/sdkFeatures.d.ts +12 -0
- package/dist/proxy/sdkFeatures.d.ts.map +1 -1
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/proxy/streamIdleGuard.d.ts +41 -0
- package/dist/proxy/streamIdleGuard.d.ts.map +1 -0
- package/dist/proxy/transforms/opencode.d.ts.map +1 -1
- package/dist/proxy/transforms/pi.d.ts.map +1 -1
- package/dist/server.js +2 -2
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -197,7 +197,7 @@ The system prompt controls are independent — any combination works:
|
|
|
197
197
|
|
|
198
198
|
The core question is **who executes the tools** — the SDK or the client?
|
|
199
199
|
|
|
200
|
-
- **Passthrough mode** (default for OpenCode) — Claude generates tool calls, but Meridian captures them and sends them back to the client for execution. The client runs the tool using its own implementation, with its own sandboxing, file tracking, and UI, then sends the result in the next request. This is how OpenCode, oh-my-opencagent (OMO), and most coding agents work — they have their own read/write/bash tools and need to stay in control of what runs on the user's machine.
|
|
200
|
+
- **Passthrough mode** (default for OpenCode and Pi) — Claude generates tool calls, but Meridian captures them and sends them back to the client for execution. The client runs the tool using its own implementation, with its own sandboxing, file tracking, and UI, then sends the result in the next request. This is how OpenCode, oh-my-opencagent (OMO), and most coding agents work — they have their own read/write/bash tools and need to stay in control of what runs on the user's machine.
|
|
201
201
|
- **Internal mode** — Claude Code handles everything. The SDK executes tools directly on the host, runs its full agent loop, and returns the final result. This is for clients that are purely chat interfaces (Open WebUI, simple API consumers) with no tool execution of their own.
|
|
202
202
|
|
|
203
203
|
Most users don't need to configure anything — the adapter sets the right mode automatically. To override:
|
|
@@ -526,6 +526,8 @@ Pi uses the `@mariozechner/pi-ai` library which supports a configurable `baseUrl
|
|
|
526
526
|
|
|
527
527
|
Pi mimics Claude Code's User-Agent, so automatic detection isn't possible. The `x-meridian-agent: pi` header in the config above tells Meridian to use the Pi adapter. Alternatively, if Pi is your only agent, you can set `MERIDIAN_DEFAULT_AGENT=pi` as an env var instead.
|
|
528
528
|
|
|
529
|
+
Pi runs in passthrough mode by default — it executes its own tools and Meridian just forwards the `tool_use` blocks. Opt out with `MERIDIAN_PASSTHROUGH=0`.
|
|
530
|
+
|
|
529
531
|
### Claude Code
|
|
530
532
|
|
|
531
533
|
Claude Code can point at Meridian like any other Anthropic API client. The
|
|
@@ -573,7 +575,7 @@ export ANTHROPIC_BASE_URL=http://127.0.0.1:3456
|
|
|
573
575
|
| [Cline](https://github.com/cline/cline) | ✅ Verified | Config (see above) — full tool support, file read/write/edit, bash, session resume |
|
|
574
576
|
| [Aider](https://github.com/paul-gauthier/aider) | ✅ Verified | Env vars — file editing, streaming; `--no-stream` broken (litellm bug) |
|
|
575
577
|
| [Open WebUI](https://github.com/open-webui/open-webui) | ✅ Verified | OpenAI-compatible endpoints — set base URL to `http://127.0.0.1:3456` |
|
|
576
|
-
| [Pi](https://github.com/mariozechner/pi-coding-agent) | ✅ Verified | models.json config (see above) —
|
|
578
|
+
| [Pi](https://github.com/mariozechner/pi-coding-agent) | ✅ Verified | models.json config (see above) — full tool support via passthrough; detected via `x-meridian-agent: pi` header |
|
|
577
579
|
| [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | ✅ Verified | `ANTHROPIC_BASE_URL` — remote clients share a Max subscription over the network; client CWD preserved in system prompt |
|
|
578
580
|
| [Continue](https://github.com/continuedev/continue) | 🔲 Untested | OpenAI-compatible endpoints should work — set `apiBase` to `http://127.0.0.1:3456` |
|
|
579
581
|
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
// src/env.ts
|
|
2
|
+
function env(suffix) {
|
|
3
|
+
return process.env[`MERIDIAN_${suffix}`] ?? process.env[`CLAUDE_PROXY_${suffix}`];
|
|
4
|
+
}
|
|
5
|
+
function envBool(suffix) {
|
|
6
|
+
const val = env(suffix);
|
|
7
|
+
return val === "1" || val === "true" || val === "yes";
|
|
8
|
+
}
|
|
9
|
+
function resolvePassthrough(defaultValue) {
|
|
10
|
+
const val = env("PASSTHROUGH");
|
|
11
|
+
if (val === "1" || val === "true" || val === "yes")
|
|
12
|
+
return true;
|
|
13
|
+
if (val === "0" || val === "false" || val === "no")
|
|
14
|
+
return false;
|
|
15
|
+
return defaultValue;
|
|
16
|
+
}
|
|
17
|
+
function envInt(suffix, defaultValue) {
|
|
18
|
+
const val = env(suffix);
|
|
19
|
+
if (!val)
|
|
20
|
+
return defaultValue;
|
|
21
|
+
const parsed = parseInt(val, 10);
|
|
22
|
+
return Number.isFinite(parsed) ? parsed : defaultValue;
|
|
23
|
+
}
|
|
24
|
+
|
|
1
25
|
// src/proxy/models.ts
|
|
2
26
|
import { exec as execCallback, execFile as execFileCallback } from "child_process";
|
|
3
27
|
import { existsSync, statSync } from "fs";
|
|
@@ -7,14 +31,16 @@ import { promisify } from "util";
|
|
|
7
31
|
var exec = promisify(execCallback);
|
|
8
32
|
var execFile = promisify(execFileCallback);
|
|
9
33
|
var STUB_SIZE_THRESHOLD = 4096;
|
|
34
|
+
var CANONICAL_FABLE_MODEL = "claude-fable-5";
|
|
10
35
|
var CANONICAL_OPUS_MODEL = "claude-opus-4-8";
|
|
11
36
|
var CANONICAL_SONNET_MODEL = "claude-sonnet-4-6";
|
|
12
37
|
var CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
13
|
-
function resolveSdkModelDefaults(
|
|
38
|
+
function resolveSdkModelDefaults(env2 = process.env) {
|
|
14
39
|
return {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
40
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: env2.MERIDIAN_DEFAULT_FABLE_MODEL ?? CANONICAL_FABLE_MODEL,
|
|
41
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: env2.MERIDIAN_DEFAULT_OPUS_MODEL ?? CANONICAL_OPUS_MODEL,
|
|
42
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: env2.MERIDIAN_DEFAULT_SONNET_MODEL ?? CANONICAL_SONNET_MODEL,
|
|
43
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: env2.MERIDIAN_DEFAULT_HAIKU_MODEL ?? CANONICAL_HAIKU_MODEL
|
|
18
44
|
};
|
|
19
45
|
}
|
|
20
46
|
var AUTH_STATUS_CACHE_TTL_MS = 60000;
|
|
@@ -25,6 +51,9 @@ var cachedAuthStatusAt = 0;
|
|
|
25
51
|
var cachedAuthStatusIsFailure = false;
|
|
26
52
|
var cachedAuthStatusPromise = null;
|
|
27
53
|
function supports1mContext(model) {
|
|
54
|
+
const override = env("1M_CONTEXT_SUPPORT");
|
|
55
|
+
if (override === "0" || override === "false" || override === "no")
|
|
56
|
+
return false;
|
|
28
57
|
if (model.includes("4-5") || model.includes("4.5"))
|
|
29
58
|
return false;
|
|
30
59
|
return true;
|
|
@@ -34,6 +63,11 @@ function mapModelToClaudeModel(model, subscriptionType, agentMode) {
|
|
|
34
63
|
return "haiku";
|
|
35
64
|
const use1m = supports1mContext(model);
|
|
36
65
|
const isSubagent = agentMode === "subagent";
|
|
66
|
+
if (model.includes("fable")) {
|
|
67
|
+
if (use1m && !isSubagent && !isExtendedContextKnownUnavailable())
|
|
68
|
+
return "fable[1m]";
|
|
69
|
+
return "fable";
|
|
70
|
+
}
|
|
37
71
|
if (model.includes("opus")) {
|
|
38
72
|
if (use1m && !isSubagent && !isExtendedContextKnownUnavailable())
|
|
39
73
|
return "opus[1m]";
|
|
@@ -60,6 +94,8 @@ function stripExtendedContext(model) {
|
|
|
60
94
|
return "opus";
|
|
61
95
|
if (model === "sonnet[1m]")
|
|
62
96
|
return "sonnet";
|
|
97
|
+
if (model === "fable[1m]")
|
|
98
|
+
return "fable";
|
|
63
99
|
return model;
|
|
64
100
|
}
|
|
65
101
|
function hasExtendedContext(model) {
|
|
@@ -219,9 +255,9 @@ function tryLegacySdkCliJs(deps) {
|
|
|
219
255
|
}
|
|
220
256
|
}
|
|
221
257
|
async function resolveClaudeExecutableWithSource(deps = DEFAULT_DEPS) {
|
|
222
|
-
const
|
|
223
|
-
if (
|
|
224
|
-
return { path:
|
|
258
|
+
const env2 = tryEnvOverride(deps);
|
|
259
|
+
if (env2)
|
|
260
|
+
return { path: env2, source: "env" };
|
|
225
261
|
const bundled = tryBundledBinary(deps);
|
|
226
262
|
if (bundled)
|
|
227
263
|
return { path: bundled, source: "bundled" };
|
|
@@ -237,9 +273,9 @@ async function resolveClaudeExecutableWithSource(deps = DEFAULT_DEPS) {
|
|
|
237
273
|
return null;
|
|
238
274
|
}
|
|
239
275
|
function resolveClaudeExecutableSync(deps = DEFAULT_DEPS) {
|
|
240
|
-
const
|
|
241
|
-
if (
|
|
242
|
-
return { path:
|
|
276
|
+
const env2 = tryEnvOverride(deps);
|
|
277
|
+
if (env2)
|
|
278
|
+
return { path: env2, source: "env" };
|
|
243
279
|
const bundled = tryBundledBinary(deps);
|
|
244
280
|
if (bundled)
|
|
245
281
|
return { path: bundled, source: "bundled" };
|
|
@@ -276,4 +312,4 @@ function isClosedControllerError(error) {
|
|
|
276
312
|
return error.message.includes("Controller is already closed");
|
|
277
313
|
}
|
|
278
314
|
|
|
279
|
-
export { resolveSdkModelDefaults, mapModelToClaudeModel, recordExtendedContextUnavailable, stripExtendedContext, hasExtendedContext, getAuthCacheInfo, getClaudeAuthStatusAsync, resolveClaudeExecutableSync, getResolvedClaudeExecutableInfo, resolveClaudeExecutableAsync, isClosedControllerError };
|
|
315
|
+
export { env, envBool, resolvePassthrough, envInt, resolveSdkModelDefaults, mapModelToClaudeModel, recordExtendedContextUnavailable, stripExtendedContext, hasExtendedContext, getAuthCacheInfo, getClaudeAuthStatusAsync, resolveClaudeExecutableSync, getResolvedClaudeExecutableInfo, resolveClaudeExecutableAsync, isClosedControllerError };
|
|
@@ -21,6 +21,9 @@ import {
|
|
|
21
21
|
themeCss
|
|
22
22
|
} from "./cli-4rqtm83g.js";
|
|
23
23
|
import {
|
|
24
|
+
env,
|
|
25
|
+
envBool,
|
|
26
|
+
envInt,
|
|
24
27
|
getAuthCacheInfo,
|
|
25
28
|
getClaudeAuthStatusAsync,
|
|
26
29
|
getResolvedClaudeExecutableInfo,
|
|
@@ -29,9 +32,10 @@ import {
|
|
|
29
32
|
mapModelToClaudeModel,
|
|
30
33
|
recordExtendedContextUnavailable,
|
|
31
34
|
resolveClaudeExecutableAsync,
|
|
35
|
+
resolvePassthrough,
|
|
32
36
|
resolveSdkModelDefaults,
|
|
33
37
|
stripExtendedContext
|
|
34
|
-
} from "./cli-
|
|
38
|
+
} from "./cli-7bygmvmv.js";
|
|
35
39
|
import {
|
|
36
40
|
checkPluginConfigured
|
|
37
41
|
} from "./cli-je60fevk.js";
|
|
@@ -1191,6 +1195,7 @@ __export(exports_sdkFeatures, {
|
|
|
1191
1195
|
updateAdapterFeatures: () => updateAdapterFeatures,
|
|
1192
1196
|
resetAdapterFeatures: () => resetAdapterFeatures,
|
|
1193
1197
|
getFeaturesForAdapter: () => getFeaturesForAdapter,
|
|
1198
|
+
getExplicitThinking: () => getExplicitThinking,
|
|
1194
1199
|
getAllFeatureConfigs: () => getAllFeatureConfigs
|
|
1195
1200
|
});
|
|
1196
1201
|
import { existsSync as existsSync5, mkdirSync as mkdirSync2, readFileSync as readFileSync4, writeFileSync as writeFileSync2, renameSync as renameSync2 } from "node:fs";
|
|
@@ -1241,6 +1246,10 @@ function getFeaturesForAdapter(adapterName) {
|
|
|
1241
1246
|
...userOverrides
|
|
1242
1247
|
};
|
|
1243
1248
|
}
|
|
1249
|
+
function getExplicitThinking(adapterName) {
|
|
1250
|
+
const explicit = readConfig()[adapterName]?.thinking;
|
|
1251
|
+
return typeof explicit === "string" && VALID_THINKING_VALUES.has(explicit) ? explicit : undefined;
|
|
1252
|
+
}
|
|
1244
1253
|
function getAllFeatureConfigs() {
|
|
1245
1254
|
const adapters = ["opencode", "crush", "forgecode", "pi", "droid", "passthrough", "openai"];
|
|
1246
1255
|
const result = {};
|
|
@@ -2376,16 +2385,16 @@ var Hono = class _Hono {
|
|
|
2376
2385
|
}
|
|
2377
2386
|
throw err;
|
|
2378
2387
|
}
|
|
2379
|
-
#dispatch(request, executionCtx,
|
|
2388
|
+
#dispatch(request, executionCtx, env2, method) {
|
|
2380
2389
|
if (method === "HEAD") {
|
|
2381
|
-
return (async () => new Response(null, await this.#dispatch(request, executionCtx,
|
|
2390
|
+
return (async () => new Response(null, await this.#dispatch(request, executionCtx, env2, "GET")))();
|
|
2382
2391
|
}
|
|
2383
|
-
const path = this.getPath(request, { env });
|
|
2392
|
+
const path = this.getPath(request, { env: env2 });
|
|
2384
2393
|
const matchResult = this.router.match(method, path);
|
|
2385
2394
|
const c = new Context(request, {
|
|
2386
2395
|
path,
|
|
2387
2396
|
matchResult,
|
|
2388
|
-
env,
|
|
2397
|
+
env: env2,
|
|
2389
2398
|
executionCtx,
|
|
2390
2399
|
notFoundHandler: this.#notFoundHandler
|
|
2391
2400
|
});
|
|
@@ -3732,11 +3741,11 @@ import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
|
3732
3741
|
// src/proxy/rateLimitStore.ts
|
|
3733
3742
|
class RateLimitStore {
|
|
3734
3743
|
entries = new Map;
|
|
3735
|
-
record(info) {
|
|
3744
|
+
record(info, observedAt = Date.now()) {
|
|
3736
3745
|
if (!info || typeof info !== "object")
|
|
3737
3746
|
return;
|
|
3738
3747
|
const key = info.rateLimitType ?? "default";
|
|
3739
|
-
this.entries.set(key, { ...info, observedAt
|
|
3748
|
+
this.entries.set(key, { ...info, observedAt });
|
|
3740
3749
|
}
|
|
3741
3750
|
getAll() {
|
|
3742
3751
|
return Array.from(this.entries.values()).sort((a, b) => b.observedAt - a.observedAt);
|
|
@@ -3753,6 +3762,62 @@ class RateLimitStore {
|
|
|
3753
3762
|
}
|
|
3754
3763
|
var rateLimitStore = new RateLimitStore;
|
|
3755
3764
|
|
|
3765
|
+
// src/proxy/streamIdleGuard.ts
|
|
3766
|
+
class UpstreamIdleError extends Error {
|
|
3767
|
+
idleMs;
|
|
3768
|
+
sinceLastMs;
|
|
3769
|
+
constructor(idleMs, sinceLastMs) {
|
|
3770
|
+
super(`upstream idle for ${sinceLastMs}ms (limit ${idleMs}ms)`);
|
|
3771
|
+
this.name = "UpstreamIdleError";
|
|
3772
|
+
this.idleMs = idleMs;
|
|
3773
|
+
this.sinceLastMs = sinceLastMs;
|
|
3774
|
+
}
|
|
3775
|
+
}
|
|
3776
|
+
var realClock = {
|
|
3777
|
+
now: () => Date.now(),
|
|
3778
|
+
setTimeout: (fn, ms) => setTimeout(fn, ms),
|
|
3779
|
+
clearTimeout: (handle) => clearTimeout(handle)
|
|
3780
|
+
};
|
|
3781
|
+
async function* guardUpstreamIdle(source, idleMs, onStall, clock = realClock) {
|
|
3782
|
+
if (idleMs <= 0) {
|
|
3783
|
+
yield* source;
|
|
3784
|
+
return;
|
|
3785
|
+
}
|
|
3786
|
+
const it = source[Symbol.asyncIterator]();
|
|
3787
|
+
let lastAt = clock.now();
|
|
3788
|
+
try {
|
|
3789
|
+
while (true) {
|
|
3790
|
+
const nextP = it.next();
|
|
3791
|
+
nextP.catch(() => {});
|
|
3792
|
+
let timer;
|
|
3793
|
+
const idle = new Promise((_, reject) => {
|
|
3794
|
+
const remaining = Math.max(0, idleMs - (clock.now() - lastAt));
|
|
3795
|
+
timer = clock.setTimeout(() => {
|
|
3796
|
+
const sinceLastMs = clock.now() - lastAt;
|
|
3797
|
+
try {
|
|
3798
|
+
onStall?.(sinceLastMs);
|
|
3799
|
+
} catch {}
|
|
3800
|
+
reject(new UpstreamIdleError(idleMs, sinceLastMs));
|
|
3801
|
+
}, remaining);
|
|
3802
|
+
});
|
|
3803
|
+
let res;
|
|
3804
|
+
try {
|
|
3805
|
+
res = await Promise.race([nextP, idle]);
|
|
3806
|
+
} finally {
|
|
3807
|
+
if (timer !== undefined)
|
|
3808
|
+
clock.clearTimeout(timer);
|
|
3809
|
+
}
|
|
3810
|
+
if (res.done)
|
|
3811
|
+
return;
|
|
3812
|
+
lastAt = clock.now();
|
|
3813
|
+
yield res.value;
|
|
3814
|
+
}
|
|
3815
|
+
} finally {
|
|
3816
|
+
const returnP = it.return?.(undefined);
|
|
3817
|
+
returnP?.catch(() => {});
|
|
3818
|
+
}
|
|
3819
|
+
}
|
|
3820
|
+
|
|
3756
3821
|
// src/proxy/oauthUsage.ts
|
|
3757
3822
|
var OAUTH_USAGE_URL = "https://api.anthropic.com/api/oauth/usage";
|
|
3758
3823
|
var OAUTH_BETA_HEADER = "oauth-2025-04-20";
|
|
@@ -3898,22 +3963,6 @@ var DEFAULT_PROXY_CONFIG = {
|
|
|
3898
3963
|
version: undefined
|
|
3899
3964
|
};
|
|
3900
3965
|
|
|
3901
|
-
// src/env.ts
|
|
3902
|
-
function env(suffix) {
|
|
3903
|
-
return process.env[`MERIDIAN_${suffix}`] ?? process.env[`CLAUDE_PROXY_${suffix}`];
|
|
3904
|
-
}
|
|
3905
|
-
function envBool(suffix) {
|
|
3906
|
-
const val = env(suffix);
|
|
3907
|
-
return val === "1" || val === "true" || val === "yes";
|
|
3908
|
-
}
|
|
3909
|
-
function envInt(suffix, defaultValue) {
|
|
3910
|
-
const val = env(suffix);
|
|
3911
|
-
if (!val)
|
|
3912
|
-
return defaultValue;
|
|
3913
|
-
const parsed = parseInt(val, 10);
|
|
3914
|
-
return Number.isFinite(parsed) ? parsed : defaultValue;
|
|
3915
|
-
}
|
|
3916
|
-
|
|
3917
3966
|
// src/proxy/transform.ts
|
|
3918
3967
|
function runTransformHook(transforms, hook, ctx, adapterName) {
|
|
3919
3968
|
return transforms.reduce((acc, transform) => {
|
|
@@ -9668,6 +9717,14 @@ function buildModelList(isMaxSubscription, now = Math.floor(Date.now() / 1000))
|
|
|
9668
9717
|
display_name: "Claude Opus 4.8",
|
|
9669
9718
|
context_window: isMaxSubscription ? 1e6 : 200000
|
|
9670
9719
|
},
|
|
9720
|
+
{
|
|
9721
|
+
id: "claude-fable-5",
|
|
9722
|
+
object: "model",
|
|
9723
|
+
created: now,
|
|
9724
|
+
owned_by: "anthropic",
|
|
9725
|
+
display_name: "Claude Fable 5",
|
|
9726
|
+
context_window: isMaxSubscription ? 1e6 : 200000
|
|
9727
|
+
},
|
|
9671
9728
|
{
|
|
9672
9729
|
id: "claude-haiku-4-5",
|
|
9673
9730
|
object: "model",
|
|
@@ -9981,8 +10038,7 @@ var openCodeTransforms = [
|
|
|
9981
10038
|
const incompatibleTools = CLAUDE_CODE_ONLY_TOOLS;
|
|
9982
10039
|
const allowedMcpTools = ALLOWED_MCP_TOOLS;
|
|
9983
10040
|
const coreToolNames = ["read", "write", "edit", "bash", "glob", "grep"];
|
|
9984
|
-
const
|
|
9985
|
-
const passthrough = !(envVal === "0" || envVal === "false" || envVal === "no");
|
|
10041
|
+
const passthrough = resolvePassthrough(true);
|
|
9986
10042
|
let sdkAgents = {};
|
|
9987
10043
|
if (Array.isArray(body.tools)) {
|
|
9988
10044
|
const taskTool = body.tools.find((t) => t.name === "task" || t.name === "Task");
|
|
@@ -10077,11 +10133,7 @@ var openCodeAdapter = {
|
|
|
10077
10133
|
return ["read", "write", "edit", "bash", "glob", "grep"];
|
|
10078
10134
|
},
|
|
10079
10135
|
usesPassthrough() {
|
|
10080
|
-
|
|
10081
|
-
if (envVal === "0" || envVal === "false" || envVal === "no") {
|
|
10082
|
-
return false;
|
|
10083
|
-
}
|
|
10084
|
-
return true;
|
|
10136
|
+
return resolvePassthrough(true);
|
|
10085
10137
|
},
|
|
10086
10138
|
supportsThinking() {
|
|
10087
10139
|
return true;
|
|
@@ -10152,8 +10204,7 @@ var DROID_ALLOWED_MCP_TOOLS = [
|
|
|
10152
10204
|
`mcp__${DROID_MCP_SERVER_NAME}__grep`
|
|
10153
10205
|
];
|
|
10154
10206
|
function resolveDroidPassthrough() {
|
|
10155
|
-
|
|
10156
|
-
return envVal === "1" || envVal === "true" || envVal === "yes";
|
|
10207
|
+
return resolvePassthrough(false);
|
|
10157
10208
|
}
|
|
10158
10209
|
var droidTransforms = [
|
|
10159
10210
|
{
|
|
@@ -10237,8 +10288,7 @@ var droidAdapter = {
|
|
|
10237
10288
|
return "";
|
|
10238
10289
|
},
|
|
10239
10290
|
usesPassthrough() {
|
|
10240
|
-
|
|
10241
|
-
return envVal === "1" || envVal === "true" || envVal === "yes";
|
|
10291
|
+
return resolvePassthrough(false);
|
|
10242
10292
|
}
|
|
10243
10293
|
};
|
|
10244
10294
|
|
|
@@ -10459,6 +10509,9 @@ var PI_ALLOWED_MCP_TOOLS = [
|
|
|
10459
10509
|
`mcp__${PI_MCP_SERVER_NAME}__glob`,
|
|
10460
10510
|
`mcp__${PI_MCP_SERVER_NAME}__grep`
|
|
10461
10511
|
];
|
|
10512
|
+
function resolvePiPassthrough() {
|
|
10513
|
+
return resolvePassthrough(true);
|
|
10514
|
+
}
|
|
10462
10515
|
var piTransforms = [
|
|
10463
10516
|
{
|
|
10464
10517
|
name: "pi-core",
|
|
@@ -10481,6 +10534,7 @@ var piTransforms = [
|
|
|
10481
10534
|
incompatibleTools: CLAUDE_CODE_ONLY_TOOLS,
|
|
10482
10535
|
allowedMcpTools: PI_ALLOWED_MCP_TOOLS,
|
|
10483
10536
|
sdkAgents: {},
|
|
10537
|
+
passthrough: resolvePiPassthrough(),
|
|
10484
10538
|
supportsThinking: true,
|
|
10485
10539
|
extractFileChangesFromToolUse
|
|
10486
10540
|
};
|
|
@@ -10549,6 +10603,9 @@ var piAdapter = {
|
|
|
10549
10603
|
buildSystemContextAddendum(_body, _sdkAgents) {
|
|
10550
10604
|
return "";
|
|
10551
10605
|
},
|
|
10606
|
+
usesPassthrough() {
|
|
10607
|
+
return resolvePassthrough(true);
|
|
10608
|
+
},
|
|
10552
10609
|
extractFileChangesFromToolUse(toolName, toolInput) {
|
|
10553
10610
|
const input = toolInput;
|
|
10554
10611
|
const filePath = input?.filePath ?? input?.file_path ?? input?.path;
|
|
@@ -10718,11 +10775,7 @@ var claudeCodeAdapter = {
|
|
|
10718
10775
|
return ["Read", "Write", "Edit", "Bash", "Glob", "Grep"];
|
|
10719
10776
|
},
|
|
10720
10777
|
usesPassthrough() {
|
|
10721
|
-
|
|
10722
|
-
if (envVal === "0" || envVal === "false" || envVal === "no") {
|
|
10723
|
-
return false;
|
|
10724
|
-
}
|
|
10725
|
-
return true;
|
|
10778
|
+
return resolvePassthrough(true);
|
|
10726
10779
|
},
|
|
10727
10780
|
supportsThinking() {
|
|
10728
10781
|
return true;
|
|
@@ -17525,6 +17578,7 @@ function storeSession(sessionId, messages, claudeSessionId, workingDirectory, sd
|
|
|
17525
17578
|
// src/proxy/server.ts
|
|
17526
17579
|
var exec2 = promisify2(execCallback);
|
|
17527
17580
|
var claudeExecutable = "";
|
|
17581
|
+
var UPSTREAM_IDLE_MS = 90000;
|
|
17528
17582
|
function credentialStoreForProfile(profile) {
|
|
17529
17583
|
if (profile.type !== "claude-max")
|
|
17530
17584
|
return;
|
|
@@ -17801,7 +17855,7 @@ function createProxyServer(config = {}) {
|
|
|
17801
17855
|
const requestSource = c.req.header("x-meridian-source")?.slice(0, 64) || undefined;
|
|
17802
17856
|
const requestedModel = typeof body.model === "string" ? body.model : "sonnet";
|
|
17803
17857
|
let model = mapModelToClaudeModel(requestedModel, authStatus?.subscriptionType, agentMode);
|
|
17804
|
-
const envOverrides = requestedModel.startsWith("claude-opus-") ? { ANTHROPIC_DEFAULT_OPUS_MODEL: requestedModel } : undefined;
|
|
17858
|
+
const envOverrides = requestedModel.startsWith("claude-opus-") ? { ANTHROPIC_DEFAULT_OPUS_MODEL: requestedModel } : requestedModel.startsWith("claude-fable-") ? { ANTHROPIC_DEFAULT_FABLE_MODEL: requestedModel } : undefined;
|
|
17805
17859
|
const cwdResolution = resolveSdkWorkingDirectory({
|
|
17806
17860
|
envOverride: process.env.MERIDIAN_WORKDIR ?? process.env.CLAUDE_PROXY_WORKDIR,
|
|
17807
17861
|
adapterCwd: adapter.extractWorkingDirectory(body),
|
|
@@ -17857,7 +17911,7 @@ function createProxyServer(config = {}) {
|
|
|
17857
17911
|
if (betaFilter.stripped.length > 0) {
|
|
17858
17912
|
plog(`[PROXY] ${requestMeta.requestId} stripped anthropic-beta(s) for Max profile: ${betaFilter.stripped.join(", ")}`);
|
|
17859
17913
|
}
|
|
17860
|
-
|
|
17914
|
+
let effort = normalizeEffort(effortHeader || body.effort || body.reasoning_effort || body.output_config?.effort);
|
|
17861
17915
|
let thinking = body.thinking || undefined;
|
|
17862
17916
|
if (thinkingHeader !== undefined) {
|
|
17863
17917
|
try {
|
|
@@ -17866,9 +17920,13 @@ function createProxyServer(config = {}) {
|
|
|
17866
17920
|
plog(`[PROXY] ${requestMeta.requestId} ignoring malformed x-opencode-thinking header: ${e instanceof Error ? e.message : String(e)}`);
|
|
17867
17921
|
}
|
|
17868
17922
|
}
|
|
17869
|
-
const { getFeaturesForAdapter: getFeaturesForAdapter2 } = (init_sdkFeatures(), __toCommonJS(exports_sdkFeatures));
|
|
17923
|
+
const { getFeaturesForAdapter: getFeaturesForAdapter2, getExplicitThinking: getExplicitThinking2 } = (init_sdkFeatures(), __toCommonJS(exports_sdkFeatures));
|
|
17870
17924
|
const sdkFeatures = getFeaturesForAdapter2(adapter.name);
|
|
17871
|
-
if (
|
|
17925
|
+
if (getExplicitThinking2(adapter.name) === "disabled") {
|
|
17926
|
+
thinking = { type: "disabled" };
|
|
17927
|
+
effort = undefined;
|
|
17928
|
+
plog(`[PROXY] ${requestMeta.requestId} thinking disabled (per-adapter setting)`);
|
|
17929
|
+
} else if (!thinking) {
|
|
17872
17930
|
if (sdkFeatures.thinking === "adaptive")
|
|
17873
17931
|
thinking = { type: "adaptive" };
|
|
17874
17932
|
else if (sdkFeatures.thinking === "enabled")
|
|
@@ -17877,6 +17935,7 @@ function createProxyServer(config = {}) {
|
|
|
17877
17935
|
const thinkingBetaStripped = betaFilter.stripped.some((b) => b.startsWith("interleaved-thinking"));
|
|
17878
17936
|
if (thinkingBetaStripped) {
|
|
17879
17937
|
thinking = { type: "disabled" };
|
|
17938
|
+
effort = undefined;
|
|
17880
17939
|
if (betaFilter.stripped.length > 0) {
|
|
17881
17940
|
plog(`[PROXY] ${requestMeta.requestId} thinking disabled (thinking beta stripped by ${getBetaPolicyFromEnv()} policy)`);
|
|
17882
17941
|
}
|
|
@@ -18799,8 +18858,15 @@ Subprocess stderr: ${stderrOutput}`;
|
|
|
18799
18858
|
const taskToolJsonBuffer = new Map;
|
|
18800
18859
|
let nextClientBlockIndex = 0;
|
|
18801
18860
|
const sdkToClientIndex = new Map;
|
|
18861
|
+
const guardedResponse = guardUpstreamIdle(response, UPSTREAM_IDLE_MS, (sinceLastMs) => claudeLog("upstream.stalled", {
|
|
18862
|
+
mode: "stream",
|
|
18863
|
+
model,
|
|
18864
|
+
sinceLastMs,
|
|
18865
|
+
streamEventsSeen,
|
|
18866
|
+
firstChunkAt: firstChunkAt ?? null
|
|
18867
|
+
}));
|
|
18802
18868
|
try {
|
|
18803
|
-
for await (const message of
|
|
18869
|
+
for await (const message of guardedResponse) {
|
|
18804
18870
|
if (streamClosed) {
|
|
18805
18871
|
break;
|
|
18806
18872
|
}
|
|
@@ -19157,7 +19223,11 @@ Subprocess stderr: ${stderrOutput}`;
|
|
|
19157
19223
|
error: errMsg,
|
|
19158
19224
|
...stderrOutput ? { stderr: stderrOutput } : {}
|
|
19159
19225
|
});
|
|
19160
|
-
const streamErr =
|
|
19226
|
+
const streamErr = error instanceof UpstreamIdleError ? {
|
|
19227
|
+
status: 504,
|
|
19228
|
+
type: "upstream_timeout",
|
|
19229
|
+
message: `Upstream stalled: no data for ${error.sinceLastMs}ms`
|
|
19230
|
+
} : classifyError(errMsg);
|
|
19161
19231
|
claudeLog("proxy.anthropic.error", { error: errMsg, classified: streamErr.type });
|
|
19162
19232
|
const sdkTerm = extractSdkTermination(errMsg);
|
|
19163
19233
|
const canRecoverAsToolUse = sdkTerm.reason === "max_turns" && passthrough && capturedToolUses.length > 0 && messageStartEmitted;
|
|
@@ -19859,7 +19929,7 @@ async function startProxyServer(config = {}) {
|
|
|
19859
19929
|
console.log(`Meridian running at http://${finalConfig.host}:${info.port}`);
|
|
19860
19930
|
console.log(`Telemetry dashboard: http://${finalConfig.host}:${info.port}/telemetry`);
|
|
19861
19931
|
const pins = resolveSdkModelDefaults();
|
|
19862
|
-
console.log(`Model pins: opus=${pins.ANTHROPIC_DEFAULT_OPUS_MODEL} sonnet=${pins.ANTHROPIC_DEFAULT_SONNET_MODEL} haiku=${pins.ANTHROPIC_DEFAULT_HAIKU_MODEL}`);
|
|
19932
|
+
console.log(`Model pins: fable=${pins.ANTHROPIC_DEFAULT_FABLE_MODEL} opus=${pins.ANTHROPIC_DEFAULT_OPUS_MODEL} sonnet=${pins.ANTHROPIC_DEFAULT_SONNET_MODEL} haiku=${pins.ANTHROPIC_DEFAULT_HAIKU_MODEL}`);
|
|
19863
19933
|
const claudeInfo = getResolvedClaudeExecutableInfo();
|
|
19864
19934
|
if (claudeInfo) {
|
|
19865
19935
|
console.log(`Claude executable: ${claudeInfo.path} (resolved via ${claudeInfo.source})`);
|
package/dist/cli.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
startProxyServer
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-rakysex2.js";
|
|
5
5
|
import"./cli-cx463q74.js";
|
|
6
6
|
import"./cli-sry5aqdj.js";
|
|
7
7
|
import"./cli-4rqtm83g.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveClaudeExecutableAsync
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-7bygmvmv.js";
|
|
11
11
|
import"./cli-340h1chz.js";
|
|
12
12
|
import"./cli-je60fevk.js";
|
|
13
13
|
import"./cli-1kbcm3yn.js";
|
|
@@ -53,7 +53,7 @@ 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-
|
|
56
|
+
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-w5gpxkyh.js");
|
|
57
57
|
const subcommand = args[1];
|
|
58
58
|
const profileId = args[2];
|
|
59
59
|
const headless = args.includes("--headless");
|
package/dist/env.d.ts
CHANGED
|
@@ -17,6 +17,22 @@ export declare function envOr(suffix: string, defaultValue: string): string;
|
|
|
17
17
|
* Resolve a boolean env var (truthy = "1", "true", "yes").
|
|
18
18
|
*/
|
|
19
19
|
export declare function envBool(suffix: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve passthrough mode from the env var (`MERIDIAN_PASSTHROUGH`, falling
|
|
22
|
+
* back to `CLAUDE_PROXY_PASSTHROUGH`), applying an adapter-specific default
|
|
23
|
+
* when the var is unset or holds an unrecognized value.
|
|
24
|
+
*
|
|
25
|
+
* Recognized: "1"/"true"/"yes" → true, "0"/"false"/"no" → false.
|
|
26
|
+
*
|
|
27
|
+
* This is the single source of truth for passthrough parsing. Each adapter's
|
|
28
|
+
* `usesPassthrough()` and its transform both call it with the same default, so
|
|
29
|
+
* they can never drift (the transform-parity tests enforce the pairing).
|
|
30
|
+
*
|
|
31
|
+
* @param defaultValue used when neither env var is set (or is unrecognized).
|
|
32
|
+
* Passthrough-by-default adapters pass `true` (opt out with `=0`); opt-in
|
|
33
|
+
* adapters pass `false` (opt in with `=1`).
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolvePassthrough(defaultValue: boolean): boolean;
|
|
20
36
|
/**
|
|
21
37
|
* Resolve an integer env var with a default.
|
|
22
38
|
*/
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEtD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG/C;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAKnE"}
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEtD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAKjE;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAKnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudecode.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/claudecode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"claudecode.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/claudecode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAiC9C,eAAO,MAAM,iBAAiB,EAAE,YA0F/B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/droid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"droid.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/droid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAyC9C,eAAO,MAAM,YAAY,EAAE,YAkF1B,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/opencode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/opencode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAS9C,eAAO,MAAM,eAAe,EAAE,YA0H7B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/pi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAyC9C,eAAO,MAAM,SAAS,EAAE,YA2HvB,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
package/dist/proxy/models.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Model mapping and Claude executable resolution.
|
|
3
3
|
*/
|
|
4
|
-
export type ClaudeModel = "sonnet" | "sonnet[1m]" | "opus" | "opus[1m]" | "haiku";
|
|
4
|
+
export type ClaudeModel = "sonnet" | "sonnet[1m]" | "opus" | "opus[1m]" | "haiku" | "fable" | "fable[1m]";
|
|
5
5
|
/**
|
|
6
6
|
* Current canonical pins for the `sonnet`/`opus`/`haiku` SDK aliases.
|
|
7
7
|
*
|
|
@@ -18,6 +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_FABLE_MODEL = "claude-fable-5";
|
|
21
22
|
export declare const CANONICAL_OPUS_MODEL = "claude-opus-4-8";
|
|
22
23
|
export declare const CANONICAL_SONNET_MODEL = "claude-sonnet-4-6";
|
|
23
24
|
export declare const CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
@@ -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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"}
|
|
@@ -48,8 +48,12 @@ declare class RateLimitStore {
|
|
|
48
48
|
* Record a rate-limit info snapshot.
|
|
49
49
|
* Last-write-wins per bucket key (rateLimitType). Older entries for the
|
|
50
50
|
* same key are overwritten — clients should treat the latest as canonical.
|
|
51
|
+
*
|
|
52
|
+
* `observedAt` defaults to the current wall clock but may be supplied
|
|
53
|
+
* explicitly so callers (and tests) can control the capture timestamp used
|
|
54
|
+
* for newest-first ordering in {@link getAll}.
|
|
51
55
|
*/
|
|
52
|
-
record(info: SDKRateLimitInfo | undefined | null): void;
|
|
56
|
+
record(info: SDKRateLimitInfo | undefined | null, observedAt?: number): void;
|
|
53
57
|
/** Snapshot all current entries, newest-first by observedAt. */
|
|
54
58
|
getAll(): RateLimitEntry[];
|
|
55
59
|
/** Snapshot a single bucket, or undefined if not yet seen. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimitStore.d.ts","sourceRoot":"","sources":["../../src/proxy/rateLimitStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,GAAG,SAAS,CAAA;AAE3F,cAAM,cAAc;IAClB,OAAO,CAAC,OAAO,CAAgD;IAE/D
|
|
1
|
+
{"version":3,"file":"rateLimitStore.d.ts","sourceRoot":"","sources":["../../src/proxy/rateLimitStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,GAAG,SAAS,CAAA;AAE3F,cAAM,cAAc;IAClB,OAAO,CAAC,OAAO,CAAgD;IAE/D;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,EAAE,UAAU,GAAE,MAAmB,GAAG,IAAI;IAMxF,gEAAgE;IAChE,MAAM,IAAI,cAAc,EAAE;IAI1B,8DAA8D;IAC9D,GAAG,CAAC,GAAG,EAAE,kBAAkB,GAAG,cAAc,GAAG,SAAS;IAIxD,2CAA2C;IAC3C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAA;AAElD,wCAAwC;AACxC,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,CAAA"}
|
|
@@ -36,6 +36,18 @@ export type FeatureConfig = Record<string, Partial<AdapterFeatures>>;
|
|
|
36
36
|
* Priority: user config > adapter defaults > global defaults
|
|
37
37
|
*/
|
|
38
38
|
export declare function getFeaturesForAdapter(adapterName: string): AdapterFeatures;
|
|
39
|
+
/**
|
|
40
|
+
* Returns the thinking value the user has *explicitly* configured for an
|
|
41
|
+
* adapter, or undefined when none is set (i.e. it falls back to defaults).
|
|
42
|
+
*
|
|
43
|
+
* The merged result from getFeaturesForAdapter() can't tell an explicit
|
|
44
|
+
* "disabled" choice apart from the default "disabled" (DEFAULT_FEATURES.thinking
|
|
45
|
+
* is "disabled"). Those two cases must behave differently: an explicit
|
|
46
|
+
* "disabled" is an authoritative "no thinking" instruction that overrides client
|
|
47
|
+
* requests, whereas the default "disabled" is a no-op fallback so clients can
|
|
48
|
+
* still request thinking per-request. See the thinking resolution in server.ts.
|
|
49
|
+
*/
|
|
50
|
+
export declare function getExplicitThinking(adapterName: string): AdapterFeatures["thinking"] | undefined;
|
|
39
51
|
/**
|
|
40
52
|
* Get the full config for all adapters (for the settings UI).
|
|
41
53
|
*/
|
|
@@ -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;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"}
|
|
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;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,SAAS,CAKhG;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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAcA,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;AAiQ7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAgsFhF;AAWD,wBAAgB,gCAAgC,IAAI,IAAI,CAavD;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmGhG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upstream-idle guard for proxied model streams.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the provider SDK's streaming async iterable and enforces a maximum gap
|
|
5
|
+
* between *real* upstream messages. If the source goes silent for longer than
|
|
6
|
+
* `idleMs` — before the first chunk (slow TTFB) or mid-stream — the guard
|
|
7
|
+
* aborts iteration and throws `UpstreamIdleError`.
|
|
8
|
+
*
|
|
9
|
+
* Why this is needed: the proxy emits downstream SSE heartbeats (`: ping`) on a
|
|
10
|
+
* fixed interval, which resets the *client's* (pi's) byte-level idle timer. A
|
|
11
|
+
* stalled upstream is therefore invisible to the client and would wedge the
|
|
12
|
+
* turn forever. This guard is the authoritative upstream-liveness check.
|
|
13
|
+
*
|
|
14
|
+
* COORDINATION CONTRACT (Pylon Orchestrator): this guard owns *model-stream*
|
|
15
|
+
* liveness. Pylon's runtime stall watchdog is only a BACKSTOP for the
|
|
16
|
+
* model-wait gap with no tool in flight, and keeps its abort threshold above
|
|
17
|
+
* this guard's idle limit (default MERIDIAN_IDLE_TIMEOUT_SECONDS = 120s) so the
|
|
18
|
+
* two layers never race to abort the same hung model. If this default rises,
|
|
19
|
+
* re-check Pylon's STALL_ABORT_MS. See
|
|
20
|
+
* pylon-orchestrator/docs/circuit/specs/stall-watchdog-tool-exempt.md.
|
|
21
|
+
*/
|
|
22
|
+
export declare class UpstreamIdleError extends Error {
|
|
23
|
+
readonly idleMs: number;
|
|
24
|
+
readonly sinceLastMs: number;
|
|
25
|
+
constructor(idleMs: number, sinceLastMs: number);
|
|
26
|
+
}
|
|
27
|
+
/** Opaque handle returned by a clock's timer scheduler. */
|
|
28
|
+
type IdleTimerHandle = ReturnType<typeof setTimeout> | number;
|
|
29
|
+
/**
|
|
30
|
+
* Time source the guard depends on. Injectable so tests can drive idle
|
|
31
|
+
* detection deterministically instead of racing the real wall clock. Defaults
|
|
32
|
+
* to the platform clock in production.
|
|
33
|
+
*/
|
|
34
|
+
export interface IdleGuardClock {
|
|
35
|
+
now(): number;
|
|
36
|
+
setTimeout(fn: () => void, ms: number): IdleTimerHandle;
|
|
37
|
+
clearTimeout(handle: IdleTimerHandle): void;
|
|
38
|
+
}
|
|
39
|
+
export declare function guardUpstreamIdle<T>(source: AsyncIterable<T>, idleMs: number, onStall?: (sinceLastMs: number) => void, clock?: IdleGuardClock): AsyncGenerator<T>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=streamIdleGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamIdleGuard.d.ts","sourceRoot":"","sources":["../../src/proxy/streamIdleGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;gBAChB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAMhD;AAED,2DAA2D;AAC3D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,MAAM,CAAA;AAE7D;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,IAAI,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;IACvD,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;CAC5C;AAQD,wBAAuB,iBAAiB,CAAC,CAAC,EACxC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,EACvC,KAAK,GAAE,cAA0B,GAChC,cAAc,CAAC,CAAC,CAAC,CA4CnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAA;AAO7D,eAAO,MAAM,kBAAkB,EAAE,SAAS,EA0FzC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/pi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/proxy/transforms/pi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,cAAc,CAAA;AA2B7D,eAAO,MAAM,YAAY,EAAE,SAAS,EA0BnC,CAAA"}
|
package/dist/server.js
CHANGED
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
runObserveHook,
|
|
12
12
|
runTransformHook,
|
|
13
13
|
startProxyServer
|
|
14
|
-
} from "./cli-
|
|
14
|
+
} from "./cli-rakysex2.js";
|
|
15
15
|
import"./cli-cx463q74.js";
|
|
16
16
|
import"./cli-sry5aqdj.js";
|
|
17
17
|
import"./cli-4rqtm83g.js";
|
|
18
|
-
import"./cli-
|
|
18
|
+
import"./cli-7bygmvmv.js";
|
|
19
19
|
import"./cli-340h1chz.js";
|
|
20
20
|
import"./cli-je60fevk.js";
|
|
21
21
|
import"./cli-1kbcm3yn.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rynfar/meridian",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.45.0",
|
|
4
4
|
"description": "Local Anthropic API powered by your Claude Max subscription. One subscription, every agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/server.js",
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"postbuild": "node scripts/fix-bun-exports.mjs && node --check dist/cli.js && node --check dist/server.js && node -e \"if(!require('fs').existsSync('dist/proxy/server.d.ts'))process.exit(1)\"",
|
|
26
26
|
"postinstall": "node ./node_modules/@anthropic-ai/claude-code/install.cjs 2>/dev/null || true",
|
|
27
27
|
"prepublishOnly": "bun run build",
|
|
28
|
-
"test": "bun test --path-ignore-patterns '**/*session-store*' --path-ignore-patterns '**/*proxy-async-ops*' --path-ignore-patterns '**/*models-auth-status*' --path-ignore-patterns '**/*proxy-context-usage-store*' --path-ignore-patterns '**/*proxy-passthrough-thinking*' --path-ignore-patterns '**/*session-recovery*' --path-ignore-patterns '**/*models.test*' && bun test src/__tests__/proxy-async-ops.test.ts && bun test src/__tests__/proxy-session-store.test.ts && bun test src/__tests__/session-store-pruning.test.ts && bun test src/__tests__/proxy-session-store-locking.test.ts && bun test src/__tests__/proxy-context-usage-store.test.ts && bun test src/__tests__/models-auth-status.test.ts && bun test src/__tests__/proxy-passthrough-thinking.test.ts && bun test src/__tests__/proxy-session-recovery.test.ts && bun test src/__tests__/models.test.ts",
|
|
28
|
+
"test": "bun test --path-ignore-patterns '**/*session-store*' --path-ignore-patterns '**/*proxy-async-ops*' --path-ignore-patterns '**/*models-auth-status*' --path-ignore-patterns '**/*proxy-context-usage-store*' --path-ignore-patterns '**/*proxy-passthrough-thinking*' --path-ignore-patterns '**/*proxy-thinking-setting*' --path-ignore-patterns '**/*session-recovery*' --path-ignore-patterns '**/*models.test*' && bun test src/__tests__/proxy-async-ops.test.ts && bun test src/__tests__/proxy-session-store.test.ts && bun test src/__tests__/session-store-pruning.test.ts && bun test src/__tests__/proxy-session-store-locking.test.ts && bun test src/__tests__/proxy-context-usage-store.test.ts && bun test src/__tests__/models-auth-status.test.ts && bun test src/__tests__/proxy-passthrough-thinking.test.ts && bun test src/__tests__/proxy-session-recovery.test.ts && bun test src/__tests__/proxy-thinking-setting.test.ts && bun test src/__tests__/models.test.ts",
|
|
29
29
|
"nix:lock": "bun2nix -o bun.nix",
|
|
30
30
|
"typecheck": "tsc --noEmit",
|
|
31
31
|
"proxy:direct": "bun run ./bin/cli.ts"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@anthropic-ai/claude-agent-sdk": "^0.2.117",
|
|
35
|
-
"@anthropic-ai/claude-code": "^2.1.
|
|
35
|
+
"@anthropic-ai/claude-code": "^2.1.198",
|
|
36
36
|
"jsonc-parser": "^3.3.1",
|
|
37
37
|
"libsql": "^0.5.29"
|
|
38
38
|
},
|