claude-use 11.40.1 → 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 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.1",
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 = requested.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? requested.slice(0, -CONTEXT_MARKER_1M.length) : requested;
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, CONTEXT_MARKER_1M, 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;
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 model.toLowerCase().endsWith(CONTEXT_MARKER_1M2) ? model.slice(0, -CONTEXT_MARKER_1M2.length) : model;
65529
+ return withoutContextMarker(model);
65405
65530
  }
65406
65531
  function describedAs(model, description) {
65407
- return model.toLowerCase().endsWith(CONTEXT_MARKER_1M2) ? `${description}; 1M context` : description;
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];
@@ -65516,7 +65641,7 @@ function modelPickerSettings(provider, catalogue = []) {
65516
65641
  function modelPickerSettingsFromRows(options, replaceBuiltInOptions) {
65517
65642
  return options.length === 0 ? void 0 : JSON.stringify({ modelPicker: { options, replaceBuiltInOptions } });
65518
65643
  }
65519
- var CONTEXT_MARKER_1M2, TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
65644
+ var TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
65520
65645
  var init_modelPicker = __esm({
65521
65646
  "src/launcher/modelPicker.ts"() {
65522
65647
  "use strict";
@@ -65524,7 +65649,7 @@ var init_modelPicker = __esm({
65524
65649
  init_translate2();
65525
65650
  init_providerCatalogue();
65526
65651
  init_schema();
65527
- CONTEXT_MARKER_1M2 = "[1m]";
65652
+ init_identity2();
65528
65653
  TIER_BEHAVES_AS = Object.freeze({
65529
65654
  fable: "claude-fable-5-1",
65530
65655
  opus: "claude-opus-5-5",
@@ -131422,6 +131547,7 @@ function candidateOf(ref, order, facts, isCurrent) {
131422
131547
 
131423
131548
  // src/frontdoor/providerRoute.ts
131424
131549
  init_engine();
131550
+ init_identity2();
131425
131551
  init_route();
131426
131552
  var import_node_stream3 = require("node:stream");
131427
131553
 
@@ -131517,7 +131643,7 @@ function resolveRoutedModel(model, providerName, session, includeUnqualified, de
131517
131643
  if (qualified !== void 0) {
131518
131644
  const [provider2, ...rest2] = qualified.split("/");
131519
131645
  const named = rest2.join("/");
131520
- 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 };
131521
131647
  }
131522
131648
  const virtual = models?.virtual?.[model];
131523
131649
  if (virtual === void 0 || !includeUnqualified) {
@@ -131547,7 +131673,7 @@ function resolveRoutedModel(model, providerName, session, includeUnqualified, de
131547
131673
  }
131548
131674
  const [provider, ...rest] = selection.ref.split("/");
131549
131675
  const chosen = rest.join("/");
131550
- 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 };
131551
131677
  }
131552
131678
  function resolveAccountTarget(model, models) {
131553
131679
  if (model.startsWith("acct:")) {
@@ -147520,123 +147646,7 @@ init_providerCatalogue();
147520
147646
  init_realPorts();
147521
147647
  init_schema();
147522
147648
  init_cliError();
147523
-
147524
- // src/models/identity.ts
147525
- var NON_IDENTITY_BRACKET_RE = /\[[^\]]*\]/g;
147526
- var DATE_STAMP_RE = /-(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])$/;
147527
- var KNOWN_VARIANTS = /* @__PURE__ */ new Set(["high", "medium", "low", "thinking", "xhigh", "max", "highspeed", "sol", "terra", "luna", "mini", "flash-lite", "turbo"]);
147528
- var VENDOR_BY_NAMESPACE = Object.freeze({
147529
- anthropic: "anthropic",
147530
- google: "google",
147531
- openai: "openai",
147532
- zai: "zai",
147533
- "z-ai": "zai",
147534
- minimax: "minimax",
147535
- qwen: "qwen",
147536
- deepseek: "deepseek",
147537
- moonshot: "moonshot",
147538
- meta: "meta",
147539
- mistral: "mistral"
147540
- });
147541
- var VENDOR_BY_TOKEN = Object.freeze({
147542
- claude: "anthropic",
147543
- gemini: "google",
147544
- antigravity: "google",
147545
- gpt: "openai",
147546
- glm: "zai",
147547
- minimax: "minimax",
147548
- qwen: "qwen",
147549
- deepseek: "deepseek",
147550
- kimi: "moonshot",
147551
- llama: "meta",
147552
- mistral: "mistral",
147553
- mixtral: "mistral"
147554
- });
147555
- function canonicalText(name) {
147556
- return name.trim().toLowerCase().replace(NON_IDENTITY_BRACKET_RE, "").replace(/[\s_]+/g, "-").replace(/([a-z])(\d+(?:\.\d+)+)/g, "$1-$2").replace(/-+/g, "-").replace(/^-|-$/g, "");
147557
- }
147558
- function splitVariants(tokens) {
147559
- const variants = [];
147560
- let end = tokens.length;
147561
- for (; ; ) {
147562
- const token = tokens[end - 1];
147563
- if (token === void 0 || !KNOWN_VARIANTS.has(token)) {
147564
- return { familyTokens: tokens.slice(0, end), variants };
147565
- }
147566
- variants.unshift(token);
147567
- end -= 1;
147568
- }
147569
- }
147570
- function versionOf(tokens) {
147571
- for (let index = 0; index < tokens.length; index += 1) {
147572
- const token = tokens[index];
147573
- const next = tokens[index + 1];
147574
- if (token === void 0) {
147575
- return "";
147576
- }
147577
- if (/^\d+$/.test(token) && next !== void 0 && /^\d+$/.test(next)) {
147578
- return `${token}.${next}`;
147579
- }
147580
- const dotted = /^\d+(?:\.\d+)+$/.exec(token);
147581
- if (dotted !== null) {
147582
- return dotted[0];
147583
- }
147584
- }
147585
- return "";
147586
- }
147587
- function modelIdentity(rawName) {
147588
- const segments = rawName.trim().toLowerCase().split("/");
147589
- const stripped = canonicalText(segments[segments.length - 1] ?? "").split(":")[0] ?? "";
147590
- const withoutDate = stripped.replace(DATE_STAMP_RE, "");
147591
- const tokens = withoutDate.split("-").filter((token) => token !== "");
147592
- const { familyTokens, variants } = splitVariants(tokens);
147593
- const version2 = versionOf(familyTokens);
147594
- const versionless = familyTokens.filter((token, index) => {
147595
- if (version2 === "") {
147596
- return true;
147597
- }
147598
- const dotted = /^\d+(?:\.\d+)+$/.test(token);
147599
- const previous = familyTokens[index - 1];
147600
- const next = familyTokens[index + 1];
147601
- const insideVersionRun = dotted || /^\d+$/.test(token) && (previous !== void 0 && /^\d+$/.test(previous) || next !== void 0 && /^\d+$/.test(next));
147602
- return !insideVersionRun;
147603
- });
147604
- const family = versionless.join("-");
147605
- const tokenVendor = familyTokens.find((token) => Object.keys(VENDOR_BY_TOKEN).some((key) => token === key || token.startsWith(key)));
147606
- const namespace = segments.length >= 2 ? (segments[0] ?? "").split(":").pop() ?? "" : "";
147607
- const namespaceVendor = VENDOR_BY_NAMESPACE[namespace] ?? "";
147608
- const tokenVendorName = tokenVendor === void 0 ? "" : VENDOR_BY_TOKEN[Object.keys(VENDOR_BY_TOKEN).find((key) => tokenVendor === key || tokenVendor.startsWith(key)) ?? ""] ?? "";
147609
- return {
147610
- vendor: tokenVendorName === "" ? namespaceVendor : tokenVendorName,
147611
- vendorConflict: tokenVendorName !== "" && namespaceVendor !== "" && tokenVendorName !== namespaceVendor,
147612
- family,
147613
- version: version2,
147614
- variant: variants.join("-"),
147615
- familyAndVersion: version2 === "" ? family : `${family}-${version2.replace(/\./g, "-")}`
147616
- };
147617
- }
147618
- function relateModels(left, right) {
147619
- const a10 = modelIdentity(left);
147620
- const b = modelIdentity(right);
147621
- if (a10.familyAndVersion !== b.familyAndVersion) {
147622
- return sameFamilyOtherVersion(a10, b) ? "similar" : "distinct";
147623
- }
147624
- if (a10.variant !== b.variant || a10.vendorConflict || b.vendorConflict || a10.vendor !== "" && b.vendor !== "" && a10.vendor !== b.vendor) {
147625
- return "similar";
147626
- }
147627
- return "same";
147628
- }
147629
- function sameFamilyOtherVersion(a10, b) {
147630
- if (a10.family !== b.family) {
147631
- return false;
147632
- }
147633
- if (a10.vendor !== "" && b.vendor !== "" && a10.vendor !== b.vendor) {
147634
- return false;
147635
- }
147636
- return true;
147637
- }
147638
-
147639
- // src/models.ts
147649
+ init_identity2();
147640
147650
  init_modelsStore();
147641
147651
  init_realPorts();
147642
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.1",
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 model.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? model.slice(0, -CONTEXT_MARKER_1M.length) : model;
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;
@@ -8982,7 +9022,7 @@ function modelPickerSettings(provider, catalogue = []) {
8982
9022
  function modelPickerSettingsFromRows(options, replaceBuiltInOptions) {
8983
9023
  return options.length === 0 ? void 0 : JSON.stringify({ modelPicker: { options, replaceBuiltInOptions } });
8984
9024
  }
8985
- var CONTEXT_MARKER_1M, TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
9025
+ var TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
8986
9026
  var init_modelPicker = __esm({
8987
9027
  "src/launcher/modelPicker.ts"() {
8988
9028
  "use strict";
@@ -8990,7 +9030,7 @@ var init_modelPicker = __esm({
8990
9030
  init_translate2();
8991
9031
  init_providerCatalogue();
8992
9032
  init_schema();
8993
- CONTEXT_MARKER_1M = "[1m]";
9033
+ init_identity2();
8994
9034
  TIER_BEHAVES_AS = Object.freeze({
8995
9035
  fable: "claude-fable-5-1",
8996
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.1",
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 model.toLowerCase().endsWith(CONTEXT_MARKER_1M) ? model.slice(0, -CONTEXT_MARKER_1M.length) : model;
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;
@@ -8954,7 +8994,7 @@ function modelPickerSettings(provider, catalogue = []) {
8954
8994
  function modelPickerSettingsFromRows(options, replaceBuiltInOptions) {
8955
8995
  return options.length === 0 ? void 0 : JSON.stringify({ modelPicker: { options, replaceBuiltInOptions } });
8956
8996
  }
8957
- var CONTEXT_MARKER_1M, TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
8997
+ var TIER_BEHAVES_AS, TIER_ENV_VARIABLES;
8958
8998
  var init_modelPicker = __esm({
8959
8999
  "src/launcher/modelPicker.ts"() {
8960
9000
  "use strict";
@@ -8962,7 +9002,7 @@ var init_modelPicker = __esm({
8962
9002
  init_translate2();
8963
9003
  init_providerCatalogue();
8964
9004
  init_schema();
8965
- CONTEXT_MARKER_1M = "[1m]";
9005
+ init_identity2();
8966
9006
  TIER_BEHAVES_AS = Object.freeze({
8967
9007
  fable: "claude-fable-5-1",
8968
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.1",
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>",