claude-use 11.40.0 → 11.40.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +139 -130
- package/dist/index.cjs +46 -7
- package/dist/index.mjs +46 -7
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -34636,7 +34636,7 @@ var init_package = __esm({
|
|
|
34636
34636
|
"package.json"() {
|
|
34637
34637
|
package_default = {
|
|
34638
34638
|
name: "claude-use",
|
|
34639
|
-
version: "11.40.
|
|
34639
|
+
version: "11.40.2",
|
|
34640
34640
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
34641
34641
|
license: "MIT",
|
|
34642
34642
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -64176,6 +64176,131 @@ var init_launchReport = __esm({
|
|
|
64176
64176
|
}
|
|
64177
64177
|
});
|
|
64178
64178
|
|
|
64179
|
+
// src/models/identity.ts
|
|
64180
|
+
function withoutContextMarker(model) {
|
|
64181
|
+
return model.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? model.slice(0, -CONTEXT_MARKER_1M.length) : model;
|
|
64182
|
+
}
|
|
64183
|
+
function canonicalText(name) {
|
|
64184
|
+
return name.trim().toLowerCase().replace(NON_IDENTITY_BRACKET_RE, "").replace(/[\s_]+/g, "-").replace(/([a-z])(\d+(?:\.\d+)+)/g, "$1-$2").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
64185
|
+
}
|
|
64186
|
+
function splitVariants(tokens) {
|
|
64187
|
+
const variants = [];
|
|
64188
|
+
let end = tokens.length;
|
|
64189
|
+
for (; ; ) {
|
|
64190
|
+
const token = tokens[end - 1];
|
|
64191
|
+
if (token === void 0 || !KNOWN_VARIANTS.has(token)) {
|
|
64192
|
+
return { familyTokens: tokens.slice(0, end), variants };
|
|
64193
|
+
}
|
|
64194
|
+
variants.unshift(token);
|
|
64195
|
+
end -= 1;
|
|
64196
|
+
}
|
|
64197
|
+
}
|
|
64198
|
+
function versionOf(tokens) {
|
|
64199
|
+
for (let index = 0; index < tokens.length; index += 1) {
|
|
64200
|
+
const token = tokens[index];
|
|
64201
|
+
const next = tokens[index + 1];
|
|
64202
|
+
if (token === void 0) {
|
|
64203
|
+
return "";
|
|
64204
|
+
}
|
|
64205
|
+
if (/^\d+$/.test(token) && next !== void 0 && /^\d+$/.test(next)) {
|
|
64206
|
+
return `${token}.${next}`;
|
|
64207
|
+
}
|
|
64208
|
+
const dotted = /^\d+(?:\.\d+)+$/.exec(token);
|
|
64209
|
+
if (dotted !== null) {
|
|
64210
|
+
return dotted[0];
|
|
64211
|
+
}
|
|
64212
|
+
}
|
|
64213
|
+
return "";
|
|
64214
|
+
}
|
|
64215
|
+
function modelIdentity(rawName) {
|
|
64216
|
+
const segments = rawName.trim().toLowerCase().split("/");
|
|
64217
|
+
const stripped = canonicalText(segments[segments.length - 1] ?? "").split(":")[0] ?? "";
|
|
64218
|
+
const withoutDate = stripped.replace(DATE_STAMP_RE, "");
|
|
64219
|
+
const tokens = withoutDate.split("-").filter((token) => token !== "");
|
|
64220
|
+
const { familyTokens, variants } = splitVariants(tokens);
|
|
64221
|
+
const version2 = versionOf(familyTokens);
|
|
64222
|
+
const versionless = familyTokens.filter((token, index) => {
|
|
64223
|
+
if (version2 === "") {
|
|
64224
|
+
return true;
|
|
64225
|
+
}
|
|
64226
|
+
const dotted = /^\d+(?:\.\d+)+$/.test(token);
|
|
64227
|
+
const previous = familyTokens[index - 1];
|
|
64228
|
+
const next = familyTokens[index + 1];
|
|
64229
|
+
const insideVersionRun = dotted || /^\d+$/.test(token) && (previous !== void 0 && /^\d+$/.test(previous) || next !== void 0 && /^\d+$/.test(next));
|
|
64230
|
+
return !insideVersionRun;
|
|
64231
|
+
});
|
|
64232
|
+
const family = versionless.join("-");
|
|
64233
|
+
const tokenVendor = familyTokens.find((token) => Object.keys(VENDOR_BY_TOKEN).some((key) => token === key || token.startsWith(key)));
|
|
64234
|
+
const namespace = segments.length >= 2 ? (segments[0] ?? "").split(":").pop() ?? "" : "";
|
|
64235
|
+
const namespaceVendor = VENDOR_BY_NAMESPACE[namespace] ?? "";
|
|
64236
|
+
const tokenVendorName = tokenVendor === void 0 ? "" : VENDOR_BY_TOKEN[Object.keys(VENDOR_BY_TOKEN).find((key) => tokenVendor === key || tokenVendor.startsWith(key)) ?? ""] ?? "";
|
|
64237
|
+
return {
|
|
64238
|
+
vendor: tokenVendorName === "" ? namespaceVendor : tokenVendorName,
|
|
64239
|
+
vendorConflict: tokenVendorName !== "" && namespaceVendor !== "" && tokenVendorName !== namespaceVendor,
|
|
64240
|
+
family,
|
|
64241
|
+
version: version2,
|
|
64242
|
+
variant: variants.join("-"),
|
|
64243
|
+
familyAndVersion: version2 === "" ? family : `${family}-${version2.replace(/\./g, "-")}`
|
|
64244
|
+
};
|
|
64245
|
+
}
|
|
64246
|
+
function relateModels(left, right) {
|
|
64247
|
+
const a10 = modelIdentity(left);
|
|
64248
|
+
const b = modelIdentity(right);
|
|
64249
|
+
if (a10.familyAndVersion !== b.familyAndVersion) {
|
|
64250
|
+
return sameFamilyOtherVersion(a10, b) ? "similar" : "distinct";
|
|
64251
|
+
}
|
|
64252
|
+
if (a10.variant !== b.variant || a10.vendorConflict || b.vendorConflict || a10.vendor !== "" && b.vendor !== "" && a10.vendor !== b.vendor) {
|
|
64253
|
+
return "similar";
|
|
64254
|
+
}
|
|
64255
|
+
return "same";
|
|
64256
|
+
}
|
|
64257
|
+
function sameFamilyOtherVersion(a10, b) {
|
|
64258
|
+
if (a10.family !== b.family) {
|
|
64259
|
+
return false;
|
|
64260
|
+
}
|
|
64261
|
+
if (a10.vendor !== "" && b.vendor !== "" && a10.vendor !== b.vendor) {
|
|
64262
|
+
return false;
|
|
64263
|
+
}
|
|
64264
|
+
return true;
|
|
64265
|
+
}
|
|
64266
|
+
var NON_IDENTITY_BRACKET_RE, CONTEXT_MARKER_1M, DATE_STAMP_RE, KNOWN_VARIANTS, VENDOR_BY_NAMESPACE, VENDOR_BY_TOKEN;
|
|
64267
|
+
var init_identity2 = __esm({
|
|
64268
|
+
"src/models/identity.ts"() {
|
|
64269
|
+
"use strict";
|
|
64270
|
+
NON_IDENTITY_BRACKET_RE = /\[[^\]]*\]/g;
|
|
64271
|
+
CONTEXT_MARKER_1M = "[1m]";
|
|
64272
|
+
DATE_STAMP_RE = /-(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])$/;
|
|
64273
|
+
KNOWN_VARIANTS = /* @__PURE__ */ new Set(["high", "medium", "low", "thinking", "xhigh", "max", "highspeed", "sol", "terra", "luna", "mini", "flash-lite", "turbo"]);
|
|
64274
|
+
VENDOR_BY_NAMESPACE = Object.freeze({
|
|
64275
|
+
anthropic: "anthropic",
|
|
64276
|
+
google: "google",
|
|
64277
|
+
openai: "openai",
|
|
64278
|
+
zai: "zai",
|
|
64279
|
+
"z-ai": "zai",
|
|
64280
|
+
minimax: "minimax",
|
|
64281
|
+
qwen: "qwen",
|
|
64282
|
+
deepseek: "deepseek",
|
|
64283
|
+
moonshot: "moonshot",
|
|
64284
|
+
meta: "meta",
|
|
64285
|
+
mistral: "mistral"
|
|
64286
|
+
});
|
|
64287
|
+
VENDOR_BY_TOKEN = Object.freeze({
|
|
64288
|
+
claude: "anthropic",
|
|
64289
|
+
gemini: "google",
|
|
64290
|
+
antigravity: "google",
|
|
64291
|
+
gpt: "openai",
|
|
64292
|
+
glm: "zai",
|
|
64293
|
+
minimax: "minimax",
|
|
64294
|
+
qwen: "qwen",
|
|
64295
|
+
deepseek: "deepseek",
|
|
64296
|
+
kimi: "moonshot",
|
|
64297
|
+
llama: "meta",
|
|
64298
|
+
mistral: "mistral",
|
|
64299
|
+
mixtral: "mistral"
|
|
64300
|
+
});
|
|
64301
|
+
}
|
|
64302
|
+
});
|
|
64303
|
+
|
|
64179
64304
|
// src/selection/engine.ts
|
|
64180
64305
|
function compareMaybe(left, right, preferHigh) {
|
|
64181
64306
|
if (left === void 0 && right === void 0) {
|
|
@@ -64843,7 +64968,7 @@ function isBackendModelName(name) {
|
|
|
64843
64968
|
return BACKEND_FAMILY_PREFIXES.some((prefix) => name.startsWith(prefix)) || BACKEND_CLAUDE_NAME.test(name);
|
|
64844
64969
|
}
|
|
64845
64970
|
function resolveName(requested, config2) {
|
|
64846
|
-
const stripped =
|
|
64971
|
+
const stripped = withoutContextMarker(requested);
|
|
64847
64972
|
const lower = stripped.toLowerCase();
|
|
64848
64973
|
const alias = config2.aliases.get(lower);
|
|
64849
64974
|
if (alias !== void 0) {
|
|
@@ -65079,11 +65204,12 @@ function translateRequest(request7, config2, routing) {
|
|
|
65079
65204
|
toolNames
|
|
65080
65205
|
};
|
|
65081
65206
|
}
|
|
65082
|
-
var import_node_crypto16, SECONDS_PER_HOUR2, NEUTRAL_PRESSURE, AUTO_ALIAS,
|
|
65207
|
+
var import_node_crypto16, SECONDS_PER_HOUR2, NEUTRAL_PRESSURE, AUTO_ALIAS, BACKEND_FAMILY_PREFIXES, BACKEND_CLAUDE_NAME, EFFORT_TO_BUDGET, BILLING_HEADER_LINE, ANTIGRAVITY_TOOL_NAME_LIMIT, TOOL_NAME_HASH_CHARS, NON_TEXT_TOOL_RESULT, EMPTY_SCHEMA, EFFORT_SUFFIXES;
|
|
65083
65208
|
var init_translate = __esm({
|
|
65084
65209
|
"src/antigravity/translate.ts"() {
|
|
65085
65210
|
"use strict";
|
|
65086
65211
|
import_node_crypto16 = require("node:crypto");
|
|
65212
|
+
init_identity2();
|
|
65087
65213
|
init_engine();
|
|
65088
65214
|
init_quota();
|
|
65089
65215
|
init_signatures();
|
|
@@ -65092,7 +65218,6 @@ var init_translate = __esm({
|
|
|
65092
65218
|
SECONDS_PER_HOUR2 = 3600;
|
|
65093
65219
|
NEUTRAL_PRESSURE = 1;
|
|
65094
65220
|
AUTO_ALIAS = "auto";
|
|
65095
|
-
CONTEXT_MARKER_1M = "[1m]";
|
|
65096
65221
|
BACKEND_FAMILY_PREFIXES = ["gemini-", "antigravity-", "gpt-oss-"];
|
|
65097
65222
|
BACKEND_CLAUDE_NAME = /^claude-.+-(?:low|medium|high|thinking)$/;
|
|
65098
65223
|
EFFORT_TO_BUDGET = {
|
|
@@ -65401,10 +65526,10 @@ var init_providerCatalogue = __esm({
|
|
|
65401
65526
|
|
|
65402
65527
|
// src/launcher/modelPicker.ts
|
|
65403
65528
|
function labelOf(model) {
|
|
65404
|
-
return
|
|
65529
|
+
return withoutContextMarker(model);
|
|
65405
65530
|
}
|
|
65406
65531
|
function describedAs(model, description) {
|
|
65407
|
-
return model.toLowerCase().endsWith(
|
|
65532
|
+
return model.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? `${description}; 1M context` : description;
|
|
65408
65533
|
}
|
|
65409
65534
|
function joined(parts) {
|
|
65410
65535
|
const last = parts[parts.length - 1];
|
|
@@ -65490,9 +65615,8 @@ function routedModelRows(models, providers) {
|
|
|
65490
65615
|
if (provider.kind !== void 0 && provider.kind !== "http") {
|
|
65491
65616
|
continue;
|
|
65492
65617
|
}
|
|
65493
|
-
const
|
|
65494
|
-
|
|
65495
|
-
if (match?.[0].endsWith("_MODEL") === true) {
|
|
65618
|
+
const match = Object.entries(provider.env ?? {}).find(([key, value2]) => value2 === model && key.startsWith("ANTHROPIC_DEFAULT_") && key.endsWith("_MODEL"));
|
|
65619
|
+
if (match !== void 0) {
|
|
65496
65620
|
const tier = match[0].replace("ANTHROPIC_DEFAULT_", "").replace("_MODEL", "").toLowerCase();
|
|
65497
65621
|
return tier === "fable" || tier === "opus" || tier === "sonnet" || tier === "haiku" ? tier : void 0;
|
|
65498
65622
|
}
|
|
@@ -65517,7 +65641,7 @@ function modelPickerSettings(provider, catalogue = []) {
|
|
|
65517
65641
|
function modelPickerSettingsFromRows(options, replaceBuiltInOptions) {
|
|
65518
65642
|
return options.length === 0 ? void 0 : JSON.stringify({ modelPicker: { options, replaceBuiltInOptions } });
|
|
65519
65643
|
}
|
|
65520
|
-
var
|
|
65644
|
+
var TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
|
|
65521
65645
|
var init_modelPicker = __esm({
|
|
65522
65646
|
"src/launcher/modelPicker.ts"() {
|
|
65523
65647
|
"use strict";
|
|
@@ -65525,7 +65649,7 @@ var init_modelPicker = __esm({
|
|
|
65525
65649
|
init_translate2();
|
|
65526
65650
|
init_providerCatalogue();
|
|
65527
65651
|
init_schema();
|
|
65528
|
-
|
|
65652
|
+
init_identity2();
|
|
65529
65653
|
TIER_BEHAVES_AS = Object.freeze({
|
|
65530
65654
|
fable: "claude-fable-5-1",
|
|
65531
65655
|
opus: "claude-opus-5-5",
|
|
@@ -131423,6 +131547,7 @@ function candidateOf(ref, order, facts, isCurrent) {
|
|
|
131423
131547
|
|
|
131424
131548
|
// src/frontdoor/providerRoute.ts
|
|
131425
131549
|
init_engine();
|
|
131550
|
+
init_identity2();
|
|
131426
131551
|
init_route();
|
|
131427
131552
|
var import_node_stream3 = require("node:stream");
|
|
131428
131553
|
|
|
@@ -131518,7 +131643,7 @@ function resolveRoutedModel(model, providerName, session, includeUnqualified, de
|
|
|
131518
131643
|
if (qualified !== void 0) {
|
|
131519
131644
|
const [provider2, ...rest2] = qualified.split("/");
|
|
131520
131645
|
const named = rest2.join("/");
|
|
131521
|
-
return provider2 === void 0 || named === "" ? void 0 : { provider: provider2, model: named, ref: qualified };
|
|
131646
|
+
return provider2 === void 0 || named === "" ? void 0 : { provider: provider2, model: withoutContextMarker(named), ref: qualified };
|
|
131522
131647
|
}
|
|
131523
131648
|
const virtual = models?.virtual?.[model];
|
|
131524
131649
|
if (virtual === void 0 || !includeUnqualified) {
|
|
@@ -131548,7 +131673,7 @@ function resolveRoutedModel(model, providerName, session, includeUnqualified, de
|
|
|
131548
131673
|
}
|
|
131549
131674
|
const [provider, ...rest] = selection.ref.split("/");
|
|
131550
131675
|
const chosen = rest.join("/");
|
|
131551
|
-
return provider === void 0 || chosen === "" ? void 0 : { provider, model: chosen, ref: selection.ref };
|
|
131676
|
+
return provider === void 0 || chosen === "" ? void 0 : { provider, model: withoutContextMarker(chosen), ref: selection.ref };
|
|
131552
131677
|
}
|
|
131553
131678
|
function resolveAccountTarget(model, models) {
|
|
131554
131679
|
if (model.startsWith("acct:")) {
|
|
@@ -147521,123 +147646,7 @@ init_providerCatalogue();
|
|
|
147521
147646
|
init_realPorts();
|
|
147522
147647
|
init_schema();
|
|
147523
147648
|
init_cliError();
|
|
147524
|
-
|
|
147525
|
-
// src/models/identity.ts
|
|
147526
|
-
var NON_IDENTITY_BRACKET_RE = /\[[^\]]*\]/g;
|
|
147527
|
-
var DATE_STAMP_RE = /-(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])$/;
|
|
147528
|
-
var KNOWN_VARIANTS = /* @__PURE__ */ new Set(["high", "medium", "low", "thinking", "xhigh", "max", "highspeed", "sol", "terra", "luna", "mini", "flash-lite", "turbo"]);
|
|
147529
|
-
var VENDOR_BY_NAMESPACE = Object.freeze({
|
|
147530
|
-
anthropic: "anthropic",
|
|
147531
|
-
google: "google",
|
|
147532
|
-
openai: "openai",
|
|
147533
|
-
zai: "zai",
|
|
147534
|
-
"z-ai": "zai",
|
|
147535
|
-
minimax: "minimax",
|
|
147536
|
-
qwen: "qwen",
|
|
147537
|
-
deepseek: "deepseek",
|
|
147538
|
-
moonshot: "moonshot",
|
|
147539
|
-
meta: "meta",
|
|
147540
|
-
mistral: "mistral"
|
|
147541
|
-
});
|
|
147542
|
-
var VENDOR_BY_TOKEN = Object.freeze({
|
|
147543
|
-
claude: "anthropic",
|
|
147544
|
-
gemini: "google",
|
|
147545
|
-
antigravity: "google",
|
|
147546
|
-
gpt: "openai",
|
|
147547
|
-
glm: "zai",
|
|
147548
|
-
minimax: "minimax",
|
|
147549
|
-
qwen: "qwen",
|
|
147550
|
-
deepseek: "deepseek",
|
|
147551
|
-
kimi: "moonshot",
|
|
147552
|
-
llama: "meta",
|
|
147553
|
-
mistral: "mistral",
|
|
147554
|
-
mixtral: "mistral"
|
|
147555
|
-
});
|
|
147556
|
-
function canonicalText(name) {
|
|
147557
|
-
return name.trim().toLowerCase().replace(NON_IDENTITY_BRACKET_RE, "").replace(/[\s_]+/g, "-").replace(/([a-z])(\d+(?:\.\d+)+)/g, "$1-$2").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
147558
|
-
}
|
|
147559
|
-
function splitVariants(tokens) {
|
|
147560
|
-
const variants = [];
|
|
147561
|
-
let end = tokens.length;
|
|
147562
|
-
for (; ; ) {
|
|
147563
|
-
const token = tokens[end - 1];
|
|
147564
|
-
if (token === void 0 || !KNOWN_VARIANTS.has(token)) {
|
|
147565
|
-
return { familyTokens: tokens.slice(0, end), variants };
|
|
147566
|
-
}
|
|
147567
|
-
variants.unshift(token);
|
|
147568
|
-
end -= 1;
|
|
147569
|
-
}
|
|
147570
|
-
}
|
|
147571
|
-
function versionOf(tokens) {
|
|
147572
|
-
for (let index = 0; index < tokens.length; index += 1) {
|
|
147573
|
-
const token = tokens[index];
|
|
147574
|
-
const next = tokens[index + 1];
|
|
147575
|
-
if (token === void 0) {
|
|
147576
|
-
return "";
|
|
147577
|
-
}
|
|
147578
|
-
if (/^\d+$/.test(token) && next !== void 0 && /^\d+$/.test(next)) {
|
|
147579
|
-
return `${token}.${next}`;
|
|
147580
|
-
}
|
|
147581
|
-
const dotted = /^\d+(?:\.\d+)+$/.exec(token);
|
|
147582
|
-
if (dotted !== null) {
|
|
147583
|
-
return dotted[0];
|
|
147584
|
-
}
|
|
147585
|
-
}
|
|
147586
|
-
return "";
|
|
147587
|
-
}
|
|
147588
|
-
function modelIdentity(rawName) {
|
|
147589
|
-
const segments = rawName.trim().toLowerCase().split("/");
|
|
147590
|
-
const stripped = canonicalText(segments[segments.length - 1] ?? "").split(":")[0] ?? "";
|
|
147591
|
-
const withoutDate = stripped.replace(DATE_STAMP_RE, "");
|
|
147592
|
-
const tokens = withoutDate.split("-").filter((token) => token !== "");
|
|
147593
|
-
const { familyTokens, variants } = splitVariants(tokens);
|
|
147594
|
-
const version2 = versionOf(familyTokens);
|
|
147595
|
-
const versionless = familyTokens.filter((token, index) => {
|
|
147596
|
-
if (version2 === "") {
|
|
147597
|
-
return true;
|
|
147598
|
-
}
|
|
147599
|
-
const dotted = /^\d+(?:\.\d+)+$/.test(token);
|
|
147600
|
-
const previous = familyTokens[index - 1];
|
|
147601
|
-
const next = familyTokens[index + 1];
|
|
147602
|
-
const insideVersionRun = dotted || /^\d+$/.test(token) && (previous !== void 0 && /^\d+$/.test(previous) || next !== void 0 && /^\d+$/.test(next));
|
|
147603
|
-
return !insideVersionRun;
|
|
147604
|
-
});
|
|
147605
|
-
const family = versionless.join("-");
|
|
147606
|
-
const tokenVendor = familyTokens.find((token) => Object.keys(VENDOR_BY_TOKEN).some((key) => token === key || token.startsWith(key)));
|
|
147607
|
-
const namespace = segments.length >= 2 ? (segments[0] ?? "").split(":").pop() ?? "" : "";
|
|
147608
|
-
const namespaceVendor = VENDOR_BY_NAMESPACE[namespace] ?? "";
|
|
147609
|
-
const tokenVendorName = tokenVendor === void 0 ? "" : VENDOR_BY_TOKEN[Object.keys(VENDOR_BY_TOKEN).find((key) => tokenVendor === key || tokenVendor.startsWith(key)) ?? ""] ?? "";
|
|
147610
|
-
return {
|
|
147611
|
-
vendor: tokenVendorName === "" ? namespaceVendor : tokenVendorName,
|
|
147612
|
-
vendorConflict: tokenVendorName !== "" && namespaceVendor !== "" && tokenVendorName !== namespaceVendor,
|
|
147613
|
-
family,
|
|
147614
|
-
version: version2,
|
|
147615
|
-
variant: variants.join("-"),
|
|
147616
|
-
familyAndVersion: version2 === "" ? family : `${family}-${version2.replace(/\./g, "-")}`
|
|
147617
|
-
};
|
|
147618
|
-
}
|
|
147619
|
-
function relateModels(left, right) {
|
|
147620
|
-
const a10 = modelIdentity(left);
|
|
147621
|
-
const b = modelIdentity(right);
|
|
147622
|
-
if (a10.familyAndVersion !== b.familyAndVersion) {
|
|
147623
|
-
return sameFamilyOtherVersion(a10, b) ? "similar" : "distinct";
|
|
147624
|
-
}
|
|
147625
|
-
if (a10.variant !== b.variant || a10.vendorConflict || b.vendorConflict || a10.vendor !== "" && b.vendor !== "" && a10.vendor !== b.vendor) {
|
|
147626
|
-
return "similar";
|
|
147627
|
-
}
|
|
147628
|
-
return "same";
|
|
147629
|
-
}
|
|
147630
|
-
function sameFamilyOtherVersion(a10, b) {
|
|
147631
|
-
if (a10.family !== b.family) {
|
|
147632
|
-
return false;
|
|
147633
|
-
}
|
|
147634
|
-
if (a10.vendor !== "" && b.vendor !== "" && a10.vendor !== b.vendor) {
|
|
147635
|
-
return false;
|
|
147636
|
-
}
|
|
147637
|
-
return true;
|
|
147638
|
-
}
|
|
147639
|
-
|
|
147640
|
-
// src/models.ts
|
|
147649
|
+
init_identity2();
|
|
147641
147650
|
init_modelsStore();
|
|
147642
147651
|
init_realPorts();
|
|
147643
147652
|
init_read();
|
package/dist/index.cjs
CHANGED
|
@@ -3106,7 +3106,7 @@ var init_package = __esm({
|
|
|
3106
3106
|
"package.json"() {
|
|
3107
3107
|
package_default = {
|
|
3108
3108
|
name: "claude-use",
|
|
3109
|
-
version: "11.40.
|
|
3109
|
+
version: "11.40.2",
|
|
3110
3110
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
3111
3111
|
license: "MIT",
|
|
3112
3112
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -8649,6 +8649,45 @@ var init_launchReport = __esm({
|
|
|
8649
8649
|
}
|
|
8650
8650
|
});
|
|
8651
8651
|
|
|
8652
|
+
// src/models/identity.ts
|
|
8653
|
+
function withoutContextMarker(model) {
|
|
8654
|
+
return model.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? model.slice(0, -CONTEXT_MARKER_1M.length) : model;
|
|
8655
|
+
}
|
|
8656
|
+
var CONTEXT_MARKER_1M, VENDOR_BY_NAMESPACE, VENDOR_BY_TOKEN;
|
|
8657
|
+
var init_identity2 = __esm({
|
|
8658
|
+
"src/models/identity.ts"() {
|
|
8659
|
+
"use strict";
|
|
8660
|
+
CONTEXT_MARKER_1M = "[1m]";
|
|
8661
|
+
VENDOR_BY_NAMESPACE = Object.freeze({
|
|
8662
|
+
anthropic: "anthropic",
|
|
8663
|
+
google: "google",
|
|
8664
|
+
openai: "openai",
|
|
8665
|
+
zai: "zai",
|
|
8666
|
+
"z-ai": "zai",
|
|
8667
|
+
minimax: "minimax",
|
|
8668
|
+
qwen: "qwen",
|
|
8669
|
+
deepseek: "deepseek",
|
|
8670
|
+
moonshot: "moonshot",
|
|
8671
|
+
meta: "meta",
|
|
8672
|
+
mistral: "mistral"
|
|
8673
|
+
});
|
|
8674
|
+
VENDOR_BY_TOKEN = Object.freeze({
|
|
8675
|
+
claude: "anthropic",
|
|
8676
|
+
gemini: "google",
|
|
8677
|
+
antigravity: "google",
|
|
8678
|
+
gpt: "openai",
|
|
8679
|
+
glm: "zai",
|
|
8680
|
+
minimax: "minimax",
|
|
8681
|
+
qwen: "qwen",
|
|
8682
|
+
deepseek: "deepseek",
|
|
8683
|
+
kimi: "moonshot",
|
|
8684
|
+
llama: "meta",
|
|
8685
|
+
mistral: "mistral",
|
|
8686
|
+
mixtral: "mistral"
|
|
8687
|
+
});
|
|
8688
|
+
}
|
|
8689
|
+
});
|
|
8690
|
+
|
|
8652
8691
|
// src/selection/engine.ts
|
|
8653
8692
|
var init_engine = __esm({
|
|
8654
8693
|
"src/selection/engine.ts"() {
|
|
@@ -8790,6 +8829,7 @@ var AUTO_ALIAS;
|
|
|
8790
8829
|
var init_translate = __esm({
|
|
8791
8830
|
"src/antigravity/translate.ts"() {
|
|
8792
8831
|
"use strict";
|
|
8832
|
+
init_identity2();
|
|
8793
8833
|
init_engine();
|
|
8794
8834
|
init_quota();
|
|
8795
8835
|
init_signatures();
|
|
@@ -8867,7 +8907,7 @@ var init_providerCatalogue = __esm({
|
|
|
8867
8907
|
|
|
8868
8908
|
// src/launcher/modelPicker.ts
|
|
8869
8909
|
function labelOf(model) {
|
|
8870
|
-
return
|
|
8910
|
+
return withoutContextMarker(model);
|
|
8871
8911
|
}
|
|
8872
8912
|
function describedAs(model, description) {
|
|
8873
8913
|
return model.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? `${description}; 1M context` : description;
|
|
@@ -8956,9 +8996,8 @@ function routedModelRows(models, providers) {
|
|
|
8956
8996
|
if (provider.kind !== void 0 && provider.kind !== "http") {
|
|
8957
8997
|
continue;
|
|
8958
8998
|
}
|
|
8959
|
-
const
|
|
8960
|
-
|
|
8961
|
-
if (match?.[0].endsWith("_MODEL") === true) {
|
|
8999
|
+
const match = Object.entries(provider.env ?? {}).find(([key, value]) => value === model && key.startsWith("ANTHROPIC_DEFAULT_") && key.endsWith("_MODEL"));
|
|
9000
|
+
if (match !== void 0) {
|
|
8962
9001
|
const tier = match[0].replace("ANTHROPIC_DEFAULT_", "").replace("_MODEL", "").toLowerCase();
|
|
8963
9002
|
return tier === "fable" || tier === "opus" || tier === "sonnet" || tier === "haiku" ? tier : void 0;
|
|
8964
9003
|
}
|
|
@@ -8983,7 +9022,7 @@ function modelPickerSettings(provider, catalogue = []) {
|
|
|
8983
9022
|
function modelPickerSettingsFromRows(options, replaceBuiltInOptions) {
|
|
8984
9023
|
return options.length === 0 ? void 0 : JSON.stringify({ modelPicker: { options, replaceBuiltInOptions } });
|
|
8985
9024
|
}
|
|
8986
|
-
var
|
|
9025
|
+
var TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
|
|
8987
9026
|
var init_modelPicker = __esm({
|
|
8988
9027
|
"src/launcher/modelPicker.ts"() {
|
|
8989
9028
|
"use strict";
|
|
@@ -8991,7 +9030,7 @@ var init_modelPicker = __esm({
|
|
|
8991
9030
|
init_translate2();
|
|
8992
9031
|
init_providerCatalogue();
|
|
8993
9032
|
init_schema();
|
|
8994
|
-
|
|
9033
|
+
init_identity2();
|
|
8995
9034
|
TIER_BEHAVES_AS = Object.freeze({
|
|
8996
9035
|
fable: "claude-fable-5-1",
|
|
8997
9036
|
opus: "claude-opus-5-5",
|
package/dist/index.mjs
CHANGED
|
@@ -3082,7 +3082,7 @@ var init_package = __esm({
|
|
|
3082
3082
|
"package.json"() {
|
|
3083
3083
|
package_default = {
|
|
3084
3084
|
name: "claude-use",
|
|
3085
|
-
version: "11.40.
|
|
3085
|
+
version: "11.40.2",
|
|
3086
3086
|
description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
3087
3087
|
license: "MIT",
|
|
3088
3088
|
author: "Joseph Mearman <joseph@mearman.co.uk>",
|
|
@@ -8621,6 +8621,45 @@ var init_launchReport = __esm({
|
|
|
8621
8621
|
}
|
|
8622
8622
|
});
|
|
8623
8623
|
|
|
8624
|
+
// src/models/identity.ts
|
|
8625
|
+
function withoutContextMarker(model) {
|
|
8626
|
+
return model.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? model.slice(0, -CONTEXT_MARKER_1M.length) : model;
|
|
8627
|
+
}
|
|
8628
|
+
var CONTEXT_MARKER_1M, VENDOR_BY_NAMESPACE, VENDOR_BY_TOKEN;
|
|
8629
|
+
var init_identity2 = __esm({
|
|
8630
|
+
"src/models/identity.ts"() {
|
|
8631
|
+
"use strict";
|
|
8632
|
+
CONTEXT_MARKER_1M = "[1m]";
|
|
8633
|
+
VENDOR_BY_NAMESPACE = Object.freeze({
|
|
8634
|
+
anthropic: "anthropic",
|
|
8635
|
+
google: "google",
|
|
8636
|
+
openai: "openai",
|
|
8637
|
+
zai: "zai",
|
|
8638
|
+
"z-ai": "zai",
|
|
8639
|
+
minimax: "minimax",
|
|
8640
|
+
qwen: "qwen",
|
|
8641
|
+
deepseek: "deepseek",
|
|
8642
|
+
moonshot: "moonshot",
|
|
8643
|
+
meta: "meta",
|
|
8644
|
+
mistral: "mistral"
|
|
8645
|
+
});
|
|
8646
|
+
VENDOR_BY_TOKEN = Object.freeze({
|
|
8647
|
+
claude: "anthropic",
|
|
8648
|
+
gemini: "google",
|
|
8649
|
+
antigravity: "google",
|
|
8650
|
+
gpt: "openai",
|
|
8651
|
+
glm: "zai",
|
|
8652
|
+
minimax: "minimax",
|
|
8653
|
+
qwen: "qwen",
|
|
8654
|
+
deepseek: "deepseek",
|
|
8655
|
+
kimi: "moonshot",
|
|
8656
|
+
llama: "meta",
|
|
8657
|
+
mistral: "mistral",
|
|
8658
|
+
mixtral: "mistral"
|
|
8659
|
+
});
|
|
8660
|
+
}
|
|
8661
|
+
});
|
|
8662
|
+
|
|
8624
8663
|
// src/selection/engine.ts
|
|
8625
8664
|
var init_engine = __esm({
|
|
8626
8665
|
"src/selection/engine.ts"() {
|
|
@@ -8762,6 +8801,7 @@ var AUTO_ALIAS;
|
|
|
8762
8801
|
var init_translate = __esm({
|
|
8763
8802
|
"src/antigravity/translate.ts"() {
|
|
8764
8803
|
"use strict";
|
|
8804
|
+
init_identity2();
|
|
8765
8805
|
init_engine();
|
|
8766
8806
|
init_quota();
|
|
8767
8807
|
init_signatures();
|
|
@@ -8839,7 +8879,7 @@ var init_providerCatalogue = __esm({
|
|
|
8839
8879
|
|
|
8840
8880
|
// src/launcher/modelPicker.ts
|
|
8841
8881
|
function labelOf(model) {
|
|
8842
|
-
return
|
|
8882
|
+
return withoutContextMarker(model);
|
|
8843
8883
|
}
|
|
8844
8884
|
function describedAs(model, description) {
|
|
8845
8885
|
return model.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? `${description}; 1M context` : description;
|
|
@@ -8928,9 +8968,8 @@ function routedModelRows(models, providers) {
|
|
|
8928
8968
|
if (provider.kind !== void 0 && provider.kind !== "http") {
|
|
8929
8969
|
continue;
|
|
8930
8970
|
}
|
|
8931
|
-
const
|
|
8932
|
-
|
|
8933
|
-
if (match?.[0].endsWith("_MODEL") === true) {
|
|
8971
|
+
const match = Object.entries(provider.env ?? {}).find(([key, value]) => value === model && key.startsWith("ANTHROPIC_DEFAULT_") && key.endsWith("_MODEL"));
|
|
8972
|
+
if (match !== void 0) {
|
|
8934
8973
|
const tier = match[0].replace("ANTHROPIC_DEFAULT_", "").replace("_MODEL", "").toLowerCase();
|
|
8935
8974
|
return tier === "fable" || tier === "opus" || tier === "sonnet" || tier === "haiku" ? tier : void 0;
|
|
8936
8975
|
}
|
|
@@ -8955,7 +8994,7 @@ function modelPickerSettings(provider, catalogue = []) {
|
|
|
8955
8994
|
function modelPickerSettingsFromRows(options, replaceBuiltInOptions) {
|
|
8956
8995
|
return options.length === 0 ? void 0 : JSON.stringify({ modelPicker: { options, replaceBuiltInOptions } });
|
|
8957
8996
|
}
|
|
8958
|
-
var
|
|
8997
|
+
var TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
|
|
8959
8998
|
var init_modelPicker = __esm({
|
|
8960
8999
|
"src/launcher/modelPicker.ts"() {
|
|
8961
9000
|
"use strict";
|
|
@@ -8963,7 +9002,7 @@ var init_modelPicker = __esm({
|
|
|
8963
9002
|
init_translate2();
|
|
8964
9003
|
init_providerCatalogue();
|
|
8965
9004
|
init_schema();
|
|
8966
|
-
|
|
9005
|
+
init_identity2();
|
|
8967
9006
|
TIER_BEHAVES_AS = Object.freeze({
|
|
8968
9007
|
fable: "claude-fable-5-1",
|
|
8969
9008
|
opus: "claude-opus-5-5",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-use",
|
|
3
|
-
"version": "11.40.
|
|
3
|
+
"version": "11.40.2",
|
|
4
4
|
"description": "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Joseph Mearman <joseph@mearman.co.uk>",
|