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/cli.cjs +698 -315
- package/dist/index.cjs +90 -37
- package/dist/index.mjs +90 -37
- package/dist/types/index.d.ts +16 -0
- package/package.json +1 -1
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-
|
|
350
|
-
opus: "gemini-
|
|
351
|
-
sonnet: "gemini-
|
|
352
|
-
haiku: "gemini-
|
|
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.
|
|
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
|
|
6332
|
+
function isRecord6(value) {
|
|
6304
6333
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6305
6334
|
}
|
|
6306
6335
|
function legacyProviderConversion(raw) {
|
|
6307
|
-
if (!
|
|
6336
|
+
if (!isRecord6(raw) || "credential" in raw) {
|
|
6308
6337
|
return void 0;
|
|
6309
6338
|
}
|
|
6310
|
-
const env =
|
|
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
|
|
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 (!
|
|
16315
|
+
if (!isRecord7(payload) || payload.type !== RC_RATE_LIMIT_EVENT_TYPE) {
|
|
16263
16316
|
return void 0;
|
|
16264
16317
|
}
|
|
16265
|
-
if (!
|
|
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
|
|
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 (!
|
|
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
|
|
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
|
|
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 (!
|
|
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
|
|
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
|
|
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 (!
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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 (!
|
|
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 (
|
|
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 (!
|
|
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
|
|
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
|
|
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 =
|
|
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) =>
|
|
18008
|
+
const existingBlock = (value) => isRecord13(value) ? value : {};
|
|
17956
18009
|
deps.fs.writeFilePrivate(claudeJsonFile, `${JSON.stringify({
|
|
17957
18010
|
...claudeJson,
|
|
17958
18011
|
oauthAccount: {
|