claude-use 11.9.0 → 11.11.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.cjs CHANGED
@@ -346,10 +346,10 @@ var init_schema = __esm({
346
346
  ANTIGRAVITY_EFFORTS = ["none", "low", "medium", "high", "xhigh", "max"];
347
347
  ANTIGRAVITY_DEFAULT_MODE = "cloud";
348
348
  ANTIGRAVITY_DEFAULT_TIER_MODELS = Object.freeze({
349
- fable: "gemini-2.5-pro",
350
- opus: "gemini-2.5-pro",
351
- sonnet: "gemini-2.5-flash",
352
- haiku: "gemini-2.5-flash"
349
+ fable: "gemini-3.8-flash-high",
350
+ opus: "gemini-3.8-flash-high",
351
+ sonnet: "gemini-3.8-flash-medium",
352
+ haiku: "gemini-3.8-flash-low"
353
353
  });
354
354
  AntigravityProviderConfigSchema = import_zod.z.strictObject({
355
355
  /** Operational mode: direct cloud endpoint or local ACP daemon. Defaults to `cloud`. */
@@ -2841,7 +2841,7 @@ var init_package = __esm({
2841
2841
  "package.json"() {
2842
2842
  package_default = {
2843
2843
  name: "claude-use",
2844
- version: "11.9.0",
2844
+ version: "11.11.0",
2845
2845
  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.",
2846
2846
  license: "MIT",
2847
2847
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -4670,7 +4670,7 @@ var init_identity = __esm({
4670
4670
  });
4671
4671
 
4672
4672
  // src/usage/schema.ts
4673
- var import_zod10, USAGE_SCHEMA_VERSION, VersionSchema, InstantSchema, TokenCountSchema, TokenUsageSchema, LIMIT_KINDS, LimitClassificationSchema, UsageRecordSchema, QuotaWindowSchema, ExtraUsageSpendSchema, UnifiedRateLimitSchema, RateLimitStateSchema, LimitEventSchema, ProviderQuotaWindowSchema, ProviderQuotaSchema, ProviderUsageStateSchema, AccountMetadataSchema, UsageSnapshotSchema;
4673
+ var import_zod10, USAGE_SCHEMA_VERSION, VersionSchema, InstantSchema, TokenCountSchema, TokenUsageSchema, LIMIT_KINDS, LimitClassificationSchema, UsageRecordSchema, QuotaWindowSchema, ExtraUsageSpendSchema, UnifiedRateLimitSchema, RateLimitStateSchema, LimitEventSchema, ProviderQuotaWindowSchema, ProviderAccountSchema, ProviderQuotaSchema, ProviderUsageStateSchema, AccountMetadataSchema, UsageSnapshotSchema;
4674
4674
  var init_schema2 = __esm({
4675
4675
  "src/usage/schema.ts"() {
4676
4676
  "use strict";
@@ -4802,12 +4802,18 @@ var init_schema2 = __esm({
4802
4802
  used: import_zod10.z.number().nonnegative().optional(),
4803
4803
  remaining: import_zod10.z.number().nonnegative().optional()
4804
4804
  });
4805
+ ProviderAccountSchema = import_zod10.z.strictObject({
4806
+ email: import_zod10.z.string().optional(),
4807
+ accountId: import_zod10.z.string().optional()
4808
+ });
4805
4809
  ProviderQuotaSchema = import_zod10.z.strictObject({
4806
4810
  observedAt: InstantSchema,
4807
4811
  /** Which usage endpoint produced it (`z.ai`). */
4808
4812
  source: import_zod10.z.string(),
4809
4813
  /** The subscription level the endpoint reports, when it does. */
4810
4814
  level: import_zod10.z.string().optional(),
4815
+ /** The account the provider's credential belongs to, when its endpoint reports it. */
4816
+ account: ProviderAccountSchema.optional(),
4811
4817
  windows: import_zod10.z.array(ProviderQuotaWindowSchema)
4812
4818
  });
4813
4819
  ProviderUsageStateSchema = import_zod10.z.strictObject({
@@ -6197,11 +6203,33 @@ function formatCredentialSummary(summary) {
6197
6203
  function describeCredential(credential) {
6198
6204
  return formatCredentialSummary(summariseCredential(credential));
6199
6205
  }
6206
+ function isRecord5(value) {
6207
+ return typeof value === "object" && value !== null && !Array.isArray(value);
6208
+ }
6209
+ function unpackKeyringToken(raw) {
6210
+ const trimmed = raw.trim();
6211
+ if (!trimmed.startsWith(GO_KEYRING_BASE64_PREFIX)) {
6212
+ return trimmed;
6213
+ }
6214
+ try {
6215
+ const base64Str = trimmed.slice(GO_KEYRING_BASE64_PREFIX.length);
6216
+ const decoded = Buffer.from(base64Str, "base64").toString("utf8");
6217
+ const parsed = JSON.parse(decoded);
6218
+ if (isRecord5(parsed) && isRecord5(parsed.token)) {
6219
+ const accessToken = parsed.token.access_token;
6220
+ if (typeof accessToken === "string" && accessToken.trim() !== "") {
6221
+ return accessToken.trim();
6222
+ }
6223
+ }
6224
+ } catch {
6225
+ }
6226
+ return trimmed;
6227
+ }
6200
6228
  function trySource(source, params) {
6201
6229
  const none = (reason, warn = false) => ({ ok: false, reason, warn });
6202
6230
  if ("env" in source) {
6203
6231
  const value = params.env[source.env];
6204
- return value === void 0 || value === "" ? none("is unset or empty") : { ok: true, token: value };
6232
+ return value === void 0 || value === "" ? none("is unset or empty") : { ok: true, token: unpackKeyringToken(value) };
6205
6233
  }
6206
6234
  if ("literal" in source) {
6207
6235
  return { ok: true, token: source.literal };
@@ -6217,7 +6245,7 @@ function trySource(source, params) {
6217
6245
  true
6218
6246
  );
6219
6247
  }
6220
- const token2 = read.content.trim();
6248
+ const token2 = unpackKeyringToken(read.content.trim());
6221
6249
  return token2 === "" ? none("is empty") : { ok: true, token: token2 };
6222
6250
  }
6223
6251
  const argv = commandArgv(source);
@@ -6235,7 +6263,7 @@ function trySource(source, params) {
6235
6263
  const outcome = result.status === null ? "could not be run or was killed by a signal" : `exited with status ${String(result.status)}`;
6236
6264
  return none(`${outcome}${stderr === "" ? "" : `: ${stderr}`}`);
6237
6265
  }
6238
- const token = result.stdout.trim();
6266
+ const token = unpackKeyringToken(result.stdout.trim());
6239
6267
  return token === "" ? none("printed no token") : { ok: true, token };
6240
6268
  }
6241
6269
  function warmCommandFor(subject) {
@@ -6279,7 +6307,7 @@ function credentialVariables(target, token) {
6279
6307
  CLAUDE_CODE_OAUTH_TOKEN: target === "oauthToken" ? token : void 0
6280
6308
  };
6281
6309
  }
6282
- var CREDENTIAL_UNAVAILABLE_EXIT, CREDENTIAL_COMMAND_TIMEOUT_MS, CREDENTIAL_INTERACTIVE_TIMEOUT_MS, GROUP_OTHER_PERMISSION_BITS, PERMISSION_BITS2, OCTAL_RADIX2;
6310
+ var CREDENTIAL_UNAVAILABLE_EXIT, CREDENTIAL_COMMAND_TIMEOUT_MS, CREDENTIAL_INTERACTIVE_TIMEOUT_MS, GROUP_OTHER_PERMISSION_BITS, PERMISSION_BITS2, OCTAL_RADIX2, GO_KEYRING_BASE64_PREFIX;
6283
6311
  var init_credential = __esm({
6284
6312
  "src/credential.ts"() {
6285
6313
  "use strict";
@@ -6290,6 +6318,7 @@ var init_credential = __esm({
6290
6318
  GROUP_OTHER_PERMISSION_BITS = 63;
6291
6319
  PERMISSION_BITS2 = 511;
6292
6320
  OCTAL_RADIX2 = 8;
6321
+ GO_KEYRING_BASE64_PREFIX = "go-keyring-base64:";
6293
6322
  }
6294
6323
  });
6295
6324
 
@@ -6300,14 +6329,14 @@ function providerJsonPath(paths, name) {
6300
6329
  function providerExists(paths, name) {
6301
6330
  return import_node_fs6.default.existsSync(providerJsonPath(paths, name));
6302
6331
  }
6303
- function isRecord5(value) {
6332
+ function isRecord6(value) {
6304
6333
  return typeof value === "object" && value !== null && !Array.isArray(value);
6305
6334
  }
6306
6335
  function legacyProviderConversion(raw) {
6307
- if (!isRecord5(raw) || "credential" in raw) {
6336
+ if (!isRecord6(raw) || "credential" in raw) {
6308
6337
  return void 0;
6309
6338
  }
6310
- const env = isRecord5(raw.env) ? raw.env : void 0;
6339
+ const env = isRecord6(raw.env) ? raw.env : void 0;
6311
6340
  const legacyEnvKeys = env === void 0 ? [] : Object.keys(env).filter((key) => LEGACY_ENV_CREDENTIAL_KEYS.includes(key));
6312
6341
  const fields = [...LEGACY_PROVIDER_FIELDS.filter((field) => field in raw), ...legacyEnvKeys.map((key) => `env.${key}`)];
6313
6342
  if (fields.length === 0) {
@@ -8687,12 +8716,20 @@ var init_identityClaude = __esm({
8687
8716
  }
8688
8717
  });
8689
8718
 
8719
+ // src/antigravity/cloudUpstream.ts
8720
+ var init_cloudUpstream = __esm({
8721
+ "src/antigravity/cloudUpstream.ts"() {
8722
+ "use strict";
8723
+ }
8724
+ });
8725
+
8690
8726
  // src/usage/providerQuota.ts
8691
- var import_zod29, MS_PER_SECOND7, SECONDS_PER_HOUR, HOURS_PER_DAY4, DAYS_PER_MONTH, ZAI_HOST, ZAI_QUOTA_URL, ZAI_UNIT_HOURS, ZAI_UNIT_MONTHS, ZAI_UNIT_MS, ZaiLimitSchema, ZaiResponseSchema, OPENROUTER_HOST, OPENROUTER_KEY_URL, OPENROUTER_CREDITS_URL, MS_PER_DAY3, OpenRouterKeySchema, OpenRouterCreditsSchema;
8727
+ var import_zod29, MS_PER_SECOND7, SECONDS_PER_HOUR, HOURS_PER_DAY4, DAYS_PER_MONTH, ZAI_HOST, ZAI_QUOTA_URL, ZAI_UNIT_HOURS, ZAI_UNIT_MONTHS, ZAI_UNIT_MS, ZaiLimitSchema, ZaiResponseSchema, OPENROUTER_HOST, OPENROUTER_KEY_URL, OPENROUTER_CREDITS_URL, MS_PER_DAY3, OpenRouterKeySchema, OpenRouterCreditsSchema, ANTIGRAVITY_HOST, ANTIGRAVITY_QUOTA_URL, FIVE_HOURS2, DAYS_PER_WEEK, FIVE_HOURS_MS, WEEK_MS, AntigravityBucketSchema, AntigravitySummarySchema, GoogleTokenInfoSchema;
8692
8728
  var init_providerQuota = __esm({
8693
8729
  "src/usage/providerQuota.ts"() {
8694
8730
  "use strict";
8695
8731
  import_zod29 = require("zod");
8732
+ init_cloudUpstream();
8696
8733
  init_schema2();
8697
8734
  MS_PER_SECOND7 = 1e3;
8698
8735
  SECONDS_PER_HOUR = 3600;
@@ -8735,6 +8772,22 @@ var init_providerQuota = __esm({
8735
8772
  })
8736
8773
  });
8737
8774
  OpenRouterCreditsSchema = import_zod29.z.object({ data: import_zod29.z.object({ total_credits: import_zod29.z.number().nonnegative(), total_usage: import_zod29.z.number().nonnegative() }) });
8775
+ ANTIGRAVITY_HOST = "daily-cloudcode-pa.googleapis.com";
8776
+ ANTIGRAVITY_QUOTA_URL = `https://${ANTIGRAVITY_HOST}/v1internal:retrieveUserQuotaSummary`;
8777
+ FIVE_HOURS2 = 5;
8778
+ DAYS_PER_WEEK = 7;
8779
+ FIVE_HOURS_MS = FIVE_HOURS2 * SECONDS_PER_HOUR * MS_PER_SECOND7;
8780
+ WEEK_MS = DAYS_PER_WEEK * HOURS_PER_DAY4 * SECONDS_PER_HOUR * MS_PER_SECOND7;
8781
+ AntigravityBucketSchema = import_zod29.z.object({
8782
+ bucketId: import_zod29.z.string(),
8783
+ remainingFraction: import_zod29.z.number().optional(),
8784
+ resetTime: import_zod29.z.string().optional()
8785
+ });
8786
+ AntigravitySummarySchema = import_zod29.z.object({ groups: import_zod29.z.array(import_zod29.z.object({ buckets: import_zod29.z.array(AntigravityBucketSchema) })) });
8787
+ GoogleTokenInfoSchema = import_zod29.z.object({
8788
+ email: import_zod29.z.string().optional(),
8789
+ sub: import_zod29.z.string().optional()
8790
+ });
8738
8791
  }
8739
8792
  });
8740
8793
 
@@ -16254,15 +16307,15 @@ function createQuotaExpiringPublisher(hub, deps) {
16254
16307
 
16255
16308
  // src/frontdoor/rcLiveUsage.ts
16256
16309
  var RC_RATE_LIMIT_EVENT_TYPE = "rate_limit_event";
16257
- function isRecord6(value) {
16310
+ function isRecord7(value) {
16258
16311
  return typeof value === "object" && value !== null && !Array.isArray(value);
16259
16312
  }
16260
16313
  function rcRateLimitInfoOf(event) {
16261
16314
  const payload = event.envelope.payload;
16262
- if (!isRecord6(payload) || payload.type !== RC_RATE_LIMIT_EVENT_TYPE) {
16315
+ if (!isRecord7(payload) || payload.type !== RC_RATE_LIMIT_EVENT_TYPE) {
16263
16316
  return void 0;
16264
16317
  }
16265
- if (!isRecord6(payload.rate_limit_info)) {
16318
+ if (!isRecord7(payload.rate_limit_info)) {
16266
16319
  return void 0;
16267
16320
  }
16268
16321
  const parsed = RcRateLimitInfoSchema.safeParse(payload.rate_limit_info);
@@ -16350,7 +16403,7 @@ function createSseParser() {
16350
16403
  }
16351
16404
  };
16352
16405
  }
16353
- function isRecord7(value) {
16406
+ function isRecord8(value) {
16354
16407
  return typeof value === "object" && value !== null && !Array.isArray(value);
16355
16408
  }
16356
16409
  function sequenceNumOf(value) {
@@ -16372,7 +16425,7 @@ function parseRcStreamEnvelope(parsed) {
16372
16425
  } catch {
16373
16426
  return void 0;
16374
16427
  }
16375
- if (!isRecord7(data)) {
16428
+ if (!isRecord8(data)) {
16376
16429
  return void 0;
16377
16430
  }
16378
16431
  const eventType = data.event_type;
@@ -16613,7 +16666,7 @@ init_capability();
16613
16666
  // src/frontdoor/rcSelfHostEndpoints.ts
16614
16667
  var RC_SOURCE_WORKER = "worker";
16615
16668
  var RC_SOURCE_CLIENT = "client";
16616
- function isRecord8(value) {
16669
+ function isRecord9(value) {
16617
16670
  return typeof value === "object" && value !== null && !Array.isArray(value);
16618
16671
  }
16619
16672
  function parseJsonObject2(body) {
@@ -16623,7 +16676,7 @@ function parseJsonObject2(body) {
16623
16676
  } catch {
16624
16677
  return void 0;
16625
16678
  }
16626
- return isRecord8(parsed) ? parsed : void 0;
16679
+ return isRecord9(parsed) ? parsed : void 0;
16627
16680
  }
16628
16681
  function nonEmptyString2(record, field) {
16629
16682
  const value = record === void 0 ? void 0 : record[field];
@@ -16697,7 +16750,7 @@ async function serveRcClientChannels(ctx, tail, method, maxBatchEvents) {
16697
16750
  }
16698
16751
  const results = [];
16699
16752
  for (const event of events) {
16700
- if (!isRecord8(event) || !isRecord8(event.payload)) {
16753
+ if (!isRecord9(event) || !isRecord9(event.payload)) {
16701
16754
  await ctx.answerJson(response, HTTP_STATUS.badRequest, { type: "error", error: { type: "invalid_request_error", message: "every event in a teleport write is an object carrying one payload object" } });
16702
16755
  return true;
16703
16756
  }
@@ -16797,7 +16850,7 @@ async function serveRcCompatSessions(ctx, pathname, compatPath) {
16797
16850
  // src/frontdoor/rcSelfHostConversations.ts
16798
16851
  var RC_CONVERSATIONS_PATH_PREFIX = "/v1/code/conversations";
16799
16852
  var RC_CONVERSATION_ID_PREFIX = "conv_";
16800
- function isRecord9(value) {
16853
+ function isRecord10(value) {
16801
16854
  return typeof value === "object" && value !== null && !Array.isArray(value);
16802
16855
  }
16803
16856
  function parseJsonObject3(body) {
@@ -16807,7 +16860,7 @@ function parseJsonObject3(body) {
16807
16860
  } catch {
16808
16861
  return void 0;
16809
16862
  }
16810
- return isRecord9(parsed) ? parsed : void 0;
16863
+ return isRecord10(parsed) ? parsed : void 0;
16811
16864
  }
16812
16865
  function nonEmptyString3(record, field) {
16813
16866
  const value = record === void 0 ? void 0 : record[field];
@@ -16861,7 +16914,7 @@ async function serveRcConversations(ctx, pathname, method) {
16861
16914
  }
16862
16915
  const results = [];
16863
16916
  for (const event of events) {
16864
- if (!isRecord9(event) || !isRecord9(event.payload)) {
16917
+ if (!isRecord10(event) || !isRecord10(event.payload)) {
16865
16918
  await ctx.answerJson(response, HTTP_STATUS.badRequest, { type: "error", error: { type: "invalid_request_error", message: "every event in a write is an object carrying one payload object" } });
16866
16919
  return;
16867
16920
  }
@@ -16893,7 +16946,7 @@ var RC_SELF_HOST_SCOPE_LIST = ["user:profile", "user:inference", "user:sessions:
16893
16946
  var RC_SELF_HOST_OAUTH_TOKEN_TTL_SECONDS = 3600;
16894
16947
  var MS_PER_SECOND5 = 1e3;
16895
16948
  var HTTP_SERVICE_UNAVAILABLE = 503;
16896
- function isRecord10(value) {
16949
+ function isRecord11(value) {
16897
16950
  return typeof value === "object" && value !== null && !Array.isArray(value);
16898
16951
  }
16899
16952
  function parseJsonObject4(body) {
@@ -16903,7 +16956,7 @@ function parseJsonObject4(body) {
16903
16956
  } catch {
16904
16957
  return void 0;
16905
16958
  }
16906
- return isRecord10(parsed) ? parsed : void 0;
16959
+ return isRecord11(parsed) ? parsed : void 0;
16907
16960
  }
16908
16961
  function growthBookFeatures() {
16909
16962
  return {
@@ -17257,7 +17310,7 @@ var RC_SELF_HOST_WORKER_EPOCH = 1;
17257
17310
  var RC_STREAM_EVENT_NAME2 = "client_event";
17258
17311
  var CONFLICT_REASON_HEADER2 = "x-ccr-conflict-reason";
17259
17312
  var CONFLICT_REASON_EPOCH_STALE = "epoch_stale";
17260
- function isRecord11(value) {
17313
+ function isRecord12(value) {
17261
17314
  return typeof value === "object" && value !== null && !Array.isArray(value);
17262
17315
  }
17263
17316
  function isWebSearchRefusal(value) {
@@ -17341,7 +17394,7 @@ function parseJsonObject5(body) {
17341
17394
  } catch {
17342
17395
  return void 0;
17343
17396
  }
17344
- return isRecord11(parsed) ? parsed : void 0;
17397
+ return isRecord12(parsed) ? parsed : void 0;
17345
17398
  }
17346
17399
  function mintWorkerJwt(randomToken, issuedAt) {
17347
17400
  const encode = (value) => Buffer.from(JSON.stringify(value), "utf8").toString("base64url");
@@ -17601,7 +17654,7 @@ data: ${JSON.stringify(envelope)}
17601
17654
  if (status !== void 0) {
17602
17655
  session.workerStatus = status;
17603
17656
  }
17604
- if (isRecord11(body?.external_metadata)) {
17657
+ if (isRecord12(body?.external_metadata)) {
17605
17658
  session.externalMetadata = body.external_metadata;
17606
17659
  }
17607
17660
  await answerJson2(response, HTTP_STATUS.ok, {});
@@ -17631,7 +17684,7 @@ data: ${JSON.stringify(envelope)}
17631
17684
  }
17632
17685
  const results = [];
17633
17686
  for (const event of events) {
17634
- if (!isRecord11(event) || !isRecord11(event.payload)) {
17687
+ if (!isRecord12(event) || !isRecord12(event.payload)) {
17635
17688
  await answerJson2(response, HTTP_STATUS.badRequest, { type: "error", error: { type: "invalid_request_error", message: "every event in a batch is an object carrying one payload object" } });
17636
17689
  return;
17637
17690
  }
@@ -17664,7 +17717,7 @@ data: ${JSON.stringify(envelope)}
17664
17717
  return;
17665
17718
  }
17666
17719
  for (const event of events) {
17667
- if (isRecord11(event)) {
17720
+ if (isRecord12(event)) {
17668
17721
  session.internalEvents.push({ eventId: deps.newUuid(), body: event });
17669
17722
  }
17670
17723
  }
@@ -17760,7 +17813,7 @@ data: ${JSON.stringify(envelope)}
17760
17813
  }
17761
17814
  const results = [];
17762
17815
  for (const event of events) {
17763
- if (!isRecord11(event) || !isRecord11(event.payload)) {
17816
+ if (!isRecord12(event) || !isRecord12(event.payload)) {
17764
17817
  await answerJson2(response, HTTP_STATUS.badRequest, { type: "error", error: { type: "invalid_request_error", message: "every event in a write is an object carrying one payload object" } });
17765
17818
  return;
17766
17819
  }
@@ -17897,7 +17950,7 @@ var RC_SELF_HOST_RECORD_DIR = "rc-selfhost";
17897
17950
  var RC_SELF_HOST_RECORD_FILE = "credential.json";
17898
17951
  var SELF_HOST_EMAIL = "selfhost@agent-shim.invalid";
17899
17952
  var SELF_HOST_SUBSCRIPTION_TYPE = "max";
17900
- function isRecord12(value) {
17953
+ function isRecord13(value) {
17901
17954
  return typeof value === "object" && value !== null && !Array.isArray(value);
17902
17955
  }
17903
17956
  function readJsonObject(fs13, file) {
@@ -17911,7 +17964,7 @@ function readJsonObject(fs13, file) {
17911
17964
  } catch {
17912
17965
  return void 0;
17913
17966
  }
17914
- return isRecord12(parsed) ? parsed : void 0;
17967
+ return isRecord13(parsed) ? parsed : void 0;
17915
17968
  }
17916
17969
  function readRcSelfHostRecord(fs13, frontdoorDir) {
17917
17970
  const parsed = readJsonObject(fs13, import_node_path33.default.join(frontdoorDir, RC_SELF_HOST_RECORD_DIR, RC_SELF_HOST_RECORD_FILE));
@@ -17935,7 +17988,7 @@ function mintRcSelfHostCredential(deps) {
17935
17988
  const recordFile = import_node_path33.default.join(recordDir, RC_SELF_HOST_RECORD_FILE);
17936
17989
  const previousRecord = readRcSelfHostRecord(deps.fs, deps.frontdoorDir);
17937
17990
  const existingCredentials = readJsonObject(deps.fs, credentialsFile);
17938
- const existingOauth = isRecord12(existingCredentials?.claudeAiOauth) ? existingCredentials.claudeAiOauth : void 0;
17991
+ const existingOauth = isRecord13(existingCredentials?.claudeAiOauth) ? existingCredentials.claudeAiOauth : void 0;
17939
17992
  const existingToken = typeof existingOauth?.accessToken === "string" && existingOauth.accessToken !== "" ? existingOauth.accessToken : void 0;
17940
17993
  const existingIsOwn = existingToken !== void 0 && previousRecord?.accessToken === existingToken;
17941
17994
  if (existingToken !== void 0 && !existingIsOwn && !deps.force) {
@@ -17952,7 +18005,7 @@ function mintRcSelfHostCredential(deps) {
17952
18005
  deps.fs.writeFilePrivate(credentialsFile, `${JSON.stringify({ ...existingCredentials, claudeAiOauth: { accessToken, refreshToken, expiresAt: null, scopes: [...RC_SELF_HOST_SCOPE_LIST], subscriptionType: SELF_HOST_SUBSCRIPTION_TYPE, rateLimitTier: null } }, null, 2)}
17953
18006
  `);
17954
18007
  const claudeJson = readJsonObject(deps.fs, claudeJsonFile) ?? {};
17955
- const existingBlock = (value) => isRecord12(value) ? value : {};
18008
+ const existingBlock = (value) => isRecord13(value) ? value : {};
17956
18009
  deps.fs.writeFilePrivate(claudeJsonFile, `${JSON.stringify({
17957
18010
  ...claudeJson,
17958
18011
  oauthAccount: {