claudish 6.0.1 → 6.1.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/index.js +124 -86
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -33364,11 +33364,80 @@ var init_base_api_format = __esm(() => {
|
|
|
33364
33364
|
};
|
|
33365
33365
|
});
|
|
33366
33366
|
|
|
33367
|
+
// src/adapters/model-catalog.ts
|
|
33368
|
+
function lookupModel(modelId) {
|
|
33369
|
+
const lower = modelId.toLowerCase();
|
|
33370
|
+
const unprefixed = lower.includes("/") ? lower.substring(lower.lastIndexOf("/") + 1) : lower;
|
|
33371
|
+
for (const entry of MODEL_CATALOG) {
|
|
33372
|
+
if (unprefixed.includes(entry.pattern) || lower.includes(entry.pattern)) {
|
|
33373
|
+
return entry;
|
|
33374
|
+
}
|
|
33375
|
+
}
|
|
33376
|
+
return;
|
|
33377
|
+
}
|
|
33378
|
+
var MODEL_CATALOG;
|
|
33379
|
+
var init_model_catalog = __esm(() => {
|
|
33380
|
+
MODEL_CATALOG = [
|
|
33381
|
+
{ pattern: "grok-4.20", contextWindow: 2000000 },
|
|
33382
|
+
{ pattern: "grok-4-20", contextWindow: 2000000 },
|
|
33383
|
+
{ pattern: "grok-4.1-fast", contextWindow: 2000000 },
|
|
33384
|
+
{ pattern: "grok-4-1-fast", contextWindow: 2000000 },
|
|
33385
|
+
{ pattern: "grok-4-fast", contextWindow: 2000000 },
|
|
33386
|
+
{ pattern: "grok-code-fast", contextWindow: 256000 },
|
|
33387
|
+
{ pattern: "grok-4", contextWindow: 256000 },
|
|
33388
|
+
{ pattern: "grok-3", contextWindow: 131072 },
|
|
33389
|
+
{ pattern: "grok-2", contextWindow: 131072 },
|
|
33390
|
+
{ pattern: "grok", contextWindow: 131072 },
|
|
33391
|
+
{ pattern: "glm-5-turbo", contextWindow: 202752 },
|
|
33392
|
+
{ pattern: "glm-5", contextWindow: 80000, supportsVision: true },
|
|
33393
|
+
{ pattern: "glm-4.7-flash", contextWindow: 202752 },
|
|
33394
|
+
{ pattern: "glm-4.7", contextWindow: 202752 },
|
|
33395
|
+
{ pattern: "glm-4.6v", contextWindow: 131072, supportsVision: true },
|
|
33396
|
+
{ pattern: "glm-4.6", contextWindow: 204800 },
|
|
33397
|
+
{ pattern: "glm-4.5v", contextWindow: 65536, supportsVision: true },
|
|
33398
|
+
{ pattern: "glm-4.5-flash", contextWindow: 131072 },
|
|
33399
|
+
{ pattern: "glm-4.5-air", contextWindow: 131072 },
|
|
33400
|
+
{ pattern: "glm-4.5", contextWindow: 131072 },
|
|
33401
|
+
{ pattern: "glm-4v-plus", contextWindow: 128000, supportsVision: true },
|
|
33402
|
+
{ pattern: "glm-4v", contextWindow: 128000, supportsVision: true },
|
|
33403
|
+
{ pattern: "glm-4-long", contextWindow: 1e6 },
|
|
33404
|
+
{ pattern: "glm-4-plus", contextWindow: 128000 },
|
|
33405
|
+
{ pattern: "glm-4-flash", contextWindow: 128000 },
|
|
33406
|
+
{ pattern: "glm-4-32b", contextWindow: 128000 },
|
|
33407
|
+
{ pattern: "glm-4", contextWindow: 128000 },
|
|
33408
|
+
{ pattern: "glm-3-turbo", contextWindow: 128000 },
|
|
33409
|
+
{ pattern: "glm-", contextWindow: 131072, supportsVision: false },
|
|
33410
|
+
{ pattern: "minimax-01", contextWindow: 1e6, supportsVision: false },
|
|
33411
|
+
{ pattern: "minimax-m1", contextWindow: 1e6, supportsVision: false },
|
|
33412
|
+
{
|
|
33413
|
+
pattern: "minimax",
|
|
33414
|
+
contextWindow: 204800,
|
|
33415
|
+
supportsVision: false,
|
|
33416
|
+
temperatureRange: { min: 0.01, max: 1 }
|
|
33417
|
+
},
|
|
33418
|
+
{ pattern: "gpt-5.4", contextWindow: 1050000 },
|
|
33419
|
+
{ pattern: "gpt-5", contextWindow: 400000 },
|
|
33420
|
+
{ pattern: "o1", contextWindow: 200000 },
|
|
33421
|
+
{ pattern: "o3", contextWindow: 200000 },
|
|
33422
|
+
{ pattern: "o4", contextWindow: 200000 },
|
|
33423
|
+
{ pattern: "gpt-4o", contextWindow: 128000 },
|
|
33424
|
+
{ pattern: "gpt-4-turbo", contextWindow: 128000 },
|
|
33425
|
+
{ pattern: "gpt-3.5", contextWindow: 16385 },
|
|
33426
|
+
{ pattern: "kimi-k2.5", contextWindow: 262144 },
|
|
33427
|
+
{ pattern: "kimi-k2-5", contextWindow: 262144 },
|
|
33428
|
+
{ pattern: "kimi-k2", contextWindow: 131000 },
|
|
33429
|
+
{ pattern: "kimi", contextWindow: 131072 },
|
|
33430
|
+
{ pattern: "xiaomi", contextWindow: 200000, toolNameLimit: 64 },
|
|
33431
|
+
{ pattern: "mimo", contextWindow: 200000, toolNameLimit: 64 }
|
|
33432
|
+
];
|
|
33433
|
+
});
|
|
33434
|
+
|
|
33367
33435
|
// src/adapters/grok-model-dialect.ts
|
|
33368
33436
|
var GrokModelDialect;
|
|
33369
33437
|
var init_grok_model_dialect = __esm(() => {
|
|
33370
33438
|
init_base_api_format();
|
|
33371
33439
|
init_logger();
|
|
33440
|
+
init_model_catalog();
|
|
33372
33441
|
GrokModelDialect = class GrokModelDialect extends BaseAPIFormat {
|
|
33373
33442
|
xmlBuffer = "";
|
|
33374
33443
|
processTextContent(textContent, accumulatedText) {
|
|
@@ -33450,22 +33519,7 @@ var init_grok_model_dialect = __esm(() => {
|
|
|
33450
33519
|
return "GrokModelDialect";
|
|
33451
33520
|
}
|
|
33452
33521
|
getContextWindow() {
|
|
33453
|
-
|
|
33454
|
-
if (model.includes("grok-4.20") || model.includes("grok-4-20"))
|
|
33455
|
-
return 2000000;
|
|
33456
|
-
if (model.includes("grok-4.1-fast") || model.includes("grok-4-1-fast"))
|
|
33457
|
-
return 2000000;
|
|
33458
|
-
if (model.includes("grok-4-fast"))
|
|
33459
|
-
return 2000000;
|
|
33460
|
-
if (model.includes("grok-code-fast"))
|
|
33461
|
-
return 256000;
|
|
33462
|
-
if (model.includes("grok-4"))
|
|
33463
|
-
return 256000;
|
|
33464
|
-
if (model.includes("grok-3"))
|
|
33465
|
-
return 131072;
|
|
33466
|
-
if (model.includes("grok-2"))
|
|
33467
|
-
return 131072;
|
|
33468
|
-
return 131072;
|
|
33522
|
+
return lookupModel(this.modelId)?.contextWindow ?? 131072;
|
|
33469
33523
|
}
|
|
33470
33524
|
reset() {
|
|
33471
33525
|
this.xmlBuffer = "";
|
|
@@ -34876,6 +34930,7 @@ var OpenAIAPIFormat;
|
|
|
34876
34930
|
var init_openai_api_format = __esm(() => {
|
|
34877
34931
|
init_base_api_format();
|
|
34878
34932
|
init_logger();
|
|
34933
|
+
init_model_catalog();
|
|
34879
34934
|
OpenAIAPIFormat = class OpenAIAPIFormat extends BaseAPIFormat {
|
|
34880
34935
|
constructor(modelId) {
|
|
34881
34936
|
super(modelId);
|
|
@@ -34917,18 +34972,7 @@ var init_openai_api_format = __esm(() => {
|
|
|
34917
34972
|
return "OpenAIAPIFormat";
|
|
34918
34973
|
}
|
|
34919
34974
|
getContextWindow() {
|
|
34920
|
-
|
|
34921
|
-
if (model.includes("gpt-5.4"))
|
|
34922
|
-
return 1050000;
|
|
34923
|
-
if (model.includes("gpt-5"))
|
|
34924
|
-
return 400000;
|
|
34925
|
-
if (model.includes("o1") || model.includes("o3") || model.includes("o4"))
|
|
34926
|
-
return 200000;
|
|
34927
|
-
if (model.includes("gpt-4o") || model.includes("gpt-4-turbo"))
|
|
34928
|
-
return 128000;
|
|
34929
|
-
if (model.includes("gpt-3.5"))
|
|
34930
|
-
return 16385;
|
|
34931
|
-
return 128000;
|
|
34975
|
+
return lookupModel(this.modelId)?.contextWindow ?? 128000;
|
|
34932
34976
|
}
|
|
34933
34977
|
buildPayload(claudeRequest, messages, tools) {
|
|
34934
34978
|
return this.buildChatCompletionsPayload(claudeRequest, messages, tools);
|
|
@@ -35041,6 +35085,7 @@ var MiniMaxModelDialect;
|
|
|
35041
35085
|
var init_minimax_model_dialect = __esm(() => {
|
|
35042
35086
|
init_base_api_format();
|
|
35043
35087
|
init_logger();
|
|
35088
|
+
init_model_catalog();
|
|
35044
35089
|
MiniMaxModelDialect = class MiniMaxModelDialect extends BaseAPIFormat {
|
|
35045
35090
|
processTextContent(textContent, accumulatedText) {
|
|
35046
35091
|
return {
|
|
@@ -35050,13 +35095,25 @@ var init_minimax_model_dialect = __esm(() => {
|
|
|
35050
35095
|
};
|
|
35051
35096
|
}
|
|
35052
35097
|
prepareRequest(request, originalRequest) {
|
|
35053
|
-
|
|
35054
|
-
|
|
35055
|
-
|
|
35056
|
-
|
|
35098
|
+
const entry = lookupModel(this.modelId);
|
|
35099
|
+
const tempRange = entry?.temperatureRange;
|
|
35100
|
+
if (request.temperature !== undefined && tempRange) {
|
|
35101
|
+
if (request.temperature < tempRange.min) {
|
|
35102
|
+
log(`[MiniMaxModelDialect] Clamping temperature ${request.temperature} \u2192 ${tempRange.min} (MiniMax requires >= ${tempRange.min})`);
|
|
35103
|
+
request.temperature = tempRange.min;
|
|
35104
|
+
} else if (request.temperature > tempRange.max) {
|
|
35105
|
+
log(`[MiniMaxModelDialect] Clamping temperature ${request.temperature} \u2192 ${tempRange.max} (MiniMax requires <= ${tempRange.max})`);
|
|
35106
|
+
request.temperature = tempRange.max;
|
|
35107
|
+
}
|
|
35057
35108
|
}
|
|
35058
35109
|
return request;
|
|
35059
35110
|
}
|
|
35111
|
+
getContextWindow() {
|
|
35112
|
+
return lookupModel(this.modelId)?.contextWindow ?? 204800;
|
|
35113
|
+
}
|
|
35114
|
+
supportsVision() {
|
|
35115
|
+
return lookupModel(this.modelId)?.supportsVision ?? false;
|
|
35116
|
+
}
|
|
35060
35117
|
shouldHandle(modelId) {
|
|
35061
35118
|
return matchesModelFamily(modelId, "minimax");
|
|
35062
35119
|
}
|
|
@@ -35096,30 +35153,11 @@ var init_deepseek_model_dialect = __esm(() => {
|
|
|
35096
35153
|
});
|
|
35097
35154
|
|
|
35098
35155
|
// src/adapters/glm-model-dialect.ts
|
|
35099
|
-
var
|
|
35156
|
+
var GLMModelDialect;
|
|
35100
35157
|
var init_glm_model_dialect = __esm(() => {
|
|
35101
35158
|
init_base_api_format();
|
|
35102
35159
|
init_logger();
|
|
35103
|
-
|
|
35104
|
-
["glm-5-turbo", 202752],
|
|
35105
|
-
["glm-5", 80000],
|
|
35106
|
-
["glm-4.7-flash", 202752],
|
|
35107
|
-
["glm-4.7", 202752],
|
|
35108
|
-
["glm-4.6v", 131072],
|
|
35109
|
-
["glm-4.6", 204800],
|
|
35110
|
-
["glm-4.5v", 65536],
|
|
35111
|
-
["glm-4.5-flash", 131072],
|
|
35112
|
-
["glm-4.5-air", 131072],
|
|
35113
|
-
["glm-4.5", 131072],
|
|
35114
|
-
["glm-4-long", 1e6],
|
|
35115
|
-
["glm-4-plus", 128000],
|
|
35116
|
-
["glm-4-flash", 128000],
|
|
35117
|
-
["glm-4-32b", 128000],
|
|
35118
|
-
["glm-4", 128000],
|
|
35119
|
-
["glm-3-turbo", 128000],
|
|
35120
|
-
["glm-", 131072]
|
|
35121
|
-
];
|
|
35122
|
-
GLM_VISION_MODELS = ["glm-4v", "glm-4v-plus", "glm-4.5v", "glm-4.6v", "glm-5"];
|
|
35160
|
+
init_model_catalog();
|
|
35123
35161
|
GLMModelDialect = class GLMModelDialect extends BaseAPIFormat {
|
|
35124
35162
|
processTextContent(textContent, accumulatedText) {
|
|
35125
35163
|
return {
|
|
@@ -35142,16 +35180,10 @@ var init_glm_model_dialect = __esm(() => {
|
|
|
35142
35180
|
return "GLMModelDialect";
|
|
35143
35181
|
}
|
|
35144
35182
|
getContextWindow() {
|
|
35145
|
-
|
|
35146
|
-
for (const [pattern, size] of GLM_CONTEXT_WINDOWS) {
|
|
35147
|
-
if (lower.includes(pattern))
|
|
35148
|
-
return size;
|
|
35149
|
-
}
|
|
35150
|
-
return 128000;
|
|
35183
|
+
return lookupModel(this.modelId)?.contextWindow ?? 128000;
|
|
35151
35184
|
}
|
|
35152
35185
|
supportsVision() {
|
|
35153
|
-
|
|
35154
|
-
return GLM_VISION_MODELS.some((m) => lower.includes(m));
|
|
35186
|
+
return lookupModel(this.modelId)?.supportsVision ?? false;
|
|
35155
35187
|
}
|
|
35156
35188
|
};
|
|
35157
35189
|
});
|
|
@@ -35161,6 +35193,7 @@ var XiaomiModelDialect;
|
|
|
35161
35193
|
var init_xiaomi_model_dialect = __esm(() => {
|
|
35162
35194
|
init_base_api_format();
|
|
35163
35195
|
init_logger();
|
|
35196
|
+
init_model_catalog();
|
|
35164
35197
|
XiaomiModelDialect = class XiaomiModelDialect extends BaseAPIFormat {
|
|
35165
35198
|
processTextContent(textContent, accumulatedText) {
|
|
35166
35199
|
return {
|
|
@@ -35170,7 +35203,7 @@ var init_xiaomi_model_dialect = __esm(() => {
|
|
|
35170
35203
|
};
|
|
35171
35204
|
}
|
|
35172
35205
|
getToolNameLimit() {
|
|
35173
|
-
return
|
|
35206
|
+
return lookupModel(this.modelId)?.toolNameLimit ?? null;
|
|
35174
35207
|
}
|
|
35175
35208
|
prepareRequest(request, originalRequest) {
|
|
35176
35209
|
if (originalRequest.thinking) {
|
|
@@ -36891,7 +36924,7 @@ async function fetchGLMCodingModels() {
|
|
|
36891
36924
|
return [];
|
|
36892
36925
|
}
|
|
36893
36926
|
}
|
|
36894
|
-
var __filename4, __dirname4, VERSION = "6.0
|
|
36927
|
+
var __filename4, __dirname4, VERSION = "6.1.0", CACHE_MAX_AGE_DAYS2 = 2, CLAUDISH_CACHE_DIR2, BUNDLED_MODELS_PATH, CACHED_MODELS_PATH, ALL_MODELS_JSON_PATH;
|
|
36895
36928
|
var init_cli = __esm(() => {
|
|
36896
36929
|
init_config();
|
|
36897
36930
|
init_model_loader();
|
|
@@ -105095,7 +105128,7 @@ class ComposedHandler {
|
|
|
105095
105128
|
if (Array.isArray(msg.content)) {
|
|
105096
105129
|
for (let partIdx = 0;partIdx < msg.content.length; partIdx++) {
|
|
105097
105130
|
const part = msg.content[partIdx];
|
|
105098
|
-
if (part.type === "image_url") {
|
|
105131
|
+
if (part.type === "image_url" || part.type === "image" || part.type === "document") {
|
|
105099
105132
|
imageBlocks.push({ msgIdx, partIdx, block: part });
|
|
105100
105133
|
}
|
|
105101
105134
|
}
|
|
@@ -105103,22 +105136,36 @@ class ComposedHandler {
|
|
|
105103
105136
|
}
|
|
105104
105137
|
if (imageBlocks.length > 0) {
|
|
105105
105138
|
log(`[ComposedHandler] Non-vision model received ${imageBlocks.length} image(s), calling vision proxy`);
|
|
105106
|
-
const
|
|
105107
|
-
|
|
105108
|
-
if (
|
|
105109
|
-
|
|
105110
|
-
|
|
105139
|
+
const openAIImageBlocks = imageBlocks.filter((b2) => b2.block.type === "image_url");
|
|
105140
|
+
let descriptions = null;
|
|
105141
|
+
if (openAIImageBlocks.length > 0) {
|
|
105142
|
+
const auth = extractAuthHeaders(c);
|
|
105143
|
+
descriptions = await describeImages(openAIImageBlocks.map((b2) => b2.block), auth);
|
|
105144
|
+
}
|
|
105145
|
+
if (descriptions !== null && openAIImageBlocks.length > 0) {
|
|
105146
|
+
for (let i = 0;i < openAIImageBlocks.length; i++) {
|
|
105147
|
+
const { msgIdx, partIdx } = openAIImageBlocks[i];
|
|
105111
105148
|
messages[msgIdx].content[partIdx] = {
|
|
105112
105149
|
type: "text",
|
|
105113
105150
|
text: `[Image Description: ${descriptions[i]}]`
|
|
105114
105151
|
};
|
|
105115
105152
|
}
|
|
105116
105153
|
log(`[ComposedHandler] Vision proxy described ${descriptions.length} image(s)`);
|
|
105154
|
+
for (const msg of messages) {
|
|
105155
|
+
if (Array.isArray(msg.content)) {
|
|
105156
|
+
msg.content = msg.content.filter((part) => part.type !== "image" && part.type !== "document");
|
|
105157
|
+
if (msg.content.length === 1 && msg.content[0].type === "text") {
|
|
105158
|
+
msg.content = msg.content[0].text;
|
|
105159
|
+
} else if (msg.content.length === 0) {
|
|
105160
|
+
msg.content = "";
|
|
105161
|
+
}
|
|
105162
|
+
}
|
|
105163
|
+
}
|
|
105117
105164
|
} else {
|
|
105118
|
-
log(`[ComposedHandler]
|
|
105165
|
+
log(`[ComposedHandler] Stripping image/document blocks (vision not supported)`);
|
|
105119
105166
|
for (const msg of messages) {
|
|
105120
105167
|
if (Array.isArray(msg.content)) {
|
|
105121
|
-
msg.content = msg.content.filter((part) => part.type !== "image_url");
|
|
105168
|
+
msg.content = msg.content.filter((part) => part.type !== "image_url" && part.type !== "image" && part.type !== "document");
|
|
105122
105169
|
if (msg.content.length === 1 && msg.content[0].type === "text") {
|
|
105123
105170
|
msg.content = msg.content[0].text;
|
|
105124
105171
|
} else if (msg.content.length === 0) {
|
|
@@ -106169,6 +106216,7 @@ var init_anthropic_compat = __esm(() => {
|
|
|
106169
106216
|
var AnthropicAPIFormat;
|
|
106170
106217
|
var init_anthropic_api_format = __esm(() => {
|
|
106171
106218
|
init_base_api_format();
|
|
106219
|
+
init_model_catalog();
|
|
106172
106220
|
AnthropicAPIFormat = class AnthropicAPIFormat extends BaseAPIFormat {
|
|
106173
106221
|
providerName;
|
|
106174
106222
|
constructor(modelId, providerName) {
|
|
@@ -106245,23 +106293,13 @@ var init_anthropic_api_format = __esm(() => {
|
|
|
106245
106293
|
return "anthropic-sse";
|
|
106246
106294
|
}
|
|
106247
106295
|
getContextWindow() {
|
|
106248
|
-
const
|
|
106249
|
-
if (
|
|
106250
|
-
return
|
|
106251
|
-
if (
|
|
106252
|
-
return 131000;
|
|
106253
|
-
if (this.providerName === "kimi" || this.providerName === "kimi-coding" || model.includes("kimi")) {
|
|
106296
|
+
const catalogEntry = lookupModel(this.modelId);
|
|
106297
|
+
if (catalogEntry)
|
|
106298
|
+
return catalogEntry.contextWindow;
|
|
106299
|
+
if (this.providerName === "kimi" || this.providerName === "kimi-coding")
|
|
106254
106300
|
return 131072;
|
|
106255
|
-
|
|
106256
|
-
if (model.includes("minimax-01") || model.includes("minimax-m1"))
|
|
106257
|
-
return 1e6;
|
|
106258
|
-
if (model.includes("minimax-m2.7"))
|
|
106301
|
+
if (this.providerName === "minimax" || this.providerName === "minimax-coding")
|
|
106259
106302
|
return 204800;
|
|
106260
|
-
if (model.includes("minimax-m2"))
|
|
106261
|
-
return 196608;
|
|
106262
|
-
if (this.providerName === "minimax" || this.providerName === "minimax-coding") {
|
|
106263
|
-
return 196608;
|
|
106264
|
-
}
|
|
106265
106303
|
return 128000;
|
|
106266
106304
|
}
|
|
106267
106305
|
supportsVision() {
|