@eddyskywalker/dsh-chatgpt-subscription 0.28.0 → 0.29.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/CHANGELOG.md +24 -0
- package/lib/client.js +274 -149
- package/lib/client.js.map +1 -1
- package/lib/index.js +125 -21
- package/lib/types/client/CodexSubscriptionSection.d.ts.map +1 -1
- package/lib/types/client/antigravity/locales.d.ts +11 -2
- package/lib/types/client/antigravity/locales.d.ts.map +1 -1
- package/lib/types/client/claude/locales.d.ts +11 -2
- package/lib/types/client/claude/locales.d.ts.map +1 -1
- package/lib/types/client/command-code/locales.d.ts +11 -2
- package/lib/types/client/command-code/locales.d.ts.map +1 -1
- package/lib/types/client/common/AccountPoolSection.d.ts +10 -2
- package/lib/types/client/common/AccountPoolSection.d.ts.map +1 -1
- package/lib/types/client/common/account-pool-labels.d.ts +17 -0
- package/lib/types/client/common/account-pool-labels.d.ts.map +1 -1
- package/lib/types/client/common/format.d.ts +14 -0
- package/lib/types/client/common/format.d.ts.map +1 -1
- package/lib/types/client/common/styles.d.ts.map +1 -1
- package/lib/types/client/glm-coding-plan/locales.d.ts +11 -2
- package/lib/types/client/glm-coding-plan/locales.d.ts.map +1 -1
- package/lib/types/client/glm-coding-plan/useGlmCodingPlanSection.d.ts.map +1 -1
- package/lib/types/client/kimi-code/locales.d.ts +11 -2
- package/lib/types/client/kimi-code/locales.d.ts.map +1 -1
- package/lib/types/client/locales.d.ts +7 -1
- package/lib/types/client/locales.d.ts.map +1 -1
- package/lib/types/client/minimax-code/locales.d.ts +11 -2
- package/lib/types/client/minimax-code/locales.d.ts.map +1 -1
- package/lib/types/client/minimax-code/useMinimaxCodeSection.d.ts.map +1 -1
- package/lib/types/client/ollama/locales.d.ts +18 -0
- package/lib/types/client/ollama/locales.d.ts.map +1 -1
- package/lib/types/client/progress-updates/index.d.ts.map +1 -1
- package/lib/types/client/step-code/locales.d.ts +11 -2
- package/lib/types/client/step-code/locales.d.ts.map +1 -1
- package/lib/types/client/step-code/useStepCodeSection.d.ts.map +1 -1
- package/lib/types/client/workbuddy/locales.d.ts +6 -0
- package/lib/types/client/workbuddy/locales.d.ts.map +1 -1
- package/lib/types/client/workbuddy/useWorkBuddySection.d.ts.map +1 -1
- package/lib/types/host/antigravity/account-pool.d.ts +17 -3
- package/lib/types/host/antigravity/account-pool.d.ts.map +1 -1
- package/lib/types/host/antigravity/adapter.d.ts +7 -2
- package/lib/types/host/antigravity/adapter.d.ts.map +1 -1
- package/lib/types/host/workbuddy/account-pool.d.ts +24 -0
- package/lib/types/host/workbuddy/account-pool.d.ts.map +1 -1
- package/lib/types/index.d.ts +2 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/shared/account-pool-contracts.d.ts +24 -0
- package/lib/types/shared/account-pool-contracts.d.ts.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -7425,6 +7425,8 @@ function antigravityPoolQuota(quota) {
|
|
|
7425
7425
|
}
|
|
7426
7426
|
return poolQuota(quota.fetchedAt, windows);
|
|
7427
7427
|
}
|
|
7428
|
+
/** How much of the upstream detail the family guard quotes in its message. */
|
|
7429
|
+
const MAX_DETAIL_CHARS = 500;
|
|
7428
7430
|
/**
|
|
7429
7431
|
* Antigravity's account pool.
|
|
7430
7432
|
*
|
|
@@ -7572,11 +7574,19 @@ var AccountPoolStore = class {
|
|
|
7572
7574
|
familyKey(accountId, family) {
|
|
7573
7575
|
return `${family}\u0000${accountId}`;
|
|
7574
7576
|
}
|
|
7575
|
-
/**
|
|
7576
|
-
|
|
7577
|
+
/**
|
|
7578
|
+
* Cool one account down for one quota family after an upstream 429.
|
|
7579
|
+
*
|
|
7580
|
+
* `detail` is what the upstream actually said, kept beside the cooldown it
|
|
7581
|
+
* caused: the pool sentence the guard raises is about the pool, and the
|
|
7582
|
+
* upstream statement is the only part that tells the user WHY the request
|
|
7583
|
+
* was refused.
|
|
7584
|
+
*/
|
|
7585
|
+
markFamilyCooldown(accountId, family, durationMs, reason, detail) {
|
|
7577
7586
|
this.familyCooldowns.set(this.familyKey(accountId, family), {
|
|
7578
7587
|
until: Date.now() + Math.max(1e3, durationMs),
|
|
7579
|
-
reason
|
|
7588
|
+
reason,
|
|
7589
|
+
...detail === void 0 || detail === "" ? {} : { detail }
|
|
7580
7590
|
});
|
|
7581
7591
|
}
|
|
7582
7592
|
/** Accounts whose allowance for this family is still cooling down. */
|
|
@@ -7590,11 +7600,26 @@ var AccountPoolStore = class {
|
|
|
7590
7600
|
}
|
|
7591
7601
|
return ids;
|
|
7592
7602
|
}
|
|
7593
|
-
|
|
7594
|
-
|
|
7603
|
+
/**
|
|
7604
|
+
* The family cooldown that expires soonest, with the account it belongs to.
|
|
7605
|
+
*
|
|
7606
|
+
* The wait the guard reports and the upstream detail it quotes come from
|
|
7607
|
+
* this ONE entry: two separate scans could pick different accounts, and the
|
|
7608
|
+
* message would then name a wait for one cooldown and a reason for another.
|
|
7609
|
+
*/
|
|
7610
|
+
soonestFamilyCooldown(family, now = Date.now()) {
|
|
7611
|
+
let soonest;
|
|
7595
7612
|
const prefix = `${family}\u0000`;
|
|
7596
|
-
for (const [key, entry] of this.familyCooldowns)
|
|
7597
|
-
|
|
7613
|
+
for (const [key, entry] of this.familyCooldowns) {
|
|
7614
|
+
if (!key.startsWith(prefix) || entry.until <= now) continue;
|
|
7615
|
+
if (soonest === void 0 || entry.until < soonest.until) soonest = {
|
|
7616
|
+
accountId: key.slice(prefix.length),
|
|
7617
|
+
until: entry.until,
|
|
7618
|
+
reason: entry.reason,
|
|
7619
|
+
...entry.detail === void 0 ? {} : { detail: entry.detail }
|
|
7620
|
+
};
|
|
7621
|
+
}
|
|
7622
|
+
return soonest ?? null;
|
|
7598
7623
|
}
|
|
7599
7624
|
/**
|
|
7600
7625
|
* {@link getEffectiveAccount} for one quota family: accounts whose allowance
|
|
@@ -7611,8 +7636,11 @@ var AccountPoolStore = class {
|
|
|
7611
7636
|
return await this.getEffectiveAccount(exclude, fetchFn);
|
|
7612
7637
|
} catch (error) {
|
|
7613
7638
|
if (cooling.size === 0 || !(error instanceof LlmError) || error.code !== "RATE_LIMIT") throw error;
|
|
7614
|
-
const
|
|
7615
|
-
|
|
7639
|
+
const soonest = this.soonestFamilyCooldown(family);
|
|
7640
|
+
const wait = soonest === null ? null : soonest.until - Date.now();
|
|
7641
|
+
const label = family === "gemini" ? "Gemini" : "Claude / GPT";
|
|
7642
|
+
const detail = soonest?.detail;
|
|
7643
|
+
throw new LlmError(`全部可用 Antigravity 账号的 ${label} 配额均处于限制或冷却中 (429)。` + (wait === null ? "" : `最短预计在 ${Math.ceil(wait / 6e4)} 分钟后解除冷却。`) + (detail === void 0 || detail === "" ? "" : `上游返回:${detail.length > MAX_DETAIL_CHARS ? `${detail.slice(0, MAX_DETAIL_CHARS)}…` : detail}`) + "其他模型族的配额不受影响,可切换到其他模型族继续使用。", "RATE_LIMIT", {
|
|
7616
7644
|
status: 429,
|
|
7617
7645
|
cause: error
|
|
7618
7646
|
});
|
|
@@ -7635,6 +7663,18 @@ function resolveDefaultReasoningEffort$4(efforts, configuredEffort) {
|
|
|
7635
7663
|
if (efforts.includes("low")) return ReasoningEffortId("low");
|
|
7636
7664
|
if (efforts.length > 0) return ReasoningEffortId(efforts[0]);
|
|
7637
7665
|
}
|
|
7666
|
+
/** How much of an upstream error body is quoted back to the user. */
|
|
7667
|
+
const MAX_UPSTREAM_BODY_CHARS = 500;
|
|
7668
|
+
/**
|
|
7669
|
+
* The upstream error body, short enough to read in a notice.
|
|
7670
|
+
*
|
|
7671
|
+
* A 429 body is small when the service states a reset time in it and can be an
|
|
7672
|
+
* arbitrary blob when it does not, so the excerpt is what a notice carries.
|
|
7673
|
+
*/
|
|
7674
|
+
function upstreamBodyExcerpt(body) {
|
|
7675
|
+
const text = body.trim();
|
|
7676
|
+
return text.length > MAX_UPSTREAM_BODY_CHARS ? `${text.slice(0, MAX_UPSTREAM_BODY_CHARS)}…` : text;
|
|
7677
|
+
}
|
|
7638
7678
|
/**
|
|
7639
7679
|
* Milliseconds in one duration string: protobuf JSON (`"12.5s"`) or Go form
|
|
7640
7680
|
* (`"1h2m3.5s"`, `"373.8ms"`). Undefined when the string is neither.
|
|
@@ -7894,6 +7934,7 @@ var AntigravityAdapter = class extends LlmAdapter {
|
|
|
7894
7934
|
...antigravityHeaders(token),
|
|
7895
7935
|
...model.id.startsWith("claude-") ? { "anthropic-beta": "interleaved-thinking-2025-05-14" } : {}
|
|
7896
7936
|
};
|
|
7937
|
+
let firstResponse;
|
|
7897
7938
|
for (const endpoint of endpointCandidates()) try {
|
|
7898
7939
|
let sentBody = body;
|
|
7899
7940
|
response = await fetchFn(`${endpoint}/v1internal:streamGenerateContent?alt=sse`, {
|
|
@@ -7959,23 +8000,34 @@ var AntigravityAdapter = class extends LlmAdapter {
|
|
|
7959
8000
|
});
|
|
7960
8001
|
}
|
|
7961
8002
|
}
|
|
8003
|
+
if (firstResponse === void 0) firstResponse = response;
|
|
7962
8004
|
if (response.ok || response.status === 400) break;
|
|
7963
8005
|
if (response.status === 404) break;
|
|
8006
|
+
if (response.status === 429) {
|
|
8007
|
+
response = firstResponse;
|
|
8008
|
+
break;
|
|
8009
|
+
}
|
|
8010
|
+
response = firstResponse;
|
|
7964
8011
|
} catch (err) {
|
|
7965
8012
|
if (signal.aborted) throw new LlmError("Antigravity request aborted", "ABORTED", { cause: err });
|
|
7966
8013
|
}
|
|
7967
8014
|
if (response && response.status === 429) {
|
|
7968
8015
|
const errorBody = await response.clone().text().catch(() => "");
|
|
7969
|
-
const
|
|
7970
|
-
|
|
7971
|
-
|
|
8016
|
+
const statedWaitMs = retryDelayMs(response.headers, errorBody);
|
|
8017
|
+
if (statedWaitMs !== void 0) {
|
|
8018
|
+
this.accountPool.markFamilyCooldown(account.id, family, statedWaitMs, "429 Rate Limit", upstreamBodyExcerpt(errorBody));
|
|
8019
|
+
if (await this.accountPool.hasAnotherAvailableAccountFor(family, triedAccountIds)) continue;
|
|
8020
|
+
}
|
|
7972
8021
|
}
|
|
7973
8022
|
break;
|
|
7974
8023
|
}
|
|
7975
8024
|
if (!response || !response.ok) {
|
|
7976
8025
|
const status = response?.status ?? 500;
|
|
7977
|
-
const errText = await response?.text().catch(() => "");
|
|
7978
|
-
if (status === 429)
|
|
8026
|
+
const errText = await response?.text().catch(() => "") ?? "";
|
|
8027
|
+
if (response && response.status === 429) {
|
|
8028
|
+
if (retryDelayMs(response.headers, errText) !== void 0) throw new LlmError(`Antigravity 账号配额已耗尽或请求受限 (429 RESOURCE_EXHAUSTED)。请在插件设置页查看配额剩余百分比及重置倒计时。原始响应: ${errText || "No response"}`, "RATE_LIMIT", { status: 429 });
|
|
8029
|
+
throw new LlmError(`Antigravity 上游返回 429 (RESOURCE_EXHAUSTED) 但未给出重置时间,因此按瞬时限流处理,不视为账号配额耗尽,也不会冷却该账号。原始响应: ${upstreamBodyExcerpt(errText) || "No response"}`, "SERVER", { status: 429 });
|
|
8030
|
+
}
|
|
7979
8031
|
throw new LlmError(`Antigravity API error (${status}): ${errText || "No response"}`, isHttpContextOverflow(status, errText) ? CONTEXT_OVERFLOW_CODE : "PROVIDER_ERROR", { status });
|
|
7980
8032
|
}
|
|
7981
8033
|
if (!response.body) throw new LlmError("Antigravity returned empty response body", "PROVIDER_ERROR");
|
|
@@ -8333,6 +8385,7 @@ async function requestImage(accountPool, store, fetchFn, prompt, aspectRatio, si
|
|
|
8333
8385
|
tried.add(account.id);
|
|
8334
8386
|
const body = JSON.stringify(buildImageRequest(prompt, projectId || "antigravity-default", aspectRatio));
|
|
8335
8387
|
let response;
|
|
8388
|
+
let firstResponse;
|
|
8336
8389
|
for (const endpoint of endpointCandidates()) try {
|
|
8337
8390
|
response = await fetchFn(`${endpoint}/v1internal:streamGenerateContent?alt=sse`, {
|
|
8338
8391
|
method: "POST",
|
|
@@ -8340,7 +8393,13 @@ async function requestImage(accountPool, store, fetchFn, prompt, aspectRatio, si
|
|
|
8340
8393
|
body,
|
|
8341
8394
|
signal
|
|
8342
8395
|
});
|
|
8396
|
+
if (firstResponse === void 0) firstResponse = response;
|
|
8343
8397
|
if (response.ok || response.status === 400 || response.status === 404) break;
|
|
8398
|
+
if (response.status === 429) {
|
|
8399
|
+
response = firstResponse;
|
|
8400
|
+
break;
|
|
8401
|
+
}
|
|
8402
|
+
response = firstResponse;
|
|
8344
8403
|
} catch (error) {
|
|
8345
8404
|
if (signal.aborted) throw error;
|
|
8346
8405
|
}
|
|
@@ -8348,10 +8407,13 @@ async function requestImage(accountPool, store, fetchFn, prompt, aspectRatio, si
|
|
|
8348
8407
|
const status = response?.status;
|
|
8349
8408
|
const errorText = await response?.text().catch(() => "") ?? "";
|
|
8350
8409
|
if (status === 429 && response) {
|
|
8351
|
-
const
|
|
8352
|
-
|
|
8353
|
-
|
|
8354
|
-
|
|
8410
|
+
const statedWaitMs = retryDelayMs(response.headers, errorText);
|
|
8411
|
+
if (statedWaitMs !== void 0) {
|
|
8412
|
+
accountPool.markFamilyCooldown(account.id, "gemini", statedWaitMs, "429 Rate Limit", upstreamBodyExcerpt(errorText));
|
|
8413
|
+
if (await accountPool.hasAnotherAvailableAccountFor("gemini", tried)) continue;
|
|
8414
|
+
throw new HarnessError(`Antigravity image generation was rate limited. ${errorText}`.trim(), "ANTIGRAVITY_IMAGE_RATE_LIMITED");
|
|
8415
|
+
}
|
|
8416
|
+
throw new HarnessError(`Antigravity image generation was rate limited (429) without a stated reset time, so it is handled as a transient rate limit rather than a spent quota. ${upstreamBodyExcerpt(errorText)}`.trim(), "ANTIGRAVITY_IMAGE_RATE_LIMITED");
|
|
8355
8417
|
}
|
|
8356
8418
|
throw new HarnessError(`Antigravity image generation failed (${status ?? "no response"}).${errorText ? ` ${errorText}` : ""}`, "ANTIGRAVITY_IMAGE_FAILED");
|
|
8357
8419
|
}
|
|
@@ -38596,7 +38658,7 @@ var WorkBuddyAccountPool = class extends AccountPoolCore {
|
|
|
38596
38658
|
return refreshed;
|
|
38597
38659
|
},
|
|
38598
38660
|
refreshFailureStatus: (error) => error instanceof LlmError && error.code === "INVALID_CREDENTIAL" ? "expired" : void 0,
|
|
38599
|
-
extendSummary: (account, base) => ({
|
|
38661
|
+
extendSummary: (account, base, now) => ({
|
|
38600
38662
|
...base,
|
|
38601
38663
|
region: account.region ?? account.credentials.region,
|
|
38602
38664
|
source: account.source,
|
|
@@ -38611,6 +38673,10 @@ var WorkBuddyAccountPool = class extends AccountPoolCore {
|
|
|
38611
38673
|
...(() => {
|
|
38612
38674
|
const quota = quotaFor(account.id);
|
|
38613
38675
|
return quota === void 0 ? {} : { quota };
|
|
38676
|
+
})(),
|
|
38677
|
+
...(() => {
|
|
38678
|
+
const modelCooldowns = this.liveModelCooldowns(account.id, now);
|
|
38679
|
+
return modelCooldowns.length === 0 ? {} : { modelCooldowns };
|
|
38614
38680
|
})()
|
|
38615
38681
|
}),
|
|
38616
38682
|
preferAccountId: () => this.resolveSelectionId(options.selection?.().selectedAccountId ?? null),
|
|
@@ -38788,6 +38854,44 @@ var WorkBuddyAccountPool = class extends AccountPoolCore {
|
|
|
38788
38854
|
const until = this.modelCooldowns.get(accountId)?.get(model);
|
|
38789
38855
|
return until !== void 0 && until > now ? until : void 0;
|
|
38790
38856
|
}
|
|
38857
|
+
/**
|
|
38858
|
+
* The models this account is parked on right now, with the instant each park
|
|
38859
|
+
* lifts.
|
|
38860
|
+
*
|
|
38861
|
+
* Only LIVE parks are reported: a window that has passed is dropped here, so
|
|
38862
|
+
* the card never shows a model that may already serve. The lift instant is
|
|
38863
|
+
* the one the upstream named, stored verbatim by
|
|
38864
|
+
* {@link markModelCooldown}; it is never recomputed from a duration that has
|
|
38865
|
+
* since drifted, because a re-derived instant would drift with it.
|
|
38866
|
+
*/
|
|
38867
|
+
liveModelCooldowns(accountId, now) {
|
|
38868
|
+
const models = this.modelCooldowns.get(accountId);
|
|
38869
|
+
if (models === void 0) return [];
|
|
38870
|
+
const live = [];
|
|
38871
|
+
for (const [model, until] of models) if (until > now) live.push({
|
|
38872
|
+
model,
|
|
38873
|
+
cooldownUntil: until
|
|
38874
|
+
});
|
|
38875
|
+
else models.delete(model);
|
|
38876
|
+
if (models.size === 0) this.modelCooldowns.delete(accountId);
|
|
38877
|
+
return live;
|
|
38878
|
+
}
|
|
38879
|
+
/**
|
|
38880
|
+
* Clear one account's cooldown AND the models it is parked on.
|
|
38881
|
+
*
|
|
38882
|
+
* The card's "reset cooldown" button promises the account is usable again. A
|
|
38883
|
+
* model park is a cooldown too — the account stays eligible, but it still
|
|
38884
|
+
* refuses the model the request wants — so leaving the park behind would
|
|
38885
|
+
* report a reset that did not happen, and the park would outlive the only
|
|
38886
|
+
* control the user has over it.
|
|
38887
|
+
*
|
|
38888
|
+
* The base write comes first: it is the half that can fail, and a failed
|
|
38889
|
+
* write must leave the account's state as it was rather than half-cleared.
|
|
38890
|
+
*/
|
|
38891
|
+
async clearCooldown(accountId) {
|
|
38892
|
+
await super.clearCooldown(accountId);
|
|
38893
|
+
this.modelCooldowns.delete(accountId);
|
|
38894
|
+
}
|
|
38791
38895
|
/** Accounts currently parked on one model, with lifted entries pruned on the way. */
|
|
38792
38896
|
parkedAccountIds(model, now = Date.now()) {
|
|
38793
38897
|
const parked = /* @__PURE__ */ new Set();
|
|
@@ -62545,7 +62649,7 @@ function resolveProgressUpdatesSettings(config) {
|
|
|
62545
62649
|
const enabled = readProgressConfigField(config?.progressUpdates);
|
|
62546
62650
|
const threshold = readProgressConfigField(config?.progressUpdatesNudgeThreshold);
|
|
62547
62651
|
return {
|
|
62548
|
-
enabled: enabled
|
|
62652
|
+
enabled: enabled !== false,
|
|
62549
62653
|
nudgeThreshold: typeof threshold === "number" && Number.isSafeInteger(threshold) && threshold > 0 ? threshold : 8
|
|
62550
62654
|
};
|
|
62551
62655
|
}
|
|
@@ -62745,7 +62849,7 @@ const Config = z.object({
|
|
|
62745
62849
|
reasoningCollapseGuard: z.union([z.object({}), z.const(false)]).default(false),
|
|
62746
62850
|
noAnswerResume: z.union([z.object({}), z.const(false)]).default({}),
|
|
62747
62851
|
codexStreamIdleTimeoutMs: z.number().min(1).max(MAX_TIMER_DELAY_MS).step(1).default(DEFAULT_STREAM_IDLE_TIMEOUT_MS),
|
|
62748
|
-
progressUpdates: z.boolean().default(
|
|
62852
|
+
progressUpdates: z.boolean().default(true).volatile().description("启用进展更新:允许 agent 用 progress_update 工具主动汇报多步任务的进展,并在侧栏展示。"),
|
|
62749
62853
|
progressUpdatesNudgeThreshold: z.number().step(1).min(1).max(50).default(8).volatile().description("催促阈值:连续这么多轮带工具调用却没有进展更新时,提醒 agent 发一条进展。")
|
|
62750
62854
|
});
|
|
62751
62855
|
const inject = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodexSubscriptionSection.d.ts","sourceRoot":"","sources":["../../../src/client/CodexSubscriptionSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAyB,eAAe,EAAkB,cAAc,EAA8D,MAAM,wBAAwB,CAAA;AAShL,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAGjC,KAAK,KAAK,GAAG,YAAY,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;AACtE,KAAK,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAC9F,aAAa,GAAG,QAAQ,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,eAAe,GAAG,IAAI,CAAA;AAC/F,KAAK,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;AAE3B,wBAAgB,wBAAwB,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"CodexSubscriptionSection.d.ts","sourceRoot":"","sources":["../../../src/client/CodexSubscriptionSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,KAAK,EAAyB,eAAe,EAAkB,cAAc,EAA8D,MAAM,wBAAwB,CAAA;AAShL,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAGjC,KAAK,KAAK,GAAG,YAAY,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;AACtE,KAAK,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAC9F,aAAa,GAAG,QAAQ,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,eAAe,GAAG,IAAI,CAAA;AAC/F,KAAK,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;AAE3B,wBAAgB,wBAAwB,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4oBxE;AA+BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;IAAE,MAAM,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA4B7I;AAWD,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAAE,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUzN;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAczH;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAYpF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,SAA4B,GAAG,MAAM,GAAG,IAAI,CAGxG;AAoCD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAgBtE"}
|
|
@@ -77,6 +77,9 @@ export declare const zh: {
|
|
|
77
77
|
tokens: string;
|
|
78
78
|
accountCount: string;
|
|
79
79
|
cooldownLeft: string;
|
|
80
|
+
cooldownRemaining: string;
|
|
81
|
+
cooldownRemainingSeconds: string;
|
|
82
|
+
modelCooldown: string;
|
|
80
83
|
needsRelogin: string;
|
|
81
84
|
relogin: string;
|
|
82
85
|
email: string;
|
|
@@ -171,6 +174,9 @@ export declare const dictionaries: {
|
|
|
171
174
|
tokens: string;
|
|
172
175
|
accountCount: string;
|
|
173
176
|
cooldownLeft: string;
|
|
177
|
+
cooldownRemaining: string;
|
|
178
|
+
cooldownRemainingSeconds: string;
|
|
179
|
+
modelCooldown: string;
|
|
174
180
|
needsRelogin: string;
|
|
175
181
|
relogin: string;
|
|
176
182
|
email: string;
|
|
@@ -263,6 +269,9 @@ export declare const dictionaries: {
|
|
|
263
269
|
tokens: string;
|
|
264
270
|
accountCount: string;
|
|
265
271
|
cooldownLeft: string;
|
|
272
|
+
cooldownRemaining: string;
|
|
273
|
+
cooldownRemainingSeconds: string;
|
|
274
|
+
modelCooldown: string;
|
|
266
275
|
needsRelogin: string;
|
|
267
276
|
relogin: string;
|
|
268
277
|
email: string;
|
|
@@ -277,8 +286,8 @@ export declare const dictionaries: {
|
|
|
277
286
|
quotaFactsScope: string;
|
|
278
287
|
composerLabel: string;
|
|
279
288
|
};
|
|
280
|
-
en: Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "refreshToken" | "loading" | "connection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "cacheSection" | "cacheDesc" | "cacheEmpty" | "cacheHitRatio" | "cacheCached" | "cacheFresh" | "cacheRequests" | "cacheMiss" | "cacheMissIdle" | "cacheDriftNone" | "cacheDriftContents" | "cacheDriftSystemInstruction" | "cacheDriftTools" | "cacheDriftSessionId" | "cacheDriftNewSession" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "googleValidation" | "resetPrefix" | "resetUnavailable" | "resetNow" | "timeDayHour" | "timeHourMin" | "timeMin" | "updatedAt" | "loginFailed", string>;
|
|
281
|
-
'en-US': Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "refreshToken" | "loading" | "connection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "cacheSection" | "cacheDesc" | "cacheEmpty" | "cacheHitRatio" | "cacheCached" | "cacheFresh" | "cacheRequests" | "cacheMiss" | "cacheMissIdle" | "cacheDriftNone" | "cacheDriftContents" | "cacheDriftSystemInstruction" | "cacheDriftTools" | "cacheDriftSessionId" | "cacheDriftNewSession" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "googleValidation" | "resetPrefix" | "resetUnavailable" | "resetNow" | "timeDayHour" | "timeHourMin" | "timeMin" | "updatedAt" | "loginFailed", string>;
|
|
289
|
+
en: Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "refreshToken" | "loading" | "connection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "cacheSection" | "cacheDesc" | "cacheEmpty" | "cacheHitRatio" | "cacheCached" | "cacheFresh" | "cacheRequests" | "cacheMiss" | "cacheMissIdle" | "cacheDriftNone" | "cacheDriftContents" | "cacheDriftSystemInstruction" | "cacheDriftTools" | "cacheDriftSessionId" | "cacheDriftNewSession" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "googleValidation" | "resetPrefix" | "resetUnavailable" | "resetNow" | "timeDayHour" | "timeHourMin" | "timeMin" | "updatedAt" | "loginFailed", string>;
|
|
290
|
+
'en-US': Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "refreshToken" | "loading" | "connection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "cacheSection" | "cacheDesc" | "cacheEmpty" | "cacheHitRatio" | "cacheCached" | "cacheFresh" | "cacheRequests" | "cacheMiss" | "cacheMissIdle" | "cacheDriftNone" | "cacheDriftContents" | "cacheDriftSystemInstruction" | "cacheDriftTools" | "cacheDriftSessionId" | "cacheDriftNewSession" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "googleValidation" | "resetPrefix" | "resetUnavailable" | "resetNow" | "timeDayHour" | "timeHourMin" | "timeMin" | "updatedAt" | "loginFailed", string>;
|
|
282
291
|
};
|
|
283
292
|
export type AntigravityLocaleKey = keyof typeof zh;
|
|
284
293
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/antigravity/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,oBAAoB,CAAA;AAI/C,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/antigravity/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,oBAAoB,CAAA;AAI/C,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Ed,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CA6E9C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,EAAE,CAAA"}
|
|
@@ -130,6 +130,9 @@ export declare const zh: {
|
|
|
130
130
|
readonly deleteAccount: string;
|
|
131
131
|
readonly cooling: string;
|
|
132
132
|
readonly cooldownLeft: string;
|
|
133
|
+
readonly cooldownRemaining: string;
|
|
134
|
+
readonly cooldownRemainingSeconds: string;
|
|
135
|
+
readonly modelCooldown: string;
|
|
133
136
|
readonly clearCooldown: string;
|
|
134
137
|
readonly needsRelogin: string;
|
|
135
138
|
readonly relogin: string;
|
|
@@ -277,6 +280,9 @@ export declare const dictionaries: {
|
|
|
277
280
|
readonly deleteAccount: string;
|
|
278
281
|
readonly cooling: string;
|
|
279
282
|
readonly cooldownLeft: string;
|
|
283
|
+
readonly cooldownRemaining: string;
|
|
284
|
+
readonly cooldownRemainingSeconds: string;
|
|
285
|
+
readonly modelCooldown: string;
|
|
280
286
|
readonly clearCooldown: string;
|
|
281
287
|
readonly needsRelogin: string;
|
|
282
288
|
readonly relogin: string;
|
|
@@ -422,6 +428,9 @@ export declare const dictionaries: {
|
|
|
422
428
|
readonly deleteAccount: string;
|
|
423
429
|
readonly cooling: string;
|
|
424
430
|
readonly cooldownLeft: string;
|
|
431
|
+
readonly cooldownRemaining: string;
|
|
432
|
+
readonly cooldownRemainingSeconds: string;
|
|
433
|
+
readonly modelCooldown: string;
|
|
425
434
|
readonly clearCooldown: string;
|
|
426
435
|
readonly needsRelogin: string;
|
|
427
436
|
readonly relogin: string;
|
|
@@ -443,8 +452,8 @@ export declare const dictionaries: {
|
|
|
443
452
|
readonly quotaFactsScope: string;
|
|
444
453
|
readonly composerLabel: string;
|
|
445
454
|
};
|
|
446
|
-
en: Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "source" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowInvalid" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "quotaSignedOut" | "stopImporting" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "now" | "planUnknown" | "subscriptionType" | "sourceManaged" | "sourceClaudeCode" | "adoptedBadge" | "signInSection" | "cancelSignIn" | "openAuthorizeUrl" | "authorizeUrl" | "redirectUri" | "loginModeManual" | "loginModeLoopback" | "loginFallbackReason" | "loginWaiting" | "loginExchanging" | "loginComplete" | "manualPasteSection" | "manualPasteHint" | "manualPastePlaceholder" | "manualPasteSubmit" | "manualPasteSubmitting" | "importClaudeCode" | "importing" | "testingConnection" | "testSuccess" | "testLatency" | "testFailed" | "testRetryable" | "testNotRetryable" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "capImage" | "capNoImage" | "capThinkingOff" | "thinkingModeMidConvo" | "thinkingModeAdaptive" | "thinkingModeBudget" | "thinkingModeNone" | "cacheTtl" | "cacheTtlHint" | "cacheTtlSubscription" | "cacheTtl1h" | "cacheTtl5m" | "effortLow" | "effortMedium" | "effortHigh" | "effortXHigh" | "effortMax" | "modelLadders" | "modelLadderNone" | "quotaUnknown" | "quotaUnknownHint" | "usedLabel" | "remainingLabel" | "left" | "resetAt" | "resetUnknown" | "observedAt" | "quotaError" | "extraUsage" | "extraUsageEnabled" | "extraUsageDisabled" | "extraUsageLimit" | "sourceUsage" | "sourceHeaders" | "quotaStatus" | "quotaRepresentative" | "copy" | "copied", string>;
|
|
447
|
-
'en-US': Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "source" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowInvalid" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "quotaSignedOut" | "stopImporting" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "now" | "planUnknown" | "subscriptionType" | "sourceManaged" | "sourceClaudeCode" | "adoptedBadge" | "signInSection" | "cancelSignIn" | "openAuthorizeUrl" | "authorizeUrl" | "redirectUri" | "loginModeManual" | "loginModeLoopback" | "loginFallbackReason" | "loginWaiting" | "loginExchanging" | "loginComplete" | "manualPasteSection" | "manualPasteHint" | "manualPastePlaceholder" | "manualPasteSubmit" | "manualPasteSubmitting" | "importClaudeCode" | "importing" | "testingConnection" | "testSuccess" | "testLatency" | "testFailed" | "testRetryable" | "testNotRetryable" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "capImage" | "capNoImage" | "capThinkingOff" | "thinkingModeMidConvo" | "thinkingModeAdaptive" | "thinkingModeBudget" | "thinkingModeNone" | "cacheTtl" | "cacheTtlHint" | "cacheTtlSubscription" | "cacheTtl1h" | "cacheTtl5m" | "effortLow" | "effortMedium" | "effortHigh" | "effortXHigh" | "effortMax" | "modelLadders" | "modelLadderNone" | "quotaUnknown" | "quotaUnknownHint" | "usedLabel" | "remainingLabel" | "left" | "resetAt" | "resetUnknown" | "observedAt" | "quotaError" | "extraUsage" | "extraUsageEnabled" | "extraUsageDisabled" | "extraUsageLimit" | "sourceUsage" | "sourceHeaders" | "quotaStatus" | "quotaRepresentative" | "copy" | "copied", string>;
|
|
455
|
+
en: Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "source" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowInvalid" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "quotaSignedOut" | "stopImporting" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "now" | "planUnknown" | "subscriptionType" | "sourceManaged" | "sourceClaudeCode" | "adoptedBadge" | "signInSection" | "cancelSignIn" | "openAuthorizeUrl" | "authorizeUrl" | "redirectUri" | "loginModeManual" | "loginModeLoopback" | "loginFallbackReason" | "loginWaiting" | "loginExchanging" | "loginComplete" | "manualPasteSection" | "manualPasteHint" | "manualPastePlaceholder" | "manualPasteSubmit" | "manualPasteSubmitting" | "importClaudeCode" | "importing" | "testingConnection" | "testSuccess" | "testLatency" | "testFailed" | "testRetryable" | "testNotRetryable" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "capImage" | "capNoImage" | "capThinkingOff" | "thinkingModeMidConvo" | "thinkingModeAdaptive" | "thinkingModeBudget" | "thinkingModeNone" | "cacheTtl" | "cacheTtlHint" | "cacheTtlSubscription" | "cacheTtl1h" | "cacheTtl5m" | "effortLow" | "effortMedium" | "effortHigh" | "effortXHigh" | "effortMax" | "modelLadders" | "modelLadderNone" | "quotaUnknown" | "quotaUnknownHint" | "usedLabel" | "remainingLabel" | "left" | "resetAt" | "resetUnknown" | "observedAt" | "quotaError" | "extraUsage" | "extraUsageEnabled" | "extraUsageDisabled" | "extraUsageLimit" | "sourceUsage" | "sourceHeaders" | "quotaStatus" | "quotaRepresentative" | "copy" | "copied", string>;
|
|
456
|
+
'en-US': Record<"account" | "quotaRefreshing" | "rotationStrategy" | "accountId" | "relogin" | "source" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowInvalid" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "quotaSignedOut" | "stopImporting" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saving" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "now" | "planUnknown" | "subscriptionType" | "sourceManaged" | "sourceClaudeCode" | "adoptedBadge" | "signInSection" | "cancelSignIn" | "openAuthorizeUrl" | "authorizeUrl" | "redirectUri" | "loginModeManual" | "loginModeLoopback" | "loginFallbackReason" | "loginWaiting" | "loginExchanging" | "loginComplete" | "manualPasteSection" | "manualPasteHint" | "manualPastePlaceholder" | "manualPasteSubmit" | "manualPasteSubmitting" | "importClaudeCode" | "importing" | "testingConnection" | "testSuccess" | "testLatency" | "testFailed" | "testRetryable" | "testNotRetryable" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "capImage" | "capNoImage" | "capThinkingOff" | "thinkingModeMidConvo" | "thinkingModeAdaptive" | "thinkingModeBudget" | "thinkingModeNone" | "cacheTtl" | "cacheTtlHint" | "cacheTtlSubscription" | "cacheTtl1h" | "cacheTtl5m" | "effortLow" | "effortMedium" | "effortHigh" | "effortXHigh" | "effortMax" | "modelLadders" | "modelLadderNone" | "quotaUnknown" | "quotaUnknownHint" | "usedLabel" | "remainingLabel" | "left" | "resetAt" | "resetUnknown" | "observedAt" | "quotaError" | "extraUsage" | "extraUsageEnabled" | "extraUsageDisabled" | "extraUsageLimit" | "sourceUsage" | "sourceHeaders" | "quotaStatus" | "quotaRepresentative" | "copy" | "copied", string>;
|
|
448
457
|
};
|
|
449
458
|
export type ClaudeLocaleKey = keyof typeof zh;
|
|
450
459
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/claude/locales.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,eAAe,CAAA;AAErC,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/claude/locales.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,eAAe,CAAA;AAErC,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2IL,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAiIrC,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,EAAE,CAAA"}
|
|
@@ -74,6 +74,9 @@ export declare const zh: {
|
|
|
74
74
|
readonly deleteAccount: string;
|
|
75
75
|
readonly cooling: string;
|
|
76
76
|
readonly cooldownLeft: string;
|
|
77
|
+
readonly cooldownRemaining: string;
|
|
78
|
+
readonly cooldownRemainingSeconds: string;
|
|
79
|
+
readonly modelCooldown: string;
|
|
77
80
|
readonly clearCooldown: string;
|
|
78
81
|
readonly needsRelogin: string;
|
|
79
82
|
readonly relogin: string;
|
|
@@ -173,6 +176,9 @@ export declare const dictionaries: {
|
|
|
173
176
|
readonly deleteAccount: string;
|
|
174
177
|
readonly cooling: string;
|
|
175
178
|
readonly cooldownLeft: string;
|
|
179
|
+
readonly cooldownRemaining: string;
|
|
180
|
+
readonly cooldownRemainingSeconds: string;
|
|
181
|
+
readonly modelCooldown: string;
|
|
176
182
|
readonly clearCooldown: string;
|
|
177
183
|
readonly needsRelogin: string;
|
|
178
184
|
readonly relogin: string;
|
|
@@ -270,6 +276,9 @@ export declare const dictionaries: {
|
|
|
270
276
|
readonly deleteAccount: string;
|
|
271
277
|
readonly cooling: string;
|
|
272
278
|
readonly cooldownLeft: string;
|
|
279
|
+
readonly cooldownRemaining: string;
|
|
280
|
+
readonly cooldownRemainingSeconds: string;
|
|
281
|
+
readonly modelCooldown: string;
|
|
273
282
|
readonly clearCooldown: string;
|
|
274
283
|
readonly needsRelogin: string;
|
|
275
284
|
readonly relogin: string;
|
|
@@ -292,8 +301,8 @@ export declare const dictionaries: {
|
|
|
292
301
|
readonly quotaFactsScope: string;
|
|
293
302
|
readonly composerLabel: string;
|
|
294
303
|
};
|
|
295
|
-
en: Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "planUnknown" | "cancelSignIn" | "testingConnection" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "keyName" | "organization" | "subscription" | "renews" | "authenticatedAt" | "openSignInPage" | "apiKeySection" | "apiKeyHint" | "apiKeyPlaceholder" | "apiKeySave" | "apiKeySaving" | "apiKeySaved" | "catalogStale" | "catalogFresh" | "zdrEnabled" | "wireAnthropic" | "wireOpenai" | "wireResponses" | "quotaCredits" | "quotaUnlimited", string>;
|
|
296
|
-
'en-US': Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "planUnknown" | "cancelSignIn" | "testingConnection" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "keyName" | "organization" | "subscription" | "renews" | "authenticatedAt" | "openSignInPage" | "apiKeySection" | "apiKeyHint" | "apiKeyPlaceholder" | "apiKeySave" | "apiKeySaving" | "apiKeySaved" | "catalogStale" | "catalogFresh" | "zdrEnabled" | "wireAnthropic" | "wireOpenai" | "wireResponses" | "quotaCredits" | "quotaUnlimited", string>;
|
|
304
|
+
en: Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "planUnknown" | "cancelSignIn" | "testingConnection" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "keyName" | "organization" | "subscription" | "renews" | "authenticatedAt" | "openSignInPage" | "apiKeySection" | "apiKeyHint" | "apiKeyPlaceholder" | "apiKeySave" | "apiKeySaving" | "apiKeySaved" | "catalogStale" | "catalogFresh" | "zdrEnabled" | "wireAnthropic" | "wireOpenai" | "wireResponses" | "quotaCredits" | "quotaUnlimited", string>;
|
|
305
|
+
'en-US': Record<"account" | "rotationStrategy" | "accountId" | "relogin" | "tokens" | "title" | "signedOut" | "signedIn" | "plan" | "expires" | "signIn" | "signInAgain" | "signOut" | "loading" | "connection" | "testConnection" | "selectAll" | "unselectAll" | "modelsHint" | "contextWindowReset" | "contextWindowResetAll" | "contextWindowResetAllConfirm" | "save" | "refreshQuota" | "accountPool" | "addAccount" | "accountCount" | "primaryAccount" | "activeAccount" | "setPrimary" | "deleteAccount" | "cooling" | "cooldownLeft" | "cooldownRemaining" | "cooldownRemainingSeconds" | "modelCooldown" | "clearCooldown" | "needsRelogin" | "strategySequential" | "strategyRoundRobin" | "strategySticky" | "noAccounts" | "email" | "lastUsed" | "accountQuota" | "quotaNone" | "quotaSnapshot" | "quotaResets" | "quotaExhausted" | "quotaWindow" | "quotaUsed" | "quotaFactsScope" | "composerLabel" | "pageDesc" | "signingIn" | "modelsSection" | "enhanced" | "defaultReasoningEffort" | "defaultReasoningEffortHint" | "defaultEffortAuto" | "contextWindowSection" | "contextWindowHint" | "contextWindowNoneEnabled" | "saved" | "saving" | "quotaSection" | "quotaDesc" | "refreshingQuota" | "quotaEmpty" | "updatedAt" | "loginFailed" | "planUnknown" | "cancelSignIn" | "testingConnection" | "routeOwned" | "routeConflict" | "refreshCatalog" | "refreshingCatalog" | "keyName" | "organization" | "subscription" | "renews" | "authenticatedAt" | "openSignInPage" | "apiKeySection" | "apiKeyHint" | "apiKeyPlaceholder" | "apiKeySave" | "apiKeySaving" | "apiKeySaved" | "catalogStale" | "catalogFresh" | "zdrEnabled" | "wireAnthropic" | "wireOpenai" | "wireResponses" | "quotaCredits" | "quotaUnlimited", string>;
|
|
297
306
|
};
|
|
298
307
|
export type CommandCodeLocaleKey = keyof typeof zh;
|
|
299
308
|
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/command-code/locales.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,qBAAqB,CAAA;AAEjD,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../src/client/command-code/locales.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,qBAAqB,CAAA;AAEjD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEL,CAAA;AAEV,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAmErC,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,EAAE,CAAA"}
|
|
@@ -47,8 +47,16 @@ export interface AccountPoolSectionProps<TAccount extends PoolAccountSummaryDto
|
|
|
47
47
|
}
|
|
48
48
|
/** Format one account timestamp the way every tab renders it. */
|
|
49
49
|
export declare function formatAccountDate(ms?: number): string;
|
|
50
|
-
/**
|
|
51
|
-
export
|
|
50
|
+
/** The labels the remaining-time text needs; every tab's set carries them. */
|
|
51
|
+
export type CooldownRemainingLabels = Pick<AccountPoolLabels, 'cooldownLeft' | 'cooldownRemaining' | 'cooldownRemainingSeconds'>;
|
|
52
|
+
/**
|
|
53
|
+
* The remaining cooldown, in the reader's own words.
|
|
54
|
+
*
|
|
55
|
+
* Whole minutes while a minute or more is left, minutes and seconds below
|
|
56
|
+
* that, and the seconds alone under a minute: "剩 1 分" for the last 59
|
|
57
|
+
* seconds is a lie, and "剩 0 分 42 秒" is unreadable.
|
|
58
|
+
*/
|
|
59
|
+
export declare function formatCooldownRemaining(remainingMs: number, labels: CooldownRemainingLabels): string;
|
|
52
60
|
/** Whether one account currently carries a live 429 cooldown. */
|
|
53
61
|
export declare function isCoolingDown(account: PoolAccountSummaryDto, now?: number): boolean;
|
|
54
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountPoolSection.d.ts","sourceRoot":"","sources":["../../../../src/client/common/AccountPoolSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AccountPoolSection.d.ts","sourceRoot":"","sources":["../../../../src/client/common/AccountPoolSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAIlF,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEjE,MAAM,WAAW,uBAAuB,CACtC,QAAQ,SAAS,qBAAqB,GAAG,qBAAqB,CAC9D,SAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,GAAG,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAC5F,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,mEAAmE;IACnE,MAAM,EAAE,iBAAiB,CAAA;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,IAAI,IAAI,CAAA;IACf;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,SAAS,CAAA;IAChC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,sEAAsE;IACtE,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,aAAa,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAA;IACtD,sEAAsE;IACtE,aAAa,CAAC,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC5C;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAA;IACnD,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED,8EAA8E;AAC9E,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,iBAAiB,EACjB,cAAc,GAAG,mBAAmB,GAAG,0BAA0B,CAClE,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAKpG;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG,SAAa,GAAG,OAAO,CAEvF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,qBAAqB,GAAG,qBAAqB,EAC/F,KAAK,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GACvC,KAAK,CAAC,YAAY,CAyMpB"}
|
|
@@ -19,6 +19,23 @@ export interface AccountPoolLabels {
|
|
|
19
19
|
cooling: string;
|
|
20
20
|
/** `{minutes}` is replaced with the remaining cooldown in whole minutes. */
|
|
21
21
|
cooldownLeft: string;
|
|
22
|
+
/**
|
|
23
|
+
* `{minutes}` and `{seconds}` are the remaining cooldown, to the second.
|
|
24
|
+
*
|
|
25
|
+
* A badge that counts whole minutes only reads "剩 5 分" for the whole minute,
|
|
26
|
+
* which tells a user who is waiting for it to lift exactly nothing; this one
|
|
27
|
+
* counts the seconds as they pass.
|
|
28
|
+
*/
|
|
29
|
+
cooldownRemaining: string;
|
|
30
|
+
/**
|
|
31
|
+
* `{seconds}` is the remaining cooldown once less than a minute is left.
|
|
32
|
+
*
|
|
33
|
+
* A template of its own because "剩 1 分" for the last 59 seconds is a lie:
|
|
34
|
+
* under a minute the seconds are the only honest thing to show.
|
|
35
|
+
*/
|
|
36
|
+
cooldownRemainingSeconds: string;
|
|
37
|
+
/** Names the row of one model parked on an account. */
|
|
38
|
+
modelCooldown: string;
|
|
22
39
|
clearCooldown: string;
|
|
23
40
|
needsRelogin: string;
|
|
24
41
|
relogin: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-pool-labels.d.ts","sourceRoot":"","sources":["../../../../src/client/common/account-pool-labels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAA;IACrB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAA;IACtB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAA;IACvB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"account-pool-labels.d.ts","sourceRoot":"","sources":["../../../../src/client/common/account-pool-labels.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;;;;OAKG;IACH,wBAAwB,EAAE,MAAM,CAAA;IAChC,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAA;IACrB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAA;IACtB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAA;IACvB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,EAAE,iBAkC3B,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,aAAa,EAAE,iBAkC3B,CAAA;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAIjG"}
|
|
@@ -21,6 +21,20 @@ export declare function parsePositiveCapacity(value: string): number | null;
|
|
|
21
21
|
export declare function formatCapacity(value: number): string;
|
|
22
22
|
/** A stamp in the reader's own locale, or an em dash when there is none. */
|
|
23
23
|
export declare function formatDate(ms?: number | null): string;
|
|
24
|
+
/**
|
|
25
|
+
* The remaining part of a cooldown, split into whole minutes and seconds.
|
|
26
|
+
*
|
|
27
|
+
* A cooldown counted in whole minutes only is frozen for a whole minute at a
|
|
28
|
+
* time: the badge says "剩 5 分" while the wait drops from 5:00 to 4:01, and
|
|
29
|
+
* the user is left watching a number that does not move. The seconds are what
|
|
30
|
+
* make the wait legible, so they are carried separately - and rounded UP,
|
|
31
|
+
* because a cooldown with 30.2 seconds left is still 31 seconds of waiting, and
|
|
32
|
+
* rounding down would announce "0 seconds left" while the wait is not over.
|
|
33
|
+
*/
|
|
34
|
+
export declare function cooldownRemainingParts(remainingMs: number): {
|
|
35
|
+
minutes: number;
|
|
36
|
+
seconds: number;
|
|
37
|
+
};
|
|
24
38
|
/**
|
|
25
39
|
* Countdown to a reset instant ("3d 4h"), empty when there is nothing to count
|
|
26
40
|
* down to. Empty rather than "—" because callers append it to a date they have
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/client/common/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAOrD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAU5D"}
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/client/common/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAOrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGhG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAU5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/client/common/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,4BAA4B,CAAA;AAEtD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/client/common/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,4BAA4B,CAAA;AAEtD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CA+BxC"}
|