@rynfar/meridian 1.51.0 → 1.52.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 +8 -0
- package/dist/{cli-7df5eg5d.js → cli-tq3vtp0q.js} +108 -26
- package/dist/{cli-aybvv9nb.js → cli-vjeftz4z.js} +10 -2
- package/dist/cli.js +8 -4
- package/dist/{profileCli-j01rr99j.js → profileCli-s1h4vh8w.js} +1 -1
- package/dist/proxy/errors.d.ts +9 -0
- package/dist/proxy/errors.d.ts.map +1 -1
- package/dist/proxy/messages.d.ts +20 -0
- package/dist/proxy/messages.d.ts.map +1 -1
- package/dist/proxy/models.d.ts +16 -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 +4 -0
- package/dist/proxy/query.d.ts.map +1 -1
- package/dist/proxy/server.d.ts.map +1 -1
- package/dist/server.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -121,6 +121,10 @@ Then in `~/.config/opencode/opencode.json`:
|
|
|
121
121
|
# passthrough = true;
|
|
122
122
|
# defaultAgent = "opencode";
|
|
123
123
|
# sonnetModel = "sonnet";
|
|
124
|
+
# Load plugins from the Nix store (rendered to a plugins.json manifest).
|
|
125
|
+
# Point at an entry inside a packaged derivation so its deps come along.
|
|
126
|
+
# pluginConfig = [ { path = "${pkgs.my-meridian-plugin}/lib/index.js"; } ];
|
|
127
|
+
# pluginDir = "/path/to/extra/plugins";
|
|
124
128
|
};
|
|
125
129
|
# Extra env vars not covered by settings
|
|
126
130
|
# environment = {
|
|
@@ -788,6 +792,8 @@ ANTHROPIC_API_KEY=your-secret-key ANTHROPIC_BASE_URL=http://meridian-host:3456 o
|
|
|
788
792
|
| `MERIDIAN_SESSION_DIR` | `CLAUDE_PROXY_SESSION_DIR` | `~/.cache/meridian` | Directory for the persisted session store |
|
|
789
793
|
| `MERIDIAN_DEBUG` | `CLAUDE_PROXY_DEBUG` | unset | Set to `1` for verbose request/session logging |
|
|
790
794
|
| `MERIDIAN_SILENT` | `CLAUDE_PROXY_SILENT` | unset | Set to `1` to suppress startup output (used by embedding plugins) |
|
|
795
|
+
| `MERIDIAN_PLUGIN_DIR` | — | `~/.config/meridian/plugins` | Plugin auto-discovery directory |
|
|
796
|
+
| `MERIDIAN_PLUGIN_CONFIG` | — | `~/.config/meridian/plugins.json` | Plugin manifest path |
|
|
791
797
|
|
|
792
798
|
†Sonnet 1M requires Extra Usage on all plans including Max ([docs](https://code.claude.com/docs/en/model-config#extended-context)). Opus 1M is included with Max/Team/Enterprise at no extra cost.
|
|
793
799
|
|
|
@@ -880,6 +886,8 @@ npm install @rynfar/meridian-plugin-hermes-scrub
|
|
|
880
886
|
|
|
881
887
|
Paths must be absolute — the loader does not expand `~`.
|
|
882
888
|
|
|
889
|
+
Both plugin locations are configurable for the standalone CLI: `MERIDIAN_PLUGIN_DIR` overrides the auto-discovery directory and `MERIDIAN_PLUGIN_CONFIG` the manifest path (useful for Nix, containers, or running several instances with different plugin sets).
|
|
890
|
+
|
|
883
891
|
## CLI Commands
|
|
884
892
|
|
|
885
893
|
| Command | Description |
|
|
@@ -22,9 +22,11 @@ import {
|
|
|
22
22
|
themeCss
|
|
23
23
|
} from "./cli-xmweegb1.js";
|
|
24
24
|
import {
|
|
25
|
+
CANONICAL_SONNET_MODEL,
|
|
25
26
|
env,
|
|
26
27
|
envBool,
|
|
27
28
|
envInt,
|
|
29
|
+
explicitModelPin,
|
|
28
30
|
getAuthCacheInfo,
|
|
29
31
|
getClaudeAuthStatusAsync,
|
|
30
32
|
getResolvedClaudeExecutableInfo,
|
|
@@ -37,7 +39,7 @@ import {
|
|
|
37
39
|
resolvePassthrough,
|
|
38
40
|
resolveSdkModelDefaults,
|
|
39
41
|
stripExtendedContext
|
|
40
|
-
} from "./cli-
|
|
42
|
+
} from "./cli-vjeftz4z.js";
|
|
41
43
|
import {
|
|
42
44
|
getSetting
|
|
43
45
|
} from "./cli-340h1chz.js";
|
|
@@ -10179,6 +10181,11 @@ function isStaleSessionError(error) {
|
|
|
10179
10181
|
const msg = error.message;
|
|
10180
10182
|
return msg.includes("No message found with message.uuid") || msg.includes("No conversation found with session ID") || msg.includes("No conversation found to continue") || msg.includes("No conversations found to resume");
|
|
10181
10183
|
}
|
|
10184
|
+
function isBusySessionError(error, stderr) {
|
|
10185
|
+
const needle = "is currently running as a background agent";
|
|
10186
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
10187
|
+
return msg.includes(needle) || (stderr?.includes(needle) ?? false);
|
|
10188
|
+
}
|
|
10182
10189
|
function isRateLimitError(errMsg) {
|
|
10183
10190
|
const lower = errMsg.toLowerCase();
|
|
10184
10191
|
return lower.includes("429") || lower.includes("rate limit") || lower.includes("too many requests");
|
|
@@ -10459,7 +10466,7 @@ ${historyBlock}` : historyBlock;
|
|
|
10459
10466
|
messagesToSend = turns.slice(-1);
|
|
10460
10467
|
}
|
|
10461
10468
|
const result = {
|
|
10462
|
-
model: body.model ??
|
|
10469
|
+
model: body.model ?? CANONICAL_SONNET_MODEL,
|
|
10463
10470
|
messages: messagesToSend,
|
|
10464
10471
|
max_tokens: body.max_tokens ?? body.max_completion_tokens ?? 8192,
|
|
10465
10472
|
tools,
|
|
@@ -10665,6 +10672,15 @@ var FULL_CAPABILITIES = Object.freeze({
|
|
|
10665
10672
|
});
|
|
10666
10673
|
function buildModelList(isMaxSubscription, now = Math.floor(Date.now() / 1000)) {
|
|
10667
10674
|
return [
|
|
10675
|
+
{
|
|
10676
|
+
id: "claude-sonnet-5",
|
|
10677
|
+
object: "model",
|
|
10678
|
+
created: now,
|
|
10679
|
+
owned_by: "anthropic",
|
|
10680
|
+
display_name: "Claude Sonnet 5",
|
|
10681
|
+
context_window: 200000,
|
|
10682
|
+
capabilities: FULL_CAPABILITIES
|
|
10683
|
+
},
|
|
10668
10684
|
{
|
|
10669
10685
|
id: "claude-sonnet-4-6",
|
|
10670
10686
|
object: "model",
|
|
@@ -10780,6 +10796,27 @@ function getLastUserMessage(messages) {
|
|
|
10780
10796
|
}
|
|
10781
10797
|
return messages.slice(-1);
|
|
10782
10798
|
}
|
|
10799
|
+
function frameReplayTurns(turns) {
|
|
10800
|
+
const nonEmpty = turns.filter((t) => t.text);
|
|
10801
|
+
const joined = nonEmpty.map((t) => t.text).join(`
|
|
10802
|
+
|
|
10803
|
+
`);
|
|
10804
|
+
if (nonEmpty.length < 2)
|
|
10805
|
+
return joined;
|
|
10806
|
+
const last = nonEmpty[nonEmpty.length - 1];
|
|
10807
|
+
if (last.role !== "user")
|
|
10808
|
+
return joined;
|
|
10809
|
+
const history = nonEmpty.slice(0, -1).map((t) => t.text).join(`
|
|
10810
|
+
|
|
10811
|
+
`);
|
|
10812
|
+
return `<conversation_history>
|
|
10813
|
+
${history}
|
|
10814
|
+
</conversation_history>
|
|
10815
|
+
|
|
10816
|
+
` + `The above is a replay of your prior conversation with this user — the original session could not be resumed. ` + `It is context only: do not continue or imitate its transcript format, do not write "[Assistant: ...]" markers, ` + `and never invent tool output — use your actual tools when action is needed. ` + `Respond only as the assistant to the user's message below.
|
|
10817
|
+
|
|
10818
|
+
` + last.text;
|
|
10819
|
+
}
|
|
10783
10820
|
function stripNonStandardStreamFields(event) {
|
|
10784
10821
|
if (event && typeof event === "object") {
|
|
10785
10822
|
const e = event;
|
|
@@ -17852,6 +17889,7 @@ function buildQueryOptions(ctx, abortController) {
|
|
|
17852
17889
|
resumeSessionId,
|
|
17853
17890
|
isUndo,
|
|
17854
17891
|
undoRollbackUuid,
|
|
17892
|
+
forkSession,
|
|
17855
17893
|
sdkHooks,
|
|
17856
17894
|
blockedTools,
|
|
17857
17895
|
incompatibleTools,
|
|
@@ -17891,7 +17929,6 @@ function buildQueryOptions(ctx, abortController) {
|
|
|
17891
17929
|
...resolveSystemPrompt(systemContext, passthrough, settingSources, codeSystemPrompt, clientSystemPrompt, cwdNote),
|
|
17892
17930
|
...passthrough ? {
|
|
17893
17931
|
tools: [],
|
|
17894
|
-
settingSources: [],
|
|
17895
17932
|
disallowedTools: [...allBlockedTools],
|
|
17896
17933
|
...passthroughMcp ? {
|
|
17897
17934
|
allowedTools: [...passthroughMcp.toolNames],
|
|
@@ -17903,13 +17940,11 @@ function buildQueryOptions(ctx, abortController) {
|
|
|
17903
17940
|
mcpServers: { [mcpServerName]: createOpencodeMcpServer() }
|
|
17904
17941
|
},
|
|
17905
17942
|
plugins: [],
|
|
17906
|
-
|
|
17907
|
-
|
|
17908
|
-
|
|
17909
|
-
|
|
17910
|
-
|
|
17911
|
-
}
|
|
17912
|
-
} : {},
|
|
17943
|
+
settings: {
|
|
17944
|
+
autoMemoryEnabled: ctx.memory ?? true,
|
|
17945
|
+
autoDreamEnabled: ctx.dreaming ?? false
|
|
17946
|
+
},
|
|
17947
|
+
settingSources: settingSources ?? [],
|
|
17913
17948
|
...onStderr ? { stderr: onStderr } : {},
|
|
17914
17949
|
env: {
|
|
17915
17950
|
...sharedMemory ? stripConfigDir(cleanEnv) : cleanEnv,
|
|
@@ -17921,7 +17956,8 @@ function buildQueryOptions(ctx, abortController) {
|
|
|
17921
17956
|
},
|
|
17922
17957
|
...Object.keys(sdkAgents).length > 0 ? { agents: sdkAgents } : {},
|
|
17923
17958
|
...resumeSessionId ? { resume: resumeSessionId } : {},
|
|
17924
|
-
...isUndo
|
|
17959
|
+
...isUndo || forkSession ? { forkSession: true } : {},
|
|
17960
|
+
...isUndo && undoRollbackUuid ? { resumeSessionAt: undoRollbackUuid } : {},
|
|
17925
17961
|
...sdkHooks ? { hooks: sdkHooks } : {},
|
|
17926
17962
|
...effort ? { effort } : {},
|
|
17927
17963
|
...thinking ? { thinking } : {},
|
|
@@ -19019,15 +19055,13 @@ function buildFreshPrompt(messages, sanitizeOpts = {}) {
|
|
|
19019
19055
|
yield msg;
|
|
19020
19056
|
}();
|
|
19021
19057
|
}
|
|
19022
|
-
return messages.map((m) => {
|
|
19058
|
+
return frameReplayTurns(messages.map((m) => {
|
|
19023
19059
|
if (m.role === "assistant") {
|
|
19024
19060
|
const assistantText = flattenAssistantContent(m.content);
|
|
19025
|
-
return assistantText ? `[Assistant: ${assistantText}]` : "";
|
|
19061
|
+
return { role: "assistant", text: assistantText ? `[Assistant: ${assistantText}]` : "" };
|
|
19026
19062
|
}
|
|
19027
|
-
return flattenUserContent(m.content, sanitizeOpts, toolIndex);
|
|
19028
|
-
})
|
|
19029
|
-
|
|
19030
|
-
`) || "";
|
|
19063
|
+
return { role: "user", text: flattenUserContent(m.content, sanitizeOpts, toolIndex) };
|
|
19064
|
+
}));
|
|
19031
19065
|
}
|
|
19032
19066
|
var proxyLogSilent = false;
|
|
19033
19067
|
function plog(message) {
|
|
@@ -19090,6 +19124,8 @@ function createProxyServer(config = {}) {
|
|
|
19090
19124
|
const sessionMcpCache = new LRUMap(getMaxSessionsLimit());
|
|
19091
19125
|
const PENDING_STORE_WAIT_MS = 3000;
|
|
19092
19126
|
const PENDING_STORE_AUTO_RESOLVE_MS = 1e4;
|
|
19127
|
+
const BUSY_SESSION_MAX_RETRIES = 3;
|
|
19128
|
+
const BUSY_SESSION_RETRY_DELAY_MS = parseInt(process.env.MERIDIAN_BUSY_RETRY_DELAY_MS ?? "500", 10);
|
|
19093
19129
|
const pendingSessionStores = new Map;
|
|
19094
19130
|
const registerPendingStore = (key) => {
|
|
19095
19131
|
let resolveFn = () => {};
|
|
@@ -19198,7 +19234,7 @@ function createProxyServer(config = {}) {
|
|
|
19198
19234
|
const requestSource = c.req.header("x-meridian-source")?.slice(0, 64) || undefined;
|
|
19199
19235
|
const requestedModel = typeof body.model === "string" ? body.model : "sonnet";
|
|
19200
19236
|
let model = mapModelToClaudeModel(requestedModel, authStatus?.subscriptionType, agentMode);
|
|
19201
|
-
const envOverrides =
|
|
19237
|
+
const envOverrides = explicitModelPin(requestedModel);
|
|
19202
19238
|
const cwdResolution = resolveSdkWorkingDirectory({
|
|
19203
19239
|
envOverride: process.env.MERIDIAN_WORKDIR ?? process.env.CLAUDE_PROXY_WORKDIR,
|
|
19204
19240
|
adapterCwd: adapter.extractWorkingDirectory(body),
|
|
@@ -19407,17 +19443,18 @@ function createProxyServer(config = {}) {
|
|
|
19407
19443
|
}
|
|
19408
19444
|
} else {
|
|
19409
19445
|
const toolIndex = buildToolUseIndex(allMessages ?? messagesToConvert ?? []);
|
|
19410
|
-
|
|
19446
|
+
const promptTurns = (messagesToConvert ?? []).map((m) => {
|
|
19411
19447
|
if (m.role === "assistant") {
|
|
19412
19448
|
if (isResume)
|
|
19413
|
-
return "";
|
|
19449
|
+
return { role: "assistant", text: "" };
|
|
19414
19450
|
const assistantText = flattenAssistantContent(m.content);
|
|
19415
|
-
return assistantText ? `[Assistant: ${assistantText}]` : "";
|
|
19451
|
+
return { role: "assistant", text: assistantText ? `[Assistant: ${assistantText}]` : "" };
|
|
19416
19452
|
}
|
|
19417
|
-
return flattenUserContent(m.content, sanitizeOpts, toolIndex);
|
|
19418
|
-
})
|
|
19453
|
+
return { role: "user", text: flattenUserContent(m.content, sanitizeOpts, toolIndex) };
|
|
19454
|
+
});
|
|
19455
|
+
textPrompt = isResume ? promptTurns.map((t) => t.text).filter(Boolean).join(`
|
|
19419
19456
|
|
|
19420
|
-
`) || "";
|
|
19457
|
+
`) || "" : frameReplayTurns(promptTurns);
|
|
19421
19458
|
}
|
|
19422
19459
|
const passthrough = adapter.instancePassthrough !== undefined ? adapter.instancePassthrough : pipelineCtx.passthrough !== undefined ? pipelineCtx.passthrough : envBool("PASSTHROUGH");
|
|
19423
19460
|
const settingSources = envBool("LOAD_CONTEXT") || sdkFeatures.claudeMd === "full" ? ["user", "project"] : sdkFeatures.claudeMd === "project" ? ["project"] : pipelineCtx.settingSources ?? [];
|
|
@@ -19543,7 +19580,7 @@ function createProxyServer(config = {}) {
|
|
|
19543
19580
|
input: toolInput
|
|
19544
19581
|
});
|
|
19545
19582
|
}
|
|
19546
|
-
if (
|
|
19583
|
+
if (earlyStopEnabled && turnGenerating && !requestAbort.controller.signal.aborted) {
|
|
19547
19584
|
await holdDenyUntilTurnEnd();
|
|
19548
19585
|
}
|
|
19549
19586
|
if (isExactDuplicate) {
|
|
@@ -19600,8 +19637,12 @@ function createProxyServer(config = {}) {
|
|
|
19600
19637
|
}
|
|
19601
19638
|
let tokenRefreshed = false;
|
|
19602
19639
|
let didFreshBaseRetry = false;
|
|
19640
|
+
let busySessionRetries = 0;
|
|
19641
|
+
let busySessionFork = false;
|
|
19603
19642
|
while (true) {
|
|
19604
19643
|
let didYieldContent = false;
|
|
19644
|
+
const attemptStderrStart = stderrLines.length;
|
|
19645
|
+
turnGenerating = true;
|
|
19605
19646
|
try {
|
|
19606
19647
|
for await (const event of query(buildQueryOptions({
|
|
19607
19648
|
prompt: makePrompt(),
|
|
@@ -19620,6 +19661,7 @@ function createProxyServer(config = {}) {
|
|
|
19620
19661
|
resumeSessionId,
|
|
19621
19662
|
isUndo,
|
|
19622
19663
|
undoRollbackUuid,
|
|
19664
|
+
forkSession: busySessionFork || undefined,
|
|
19623
19665
|
sdkHooks,
|
|
19624
19666
|
blockedTools: pipelineCtx.blockedTools,
|
|
19625
19667
|
incompatibleTools: pipelineCtx.incompatibleTools,
|
|
@@ -19654,8 +19696,25 @@ function createProxyServer(config = {}) {
|
|
|
19654
19696
|
return;
|
|
19655
19697
|
} catch (error) {
|
|
19656
19698
|
const errMsg = error instanceof Error ? error.message : String(error);
|
|
19699
|
+
releaseHeldDenies("non_stream_attempt_error");
|
|
19657
19700
|
if (didYieldContent)
|
|
19658
19701
|
throw error;
|
|
19702
|
+
if (resumeSessionId && isBusySessionError(error, stderrLines.slice(attemptStderrStart).join(`
|
|
19703
|
+
`))) {
|
|
19704
|
+
if (busySessionRetries < BUSY_SESSION_MAX_RETRIES) {
|
|
19705
|
+
busySessionRetries++;
|
|
19706
|
+
claudeLog("session.busy_retry", { mode: "non_stream", attempt: busySessionRetries, resumeSessionId });
|
|
19707
|
+
plog(`[PROXY] ${requestMeta.requestId} session busy (bg agent), retrying resume ${busySessionRetries}/${BUSY_SESSION_MAX_RETRIES}`);
|
|
19708
|
+
await new Promise((resolve3) => setTimeout(resolve3, BUSY_SESSION_RETRY_DELAY_MS * busySessionRetries));
|
|
19709
|
+
continue;
|
|
19710
|
+
}
|
|
19711
|
+
if (!busySessionFork) {
|
|
19712
|
+
busySessionFork = true;
|
|
19713
|
+
claudeLog("session.busy_fork", { mode: "non_stream", resumeSessionId });
|
|
19714
|
+
plog(`[PROXY] ${requestMeta.requestId} session still busy after ${BUSY_SESSION_MAX_RETRIES} retries — forking session`);
|
|
19715
|
+
continue;
|
|
19716
|
+
}
|
|
19717
|
+
}
|
|
19659
19718
|
if (isStaleSessionError(error)) {
|
|
19660
19719
|
claudeLog("session.stale_uuid_retry", {
|
|
19661
19720
|
mode: "non_stream",
|
|
@@ -19839,6 +19898,7 @@ function createProxyServer(config = {}) {
|
|
|
19839
19898
|
}
|
|
19840
19899
|
}
|
|
19841
19900
|
if (message.type === "assistant") {
|
|
19901
|
+
releaseHeldDenies("assistant_message");
|
|
19842
19902
|
assistantMessages += 1;
|
|
19843
19903
|
if (message.uuid) {
|
|
19844
19904
|
sdkUuidMap.push(message.uuid);
|
|
@@ -19899,6 +19959,7 @@ function createProxyServer(config = {}) {
|
|
|
19899
19959
|
}
|
|
19900
19960
|
}
|
|
19901
19961
|
}
|
|
19962
|
+
releaseHeldDenies("non_stream_loop_exit");
|
|
19902
19963
|
claudeLog("upstream.completed", {
|
|
19903
19964
|
mode: "non_stream",
|
|
19904
19965
|
model,
|
|
@@ -19918,6 +19979,7 @@ function createProxyServer(config = {}) {
|
|
|
19918
19979
|
plog(`[PROXY] ${requestMeta.requestId} discovered=${discoveredTools.size} (${newNames}) session_total=${allNames.length}`);
|
|
19919
19980
|
}
|
|
19920
19981
|
} catch (error) {
|
|
19982
|
+
releaseHeldDenies("non_stream_error");
|
|
19921
19983
|
const stderrOutput = stderrLines.join(`
|
|
19922
19984
|
`).trim();
|
|
19923
19985
|
if (stderrOutput && error instanceof Error && !error.message.includes(stderrOutput)) {
|
|
@@ -20158,8 +20220,11 @@ data: ${JSON.stringify({ type: "content_block_stop", index: idx })}
|
|
|
20158
20220
|
}
|
|
20159
20221
|
let tokenRefreshed = false;
|
|
20160
20222
|
let didFreshBaseRetry = false;
|
|
20223
|
+
let busySessionRetries = 0;
|
|
20224
|
+
let busySessionFork = false;
|
|
20161
20225
|
while (true) {
|
|
20162
20226
|
let didYieldClientEvent = false;
|
|
20227
|
+
const attemptStderrStart = stderrLines.length;
|
|
20163
20228
|
try {
|
|
20164
20229
|
for await (const event of query(buildQueryOptions({
|
|
20165
20230
|
prompt: makePrompt(),
|
|
@@ -20178,6 +20243,7 @@ data: ${JSON.stringify({ type: "content_block_stop", index: idx })}
|
|
|
20178
20243
|
resumeSessionId,
|
|
20179
20244
|
isUndo,
|
|
20180
20245
|
undoRollbackUuid,
|
|
20246
|
+
forkSession: busySessionFork || undefined,
|
|
20181
20247
|
sdkHooks,
|
|
20182
20248
|
blockedTools: pipelineCtx.blockedTools,
|
|
20183
20249
|
incompatibleTools: pipelineCtx.incompatibleTools,
|
|
@@ -20214,6 +20280,22 @@ data: ${JSON.stringify({ type: "content_block_stop", index: idx })}
|
|
|
20214
20280
|
const errMsg = error instanceof Error ? error.message : String(error);
|
|
20215
20281
|
if (didYieldClientEvent)
|
|
20216
20282
|
throw error;
|
|
20283
|
+
if (resumeSessionId && isBusySessionError(error, stderrLines.slice(attemptStderrStart).join(`
|
|
20284
|
+
`))) {
|
|
20285
|
+
if (busySessionRetries < BUSY_SESSION_MAX_RETRIES) {
|
|
20286
|
+
busySessionRetries++;
|
|
20287
|
+
claudeLog("session.busy_retry", { mode: "stream", attempt: busySessionRetries, resumeSessionId });
|
|
20288
|
+
plog(`[PROXY] ${requestMeta.requestId} session busy (bg agent), retrying resume ${busySessionRetries}/${BUSY_SESSION_MAX_RETRIES}`);
|
|
20289
|
+
await new Promise((resolve3) => setTimeout(resolve3, BUSY_SESSION_RETRY_DELAY_MS * busySessionRetries));
|
|
20290
|
+
continue;
|
|
20291
|
+
}
|
|
20292
|
+
if (!busySessionFork) {
|
|
20293
|
+
busySessionFork = true;
|
|
20294
|
+
claudeLog("session.busy_fork", { mode: "stream", resumeSessionId });
|
|
20295
|
+
plog(`[PROXY] ${requestMeta.requestId} session still busy after ${BUSY_SESSION_MAX_RETRIES} retries — forking session`);
|
|
20296
|
+
continue;
|
|
20297
|
+
}
|
|
20298
|
+
}
|
|
20217
20299
|
if (isStaleSessionError(error)) {
|
|
20218
20300
|
claudeLog("session.stale_uuid_retry", {
|
|
20219
20301
|
mode: "stream",
|
|
@@ -21373,7 +21455,7 @@ data: ${JSON.stringify({
|
|
|
21373
21455
|
}
|
|
21374
21456
|
const completionId = `chatcmpl-${randomUUID()}`;
|
|
21375
21457
|
const created = Math.floor(Date.now() / 1000);
|
|
21376
|
-
const model = typeof rawBody.model === "string" && rawBody.model ? rawBody.model :
|
|
21458
|
+
const model = typeof rawBody.model === "string" && rawBody.model ? rawBody.model : CANONICAL_SONNET_MODEL;
|
|
21377
21459
|
const { getFeaturesForAdapter: getFeaturesForAdapter2 } = (init_sdkFeatures(), __toCommonJS(exports_sdkFeatures));
|
|
21378
21460
|
const sdkFeatures = getFeaturesForAdapter2("openai");
|
|
21379
21461
|
if (!anthropicBody.stream) {
|
|
@@ -39,7 +39,7 @@ var execFile = promisify(execFileCallback);
|
|
|
39
39
|
var STUB_SIZE_THRESHOLD = 4096;
|
|
40
40
|
var CANONICAL_FABLE_MODEL = "claude-fable-5";
|
|
41
41
|
var CANONICAL_OPUS_MODEL = "claude-opus-4-8";
|
|
42
|
-
var CANONICAL_SONNET_MODEL = "claude-sonnet-
|
|
42
|
+
var CANONICAL_SONNET_MODEL = "claude-sonnet-5";
|
|
43
43
|
var CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
44
44
|
function resolveSdkModelDefaults(env2 = process.env) {
|
|
45
45
|
return {
|
|
@@ -49,6 +49,14 @@ function resolveSdkModelDefaults(env2 = process.env) {
|
|
|
49
49
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: env2.MERIDIAN_DEFAULT_HAIKU_MODEL ?? CANONICAL_HAIKU_MODEL
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
+
function explicitModelPin(requestedModel) {
|
|
53
|
+
const base = requestedModel.trim().toLowerCase().replace(/\[1m\]$/, "");
|
|
54
|
+
const match = /^claude-(sonnet|opus|haiku|fable|mythos)-\d[\w.-]*$/.exec(base);
|
|
55
|
+
if (!match)
|
|
56
|
+
return;
|
|
57
|
+
const tier = match[1] === "mythos" ? "FABLE" : match[1].toUpperCase();
|
|
58
|
+
return { [`ANTHROPIC_DEFAULT_${tier}_MODEL`]: base };
|
|
59
|
+
}
|
|
52
60
|
var AUTH_STATUS_CACHE_TTL_MS = 60000;
|
|
53
61
|
var AUTH_STATUS_FAILURE_TTL_MS = 5000;
|
|
54
62
|
var cachedAuthStatus = null;
|
|
@@ -318,4 +326,4 @@ function isClosedControllerError(error) {
|
|
|
318
326
|
return error.message.includes("Controller is already closed");
|
|
319
327
|
}
|
|
320
328
|
|
|
321
|
-
export { env, envBool, resolvePassthrough, envInt, init_env, resolveSdkModelDefaults, mapModelToClaudeModel, recordExtendedContextUnavailable, stripExtendedContext, hasExtendedContext, getAuthCacheInfo, getClaudeAuthStatusAsync, resolveClaudeExecutableSync, getResolvedClaudeExecutableInfo, resolveClaudeExecutableAsync, isClosedControllerError };
|
|
329
|
+
export { env, envBool, resolvePassthrough, envInt, init_env, CANONICAL_SONNET_MODEL, resolveSdkModelDefaults, explicitModelPin, mapModelToClaudeModel, recordExtendedContextUnavailable, stripExtendedContext, hasExtendedContext, getAuthCacheInfo, getClaudeAuthStatusAsync, resolveClaudeExecutableSync, getResolvedClaudeExecutableInfo, resolveClaudeExecutableAsync, isClosedControllerError };
|
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-tq3vtp0q.js";
|
|
5
5
|
import"./cli-f0yqy2d2.js";
|
|
6
6
|
import"./cli-sry5aqdj.js";
|
|
7
7
|
import"./cli-xmweegb1.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveClaudeExecutableAsync
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-vjeftz4z.js";
|
|
11
11
|
import"./cli-340h1chz.js";
|
|
12
12
|
import"./cli-je60fevk.js";
|
|
13
13
|
import"./cli-aq5zz92m.js";
|
|
@@ -48,12 +48,14 @@ Environment variables:
|
|
|
48
48
|
MERIDIAN_HOST Host to bind to (default: 127.0.0.1)
|
|
49
49
|
MERIDIAN_PASSTHROUGH Enable passthrough mode (tools forwarded to client)
|
|
50
50
|
MERIDIAN_IDLE_TIMEOUT_SECONDS Idle timeout in seconds (default: 120)
|
|
51
|
+
MERIDIAN_PLUGIN_DIR Plugin auto-discovery directory (default: ~/.config/meridian/plugins)
|
|
52
|
+
MERIDIAN_PLUGIN_CONFIG Plugin manifest path (default: ~/.config/meridian/plugins.json)
|
|
51
53
|
|
|
52
54
|
See https://github.com/rynfar/meridian for full documentation.`);
|
|
53
55
|
process.exit(0);
|
|
54
56
|
}
|
|
55
57
|
if (args[0] === "profile") {
|
|
56
|
-
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-
|
|
58
|
+
const { profileAdd, profileAddOauthToken, profileList, profileRemove, profileSwitch, profileLogin, profileHelp } = await import("./profileCli-s1h4vh8w.js");
|
|
57
59
|
const subcommand = args[1];
|
|
58
60
|
const profileId = args[2];
|
|
59
61
|
const headless = args.includes("--headless");
|
|
@@ -126,6 +128,8 @@ var execFile = promisify(execFileCallback);
|
|
|
126
128
|
var port = parseInt(process.env.MERIDIAN_PORT ?? process.env.CLAUDE_PROXY_PORT ?? "3456", 10);
|
|
127
129
|
var host = process.env.MERIDIAN_HOST ?? process.env.CLAUDE_PROXY_HOST ?? "127.0.0.1";
|
|
128
130
|
var idleTimeoutSeconds = parseInt(process.env.MERIDIAN_IDLE_TIMEOUT_SECONDS ?? process.env.CLAUDE_PROXY_IDLE_TIMEOUT_SECONDS ?? "120", 10);
|
|
131
|
+
var pluginDir = process.env.MERIDIAN_PLUGIN_DIR;
|
|
132
|
+
var pluginConfigPath = process.env.MERIDIAN_PLUGIN_CONFIG;
|
|
129
133
|
var profiles;
|
|
130
134
|
var defaultProfile;
|
|
131
135
|
try {
|
|
@@ -170,7 +174,7 @@ async function runCli(start = startProxyServer, runAuthCheck = async () => {
|
|
|
170
174
|
const { enableDiskProfileDiscovery } = await import("./profiles-84hnbd6c.js");
|
|
171
175
|
enableDiskProfileDiscovery();
|
|
172
176
|
}
|
|
173
|
-
const proxy = await start({ port, host, idleTimeoutSeconds, profiles, defaultProfile, version, installProcessErrorHandlers: true });
|
|
177
|
+
const proxy = await start({ port, host, idleTimeoutSeconds, pluginDir, pluginConfigPath, profiles, defaultProfile, version, installProcessErrorHandlers: true });
|
|
174
178
|
proxy.server.on("error", (error) => {
|
|
175
179
|
if (error.code === "EADDRINUSE") {
|
|
176
180
|
process.exit(1);
|
package/dist/proxy/errors.d.ts
CHANGED
|
@@ -37,6 +37,15 @@ export declare function isExpiredTokenError(errMsg: string): boolean;
|
|
|
37
37
|
* the referenced message or conversation (expired, evicted server-side, etc.).
|
|
38
38
|
*/
|
|
39
39
|
export declare function isStaleSessionError(error: unknown): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Detect the CLI's bg-agent resume refusal (#630). With
|
|
42
|
+
* CLAUDE_CODE_SESSION_KIND=bg (#628 scratchpad suppression) every SDK
|
|
43
|
+
* session is registered as a running background agent; a --resume spawned
|
|
44
|
+
* while the previous subprocess for that session is still exiting is
|
|
45
|
+
* refused with exit 1. The refusal text arrives on stderr — the SDK error
|
|
46
|
+
* itself only carries the exit code — so callers pass captured stderr too.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isBusySessionError(error: unknown, stderr?: string): boolean;
|
|
40
49
|
/**
|
|
41
50
|
* Quick check whether an error message indicates a rate limit.
|
|
42
51
|
* Used by server.ts to decide whether to retry with a smaller context window.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/proxy/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA+G7D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAM3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO3D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAAA;IAC5D,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;wCAEoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAuBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAuCpE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,cAAc,EACjB,GAAG,EAAE;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GACA,MAAM,CAYR"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/proxy/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA+G7D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAM3D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO3D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAI3E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAAA;IAC5D,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;wCAEoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAuBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAuCpE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,cAAc,EACjB,GAAG,EAAE;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GACA,MAAM,CAYR"}
|
package/dist/proxy/messages.d.ts
CHANGED
|
@@ -32,6 +32,26 @@ export declare function getLastUserMessage(messages: Array<{
|
|
|
32
32
|
role: string;
|
|
33
33
|
content: any;
|
|
34
34
|
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Frame a fresh-session replay so the model cannot pattern-continue it (#619).
|
|
37
|
+
*
|
|
38
|
+
* When a conversation falls off the resume path, its full history is
|
|
39
|
+
* flattened into one text prompt. Even with the anti-imitation turn markers
|
|
40
|
+
* (plain user turns, bracketed `[Assistant: ...]` — the #496 fix), a long
|
|
41
|
+
* replayed transcript still invites the model to continue the *format*
|
|
42
|
+
* rather than answer the user: self-played turns, confabulated tool output.
|
|
43
|
+
*
|
|
44
|
+
* This wraps everything before the final user turn in an explicit
|
|
45
|
+
* `<conversation_history>` envelope with a context-only instruction, and
|
|
46
|
+
* presents the final user message separately as the live prompt — mirroring
|
|
47
|
+
* the structure the OpenAI-compat path has always used. Single-turn prompts
|
|
48
|
+
* and histories that don't end with a user turn are returned as a plain
|
|
49
|
+
* join (nothing to separate).
|
|
50
|
+
*/
|
|
51
|
+
export declare function frameReplayTurns(turns: Array<{
|
|
52
|
+
role: string;
|
|
53
|
+
text: string;
|
|
54
|
+
}>): string;
|
|
35
55
|
/**
|
|
36
56
|
* Remove fields the Claude Agent SDK attaches to streamed events that are not
|
|
37
57
|
* part of the public Anthropic streaming schema.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/proxy/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAiBrD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAM7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAKzH;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAU3D;AAED,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,aAAyC,CAAA;AAEtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iCAAiC,CAC/C,CAAC,SAAS;IAAE,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,EAC3C,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAyCtB;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAyCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,GAC9C,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAyB3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAO3D"}
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/proxy/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAiBrD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAM7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAKzH;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAerF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAU3D;AAED,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,aAAyC,CAAA;AAEtE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iCAAiC,CAC/C,CAAC,SAAS;IAAE,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,EAC3C,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAyCtB;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,8EAA8E;IAC9E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CACnC;AAyCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,GAC9C,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAyB3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAO3D"}
|
package/dist/proxy/models.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export type ClaudeModel = "sonnet" | "sonnet[1m]" | "opus" | "opus[1m]" | "haiku
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const CANONICAL_FABLE_MODEL = "claude-fable-5";
|
|
22
22
|
export declare const CANONICAL_OPUS_MODEL = "claude-opus-4-8";
|
|
23
|
-
export declare const CANONICAL_SONNET_MODEL = "claude-sonnet-
|
|
23
|
+
export declare const CANONICAL_SONNET_MODEL = "claude-sonnet-5";
|
|
24
24
|
export declare const CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
25
25
|
/**
|
|
26
26
|
* Build the ANTHROPIC_DEFAULT_{TYPE}_MODEL env record to apply before the
|
|
@@ -32,6 +32,21 @@ export declare const CANONICAL_HAIKU_MODEL = "claude-haiku-4-5";
|
|
|
32
32
|
* test files).
|
|
33
33
|
*/
|
|
34
34
|
export declare function resolveSdkModelDefaults(env?: NodeJS.ProcessEnv): Record<string, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Per-request tier pin for explicitly versioned model ids (#631).
|
|
37
|
+
*
|
|
38
|
+
* mapModelToClaudeModel collapses every family request to a tier alias
|
|
39
|
+
* ("sonnet"/"opus"/...) that the SDK resolves via ANTHROPIC_DEFAULT_*_MODEL.
|
|
40
|
+
* With canonical pins alone, an explicit `claude-sonnet-5` silently resolved
|
|
41
|
+
* to the canonical sonnet — a proxy must never substitute models, so a
|
|
42
|
+
* fully-versioned id overrides its tier's pin for that request only.
|
|
43
|
+
*
|
|
44
|
+
* Bare aliases ("sonnet", "opus[1m]") and unversioned family names return
|
|
45
|
+
* undefined and keep the canonical pins. Mythos rides the fable tier
|
|
46
|
+
* (claude-mythos-5 shares it — see mapModelToClaudeModel). A trailing [1m]
|
|
47
|
+
* suffix is stripped; extended context stays alias-level.
|
|
48
|
+
*/
|
|
49
|
+
export declare function explicitModelPin(requestedModel: string): Record<string, string> | undefined;
|
|
35
50
|
export interface ClaudeAuthStatus {
|
|
36
51
|
loggedIn?: boolean;
|
|
37
52
|
subscriptionType?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/proxy/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,CAAA;AAEzG;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AACrD,eAAO,MAAM,oBAAoB,oBAAoB,CAAA;AACrD,eAAO,MAAM,sBAAsB,
|
|
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":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
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
|
@@ -45,6 +45,10 @@ export interface QueryContext {
|
|
|
45
45
|
isUndo: boolean;
|
|
46
46
|
/** UUID to rollback to for undo operations */
|
|
47
47
|
undoRollbackUuid?: string;
|
|
48
|
+
/** Fork the resumed session instead of attaching to it (#630 busy-session
|
|
49
|
+
* fallback — the original stays registered as a bg agent; the fork gets a
|
|
50
|
+
* fresh id with the full history). */
|
|
51
|
+
forkSession?: boolean;
|
|
48
52
|
/** SDK hooks (PreToolUse etc.) */
|
|
49
53
|
sdkHooks?: any;
|
|
50
54
|
/** Blocked SDK built-in tools (from pipeline) */
|
|
@@ -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":"AAeA,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;AAuCnG,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;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAeA,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;AAuCnG,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;AAgR7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAi/GhF;AAWD,wBAAgB,gCAAgC,IAAI,IAAI,CAavD;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmGhG"}
|
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-tq3vtp0q.js";
|
|
15
15
|
import"./cli-f0yqy2d2.js";
|
|
16
16
|
import"./cli-sry5aqdj.js";
|
|
17
17
|
import"./cli-xmweegb1.js";
|
|
18
|
-
import"./cli-
|
|
18
|
+
import"./cli-vjeftz4z.js";
|
|
19
19
|
import"./cli-340h1chz.js";
|
|
20
20
|
import"./cli-je60fevk.js";
|
|
21
21
|
import"./cli-aq5zz92m.js";
|
package/package.json
CHANGED