@slkiser/opencode-quota 3.0.2 → 3.1.1
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/README.md +207 -143
- package/dist/lib/anthropic.d.ts +4 -5
- package/dist/lib/anthropic.d.ts.map +1 -1
- package/dist/lib/anthropic.js +230 -18
- package/dist/lib/anthropic.js.map +1 -1
- package/dist/lib/api-key-resolver.d.ts +1 -1
- package/dist/lib/api-key-resolver.d.ts.map +1 -1
- package/dist/lib/api-key-resolver.js +11 -13
- package/dist/lib/api-key-resolver.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +6 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/cursor-detection.d.ts.map +1 -1
- package/dist/lib/cursor-detection.js +14 -5
- package/dist/lib/cursor-detection.js.map +1 -1
- package/dist/lib/cursor-usage.d.ts.map +1 -1
- package/dist/lib/cursor-usage.js +18 -14
- package/dist/lib/cursor-usage.js.map +1 -1
- package/dist/lib/entries.d.ts +1 -1
- package/dist/lib/entries.d.ts.map +1 -1
- package/dist/lib/entries.js.map +1 -1
- package/dist/lib/format-utils.d.ts +8 -0
- package/dist/lib/format-utils.d.ts.map +1 -1
- package/dist/lib/format-utils.js +13 -0
- package/dist/lib/format-utils.js.map +1 -1
- package/dist/lib/format.d.ts +2 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +14 -9
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/grouped-entry-normalization.d.ts +5 -0
- package/dist/lib/grouped-entry-normalization.d.ts.map +1 -1
- package/dist/lib/grouped-entry-normalization.js +7 -3
- package/dist/lib/grouped-entry-normalization.js.map +1 -1
- package/dist/lib/init-installer.d.ts +1 -0
- package/dist/lib/init-installer.d.ts.map +1 -1
- package/dist/lib/init-installer.js +15 -0
- package/dist/lib/init-installer.js.map +1 -1
- package/dist/lib/kimi-auth.d.ts +38 -0
- package/dist/lib/kimi-auth.d.ts.map +1 -0
- package/dist/lib/kimi-auth.js +104 -0
- package/dist/lib/kimi-auth.js.map +1 -0
- package/dist/lib/kimi.d.ts +3 -0
- package/dist/lib/kimi.d.ts.map +1 -0
- package/dist/lib/kimi.js +206 -0
- package/dist/lib/kimi.js.map +1 -0
- package/dist/lib/opencode-sqlite.d.ts.map +1 -1
- package/dist/lib/opencode-sqlite.js +9 -12
- package/dist/lib/opencode-sqlite.js.map +1 -1
- package/dist/lib/opencode-storage.d.ts.map +1 -1
- package/dist/lib/opencode-storage.js +9 -5
- package/dist/lib/opencode-storage.js.map +1 -1
- package/dist/lib/provider-metadata.d.ts +1 -1
- package/dist/lib/provider-metadata.d.ts.map +1 -1
- package/dist/lib/provider-metadata.js +17 -4
- package/dist/lib/provider-metadata.js.map +1 -1
- package/dist/lib/quota-command-format.d.ts.map +1 -1
- package/dist/lib/quota-command-format.js +41 -42
- package/dist/lib/quota-command-format.js.map +1 -1
- package/dist/lib/quota-render-data.d.ts.map +1 -1
- package/dist/lib/quota-render-data.js +1 -4
- package/dist/lib/quota-render-data.js.map +1 -1
- package/dist/lib/quota-stats-format.d.ts.map +1 -1
- package/dist/lib/quota-stats-format.js +164 -121
- package/dist/lib/quota-stats-format.js.map +1 -1
- package/dist/lib/quota-status.d.ts.map +1 -1
- package/dist/lib/quota-status.js +590 -265
- package/dist/lib/quota-status.js.map +1 -1
- package/dist/lib/report-document.d.ts +36 -0
- package/dist/lib/report-document.d.ts.map +1 -0
- package/dist/lib/report-document.js +109 -0
- package/dist/lib/report-document.js.map +1 -0
- package/dist/lib/session-tokens-format.d.ts +8 -0
- package/dist/lib/session-tokens-format.d.ts.map +1 -1
- package/dist/lib/session-tokens-format.js +36 -20
- package/dist/lib/session-tokens-format.js.map +1 -1
- package/dist/lib/synthetic-config.d.ts +41 -0
- package/dist/lib/synthetic-config.d.ts.map +1 -0
- package/dist/lib/synthetic-config.js +57 -0
- package/dist/lib/synthetic-config.js.map +1 -0
- package/dist/lib/synthetic.d.ts +17 -0
- package/dist/lib/synthetic.d.ts.map +1 -0
- package/dist/lib/synthetic.js +94 -0
- package/dist/lib/synthetic.js.map +1 -0
- package/dist/lib/toast-format-grouped.d.ts +2 -0
- package/dist/lib/toast-format-grouped.d.ts.map +1 -1
- package/dist/lib/toast-format-grouped.js +9 -6
- package/dist/lib/toast-format-grouped.js.map +1 -1
- package/dist/lib/tui-config-diagnostics.d.ts.map +1 -1
- package/dist/lib/tui-config-diagnostics.js +13 -9
- package/dist/lib/tui-config-diagnostics.js.map +1 -1
- package/dist/lib/tui-panel-state.d.ts.map +1 -1
- package/dist/lib/tui-panel-state.js +10 -5
- package/dist/lib/tui-panel-state.js.map +1 -1
- package/dist/lib/tui-sidebar-format.d.ts +1 -1
- package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
- package/dist/lib/tui-sidebar-format.js +1 -0
- package/dist/lib/tui-sidebar-format.js.map +1 -1
- package/dist/lib/types.d.ts +42 -4
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +1 -0
- package/dist/lib/types.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +1 -0
- package/dist/plugin.js.map +1 -1
- package/dist/providers/anthropic.js +1 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/copilot.d.ts.map +1 -1
- package/dist/providers/copilot.js +2 -1
- package/dist/providers/copilot.js.map +1 -1
- package/dist/providers/cursor.d.ts.map +1 -1
- package/dist/providers/cursor.js +2 -1
- package/dist/providers/cursor.js.map +1 -1
- package/dist/providers/google-antigravity.d.ts.map +1 -1
- package/dist/providers/google-antigravity.js +2 -1
- package/dist/providers/google-antigravity.js.map +1 -1
- package/dist/providers/kimi-code.d.ts +3 -0
- package/dist/providers/kimi-code.d.ts.map +1 -0
- package/dist/providers/kimi-code.js +71 -0
- package/dist/providers/kimi-code.js.map +1 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +4 -2
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/synthetic.d.ts +6 -0
- package/dist/providers/synthetic.d.ts.map +1 -0
- package/dist/providers/synthetic.js +57 -0
- package/dist/providers/synthetic.js.map +1 -0
- package/package.json +2 -2
- package/dist/lib/firmware-config.d.ts +0 -41
- package/dist/lib/firmware-config.d.ts.map +0 -1
- package/dist/lib/firmware-config.js +0 -60
- package/dist/lib/firmware-config.js.map +0 -1
- package/dist/lib/firmware.d.ts +0 -22
- package/dist/lib/firmware.d.ts.map +0 -1
- package/dist/lib/firmware.js +0 -62
- package/dist/lib/firmware.js.map +0 -1
- package/dist/providers/firmware.d.ts +0 -6
- package/dist/providers/firmware.d.ts.map +0 -1
- package/dist/providers/firmware.js +0 -45
- package/dist/providers/firmware.js.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Synthetic quota fetcher
|
|
3
|
+
*
|
|
4
|
+
* Resolves API key from multiple sources and queries:
|
|
5
|
+
* https://api.synthetic.new/v2/quotas
|
|
6
|
+
*/
|
|
7
|
+
import { sanitizeDisplaySnippet, sanitizeDisplayText } from "./display-sanitize.js";
|
|
8
|
+
import { clampPercent } from "./format-utils.js";
|
|
9
|
+
import { fetchWithTimeout } from "./http.js";
|
|
10
|
+
import { resolveSyntheticApiKey, } from "./synthetic-config.js";
|
|
11
|
+
const SYNTHETIC_QUOTA_URL = "https://api.synthetic.new/v2/quotas";
|
|
12
|
+
export { getSyntheticKeyDiagnostics, hasSyntheticApiKey as hasSyntheticApiKeyConfigured, } from "./synthetic-config.js";
|
|
13
|
+
function asRecord(value) {
|
|
14
|
+
return value && typeof value === "object" ? value : null;
|
|
15
|
+
}
|
|
16
|
+
function invalidSyntheticResponse(message) {
|
|
17
|
+
return {
|
|
18
|
+
success: false,
|
|
19
|
+
error: message,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function normalizeResetTimeIso(value) {
|
|
23
|
+
if (typeof value !== "string") {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
const trimmed = value.trim();
|
|
27
|
+
if (!trimmed) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const parsed = Date.parse(trimmed);
|
|
31
|
+
if (!Number.isFinite(parsed)) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return new Date(parsed).toISOString();
|
|
35
|
+
}
|
|
36
|
+
function buildFiveHourWindow(subscription) {
|
|
37
|
+
const limit = subscription.limit;
|
|
38
|
+
if (typeof limit !== "number" || !Number.isFinite(limit) || limit <= 0) {
|
|
39
|
+
return invalidSyntheticResponse("Synthetic API response missing subscription.limit");
|
|
40
|
+
}
|
|
41
|
+
const requests = subscription.requests;
|
|
42
|
+
if (typeof requests !== "number" || !Number.isFinite(requests) || requests < 0) {
|
|
43
|
+
return invalidSyntheticResponse("Synthetic API response missing subscription.requests");
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
requestLimit: limit,
|
|
47
|
+
usedRequests: requests,
|
|
48
|
+
percentRemaining: clampPercent(((limit - requests) / limit) * 100),
|
|
49
|
+
resetTimeIso: normalizeResetTimeIso(subscription.renewsAt),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export async function querySyntheticQuota() {
|
|
53
|
+
const resolved = await resolveSyntheticApiKey();
|
|
54
|
+
if (!resolved)
|
|
55
|
+
return null;
|
|
56
|
+
try {
|
|
57
|
+
const resp = await fetchWithTimeout(SYNTHETIC_QUOTA_URL, {
|
|
58
|
+
method: "GET",
|
|
59
|
+
headers: {
|
|
60
|
+
Authorization: `Bearer ${resolved.key}`,
|
|
61
|
+
"User-Agent": "OpenCode-Quota-Toast/1.0",
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
if (!resp.ok) {
|
|
65
|
+
const text = await resp.text();
|
|
66
|
+
return {
|
|
67
|
+
success: false,
|
|
68
|
+
error: `Synthetic API error ${resp.status}: ${sanitizeDisplaySnippet(text, 120)}`,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const data = (await resp.json());
|
|
72
|
+
const subscription = asRecord(data?.subscription);
|
|
73
|
+
if (!subscription) {
|
|
74
|
+
return invalidSyntheticResponse("Synthetic API response missing subscription");
|
|
75
|
+
}
|
|
76
|
+
const fiveHour = buildFiveHourWindow(subscription);
|
|
77
|
+
if (!("requestLimit" in fiveHour)) {
|
|
78
|
+
return fiveHour;
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
success: true,
|
|
82
|
+
windows: {
|
|
83
|
+
fiveHour,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
return {
|
|
89
|
+
success: false,
|
|
90
|
+
error: sanitizeDisplayText(err instanceof Error ? err.message : String(err)),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=synthetic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthetic.js","sourceRoot":"","sources":["../../src/lib/synthetic.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Renders quota entries grouped by provider/account with compact bars.
|
|
5
5
|
* Designed to feel like a status dashboard while still respecting OpenCode toast width.
|
|
6
6
|
*/
|
|
7
|
+
import type { QuotaToastConfig } from "./types.js";
|
|
7
8
|
import type { QuotaToastEntry, QuotaToastError, SessionTokensData } from "./entries.js";
|
|
8
9
|
export declare function formatQuotaRowsGrouped(params: {
|
|
9
10
|
layout?: {
|
|
@@ -13,6 +14,7 @@ export declare function formatQuotaRowsGrouped(params: {
|
|
|
13
14
|
};
|
|
14
15
|
entries?: QuotaToastEntry[];
|
|
15
16
|
errors?: QuotaToastError[];
|
|
17
|
+
percentDisplayMode?: QuotaToastConfig["percentDisplayMode"];
|
|
16
18
|
sessionTokens?: SessionTokensData;
|
|
17
19
|
}): string;
|
|
18
20
|
//# sourceMappingURL=toast-format-grouped.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-format-grouped.d.ts","sourceRoot":"","sources":["../../src/lib/toast-format-grouped.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"toast-format-grouped.d.ts","sourceRoot":"","sources":["../../src/lib/toast-format-grouped.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAexF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC,GAAG,MAAM,CA+HT"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Designed to feel like a status dashboard while still respecting OpenCode toast width.
|
|
6
6
|
*/
|
|
7
7
|
import { isValueEntry } from "./entries.js";
|
|
8
|
-
import { bar,
|
|
8
|
+
import { bar, DISPLAYED_PERCENT_LABEL_WIDTH, formatDisplayedPercentLabel, formatResetCountdown, padLeft, padRight, resolveDisplayedPercent, } from "./format-utils.js";
|
|
9
9
|
import { formatGroupedHeader } from "./grouped-header-format.js";
|
|
10
10
|
import { normalizeGroupedQuotaEntries } from "./grouped-entry-normalization.js";
|
|
11
11
|
import { renderSessionTokensLines } from "./session-tokens-format.js";
|
|
@@ -15,7 +15,7 @@ export function formatQuotaRowsGrouped(params) {
|
|
|
15
15
|
const isTiny = maxWidth <= layout.tinyAt;
|
|
16
16
|
const isNarrow = !isTiny && maxWidth <= layout.narrowAt;
|
|
17
17
|
const separator = " ";
|
|
18
|
-
const percentCol =
|
|
18
|
+
const percentCol = DISPLAYED_PERCENT_LABEL_WIDTH;
|
|
19
19
|
const barWidth = Math.max(10, maxWidth - separator.length - percentCol);
|
|
20
20
|
const timeCol = isTiny ? 6 : isNarrow ? 7 : 7;
|
|
21
21
|
const lines = [];
|
|
@@ -73,13 +73,16 @@ export function formatQuotaRowsGrouped(params) {
|
|
|
73
73
|
// Show reset countdown whenever quota is not fully available.
|
|
74
74
|
// (i.e., any usage at all, or depleted)
|
|
75
75
|
const timeStr = entry.percentRemaining < 100 ? formatResetCountdown(entry.resetTimeIso) : "";
|
|
76
|
+
const displayedPercent = resolveDisplayedPercent(entry.percentRemaining, params.percentDisplayMode);
|
|
77
|
+
const percentLabel = formatDisplayedPercentLabel(entry.percentRemaining, params.percentDisplayMode);
|
|
76
78
|
if (isTiny) {
|
|
77
79
|
// Tiny: "label time XX%" (ignore bar)
|
|
78
80
|
const tinyNameCol = maxWidth - separator.length - timeCol - separator.length - percentCol;
|
|
81
|
+
const leftText = right ? `${label} ${right}` : label;
|
|
79
82
|
const line = [
|
|
80
|
-
padRight(
|
|
83
|
+
padRight(leftText, tinyNameCol),
|
|
81
84
|
padLeft(timeStr, timeCol),
|
|
82
|
-
padLeft(
|
|
85
|
+
padLeft(percentLabel, percentCol),
|
|
83
86
|
].join(separator);
|
|
84
87
|
lines.push(line.slice(0, maxWidth));
|
|
85
88
|
continue;
|
|
@@ -90,8 +93,8 @@ export function formatQuotaRowsGrouped(params) {
|
|
|
90
93
|
const leftText = right ? `${label} ${right}` : label;
|
|
91
94
|
lines.push((padRight(leftText, leftMax) + separator + padLeft(timeStr, timeWidth)).slice(0, barWidth));
|
|
92
95
|
// Line 2: bar + percent
|
|
93
|
-
const barCell = bar(
|
|
94
|
-
const percentCell = padLeft(
|
|
96
|
+
const barCell = bar(displayedPercent, barWidth);
|
|
97
|
+
const percentCell = padLeft(percentLabel, percentCol);
|
|
95
98
|
lines.push([barCell, percentCell].join(separator));
|
|
96
99
|
}
|
|
97
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-format-grouped.js","sourceRoot":"","sources":["../../src/lib/toast-format-grouped.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"toast-format-grouped.js","sourceRoot":"","sources":["../../src/lib/toast-format-grouped.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-config-diagnostics.d.ts","sourceRoot":"","sources":["../../src/lib/tui-config-diagnostics.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"tui-config-diagnostics.d.ts","sourceRoot":"","sources":["../../src/lib/tui-config-diagnostics.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAwCD,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAa/F"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { existsSync } from "fs";
|
|
2
2
|
import { readFile } from "fs/promises";
|
|
3
3
|
import { join } from "path";
|
|
4
|
+
import { dedupeNonEmptyStrings, extractPluginSpecsFromParsedConfig, findGitWorktreeRoot, getConfigFileCandidatePaths, isQuotaPluginSpec, } from "./config-file-utils.js";
|
|
4
5
|
import { parseJsonOrJsonc } from "./jsonc.js";
|
|
5
6
|
import { getOpencodeRuntimeDirCandidates } from "./opencode-runtime-paths.js";
|
|
6
|
-
import { dedupeNonEmptyStrings, extractPluginSpecsFromParsedConfig, findGitWorktreeRoot, getConfigFileCandidatePaths, isQuotaPluginSpec, } from "./config-file-utils.js";
|
|
7
7
|
function getTuiConfigCandidatePaths(params) {
|
|
8
8
|
const cwd = params?.cwd ?? process.cwd();
|
|
9
9
|
const worktreeRoot = findGitWorktreeRoot(cwd);
|
|
10
10
|
const { configDirs } = getOpencodeRuntimeDirCandidates();
|
|
11
|
-
const
|
|
11
|
+
const searchRoots = dedupeNonEmptyStrings([
|
|
12
12
|
...configDirs,
|
|
13
13
|
worktreeRoot ?? "",
|
|
14
14
|
worktreeRoot ? join(worktreeRoot, ".opencode") : "",
|
|
15
15
|
cwd,
|
|
16
16
|
join(cwd, ".opencode"),
|
|
17
17
|
]);
|
|
18
|
-
return
|
|
18
|
+
return searchRoots.flatMap((dir) => getConfigFileCandidatePaths(dir, "tui"));
|
|
19
19
|
}
|
|
20
|
-
async function
|
|
20
|
+
async function readConfigJson(path) {
|
|
21
21
|
try {
|
|
22
22
|
const content = await readFile(path, "utf-8");
|
|
23
23
|
return parseJsonOrJsonc(content, path.endsWith(".jsonc"));
|
|
@@ -26,17 +26,21 @@ async function readJson(path) {
|
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
const candidatePaths = getTuiConfigCandidatePaths(params);
|
|
31
|
-
const presentPaths = candidatePaths.filter((path) => existsSync(path));
|
|
29
|
+
async function findQuotaPluginConfigPaths(paths) {
|
|
32
30
|
const quotaPluginConfigPaths = [];
|
|
33
|
-
for (const path of
|
|
34
|
-
const parsed = await
|
|
31
|
+
for (const path of paths) {
|
|
32
|
+
const parsed = await readConfigJson(path);
|
|
35
33
|
const specs = extractPluginSpecsFromParsedConfig(parsed);
|
|
36
34
|
if (specs.some((spec) => isQuotaPluginSpec(spec, "tui"))) {
|
|
37
35
|
quotaPluginConfigPaths.push(path);
|
|
38
36
|
}
|
|
39
37
|
}
|
|
38
|
+
return quotaPluginConfigPaths;
|
|
39
|
+
}
|
|
40
|
+
export async function inspectTuiConfig(params) {
|
|
41
|
+
const candidatePaths = getTuiConfigCandidatePaths(params);
|
|
42
|
+
const presentPaths = candidatePaths.filter((path) => existsSync(path));
|
|
43
|
+
const quotaPluginConfigPaths = await findQuotaPluginConfigPaths(presentPaths);
|
|
40
44
|
return {
|
|
41
45
|
configured: presentPaths.length > 0,
|
|
42
46
|
inferredSelectedPath: presentPaths[presentPaths.length - 1] ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-config-diagnostics.js","sourceRoot":"","sources":["../../src/lib/tui-config-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"tui-config-diagnostics.js","sourceRoot":"","sources":["../../src/lib/tui-config-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,kCAAkC,EAClC,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAW9E,SAAS,0BAA0B,CAAC,MAAyB;IAC3D,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,EAAE,UAAU,EAAE,GAAG,+BAA+B,EAAE,CAAC;IACzD,MAAM,WAAW,GAAG,qBAAqB,CAAC;QACxC,GAAG,UAAU;QACb,YAAY,IAAI,EAAE;QAClB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACnD,GAAG;QACH,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;KACvB,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,KAAe;IACvD,MAAM,sBAAsB,GAAa,EAAE,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,kCAAkC,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACzD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAyB;IAC9D,MAAM,cAAc,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,MAAM,sBAAsB,GAAG,MAAM,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAE9E,OAAO;QACL,UAAU,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;QACnC,oBAAoB,EAAE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI;QACnE,YAAY;QACZ,cAAc;QACd,qBAAqB,EAAE,sBAAsB,CAAC,MAAM,GAAG,CAAC;QACxD,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-panel-state.d.ts","sourceRoot":"","sources":["../../src/lib/tui-panel-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tui-panel-state.d.ts","sourceRoot":"","sources":["../../src/lib/tui-panel-state.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAE1E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAWvE"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
const SIDEBAR_LOADING_LINE = "Loading…";
|
|
2
|
+
const SIDEBAR_UNAVAILABLE_LINE = "Unavailable";
|
|
1
3
|
export function shouldRenderSidebarPanel(panel) {
|
|
2
4
|
return panel.status !== "disabled";
|
|
3
5
|
}
|
|
4
6
|
export function getSidebarPanelLines(panel) {
|
|
5
7
|
if (panel.lines.length > 0)
|
|
6
8
|
return panel.lines;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
switch (panel.status) {
|
|
10
|
+
case "ready":
|
|
11
|
+
return [SIDEBAR_UNAVAILABLE_LINE];
|
|
12
|
+
case "loading":
|
|
13
|
+
return [SIDEBAR_LOADING_LINE];
|
|
14
|
+
default:
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
12
17
|
}
|
|
13
18
|
//# sourceMappingURL=tui-panel-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-panel-state.js","sourceRoot":"","sources":["../../src/lib/tui-panel-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tui-panel-state.js","sourceRoot":"","sources":["../../src/lib/tui-panel-state.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,UAAU,CAAC;AACxC,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAO/C,MAAM,UAAU,wBAAwB,CAAC,KAAwB;IAC/D,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC;IAE/C,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACpC,KAAK,SAAS;YACZ,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAChC;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -8,6 +8,6 @@ export declare const TUI_SIDEBAR_LAYOUT: {
|
|
|
8
8
|
};
|
|
9
9
|
export declare function buildSidebarQuotaPanelLines(params: {
|
|
10
10
|
data: QuotaRenderData;
|
|
11
|
-
config: Pick<QuotaToastConfig, "formatStyle">;
|
|
11
|
+
config: Pick<QuotaToastConfig, "formatStyle" | "percentDisplayMode">;
|
|
12
12
|
}): string[];
|
|
13
13
|
//# sourceMappingURL=tui-sidebar-format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-sidebar-format.d.ts","sourceRoot":"","sources":["../../src/lib/tui-sidebar-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tui-sidebar-format.d.ts","sourceRoot":"","sources":["../../src/lib/tui-sidebar-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,oBAAoB,CAAC,CAAC;CACtE,GAAG,MAAM,EAAE,CAsBX"}
|
|
@@ -15,6 +15,7 @@ export function buildSidebarQuotaPanelLines(params) {
|
|
|
15
15
|
entries: data.entries,
|
|
16
16
|
errors: data.errors,
|
|
17
17
|
style: params.config.formatStyle,
|
|
18
|
+
percentDisplayMode: params.config.percentDisplayMode,
|
|
18
19
|
sessionTokens: undefined,
|
|
19
20
|
});
|
|
20
21
|
const quotaLines = quotaBody ? quotaBody.split("\n") : [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-sidebar-format.js","sourceRoot":"","sources":["../../src/lib/tui-sidebar-format.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AAEnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,qBAAqB;IAC/B,QAAQ,EAAE,qBAAqB;IAC/B,MAAM,EAAE,EAAE;CACF,CAAC;AAEX,MAAM,UAAU,2BAA2B,CAAC,MAG3C;IACC,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;QAChC,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,UAAU,GAAG,qCAAqC,CAAC,IAAI,CAAC,aAAa,EAAE;QAC3E,QAAQ,EAAE,qBAAqB;KAChC,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,UAAU,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"tui-sidebar-format.js","sourceRoot":"","sources":["../../src/lib/tui-sidebar-format.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qCAAqC,EAAE,MAAM,4BAA4B,CAAC;AAEnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,qBAAqB;IAC/B,QAAQ,EAAE,qBAAqB;IAC/B,MAAM,EAAE,EAAE;CACF,CAAC;AAEX,MAAM,UAAU,2BAA2B,CAAC,MAG3C;IACC,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;QAChC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB;QACpD,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,MAAM,UAAU,GAAG,qCAAqC,CAAC,IAAI,CAAC,aAAa,EAAE;QAC3E,QAAQ,EAAE,qBAAqB;KAChC,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,UAAU,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;AACzD,CAAC"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
export type GoogleModelId = "G3PRO" | "G3FLASH" | "CLAUDE" | "G3IMAGE";
|
|
6
6
|
export type CursorQuotaPlan = "none" | "pro" | "pro-plus" | "ultra";
|
|
7
7
|
export type PricingSnapshotSource = "auto" | "bundled" | "runtime";
|
|
8
|
+
export type PercentDisplayMode = "remaining" | "used";
|
|
8
9
|
export interface PricingSnapshotConfig {
|
|
9
10
|
source: PricingSnapshotSource;
|
|
10
11
|
autoRefresh: number;
|
|
@@ -16,6 +17,8 @@ export interface QuotaToastConfig {
|
|
|
16
17
|
enableToast: boolean;
|
|
17
18
|
/** Shared quota-row formatting style for popup toasts and the TUI sidebar. */
|
|
18
19
|
formatStyle: "classic" | "grouped";
|
|
20
|
+
/** Shared percent meaning for popup toasts and the TUI sidebar. */
|
|
21
|
+
percentDisplayMode: PercentDisplayMode;
|
|
19
22
|
minIntervalMs: number;
|
|
20
23
|
/**
|
|
21
24
|
* Debug mode for troubleshooting.
|
|
@@ -112,6 +115,10 @@ export interface NanoGptAuthData {
|
|
|
112
115
|
type: "api";
|
|
113
116
|
key: string;
|
|
114
117
|
}
|
|
118
|
+
export interface SyntheticAuthData {
|
|
119
|
+
type: "api";
|
|
120
|
+
key: string;
|
|
121
|
+
}
|
|
115
122
|
export interface MiniMaxAuthData {
|
|
116
123
|
type: string;
|
|
117
124
|
key?: string;
|
|
@@ -174,10 +181,7 @@ export interface AuthData {
|
|
|
174
181
|
codex?: OpenAIOAuthData;
|
|
175
182
|
chatgpt?: OpenAIOAuthData;
|
|
176
183
|
opencode?: OpenAIOAuthData;
|
|
177
|
-
|
|
178
|
-
type: string;
|
|
179
|
-
key?: string;
|
|
180
|
-
};
|
|
184
|
+
synthetic?: SyntheticAuthData;
|
|
181
185
|
chutes?: {
|
|
182
186
|
type: string;
|
|
183
187
|
key?: string;
|
|
@@ -194,6 +198,8 @@ export interface AuthData {
|
|
|
194
198
|
key: string;
|
|
195
199
|
};
|
|
196
200
|
"minimax-coding-plan"?: MiniMaxAuthData;
|
|
201
|
+
"kimi-code"?: KimiAuthData;
|
|
202
|
+
kimi?: KimiAuthData;
|
|
197
203
|
}
|
|
198
204
|
/** Single Antigravity account from opencode-antigravity-auth storage */
|
|
199
205
|
export interface AntigravityAccount {
|
|
@@ -226,6 +232,26 @@ export interface GoogleQuotaResponse {
|
|
|
226
232
|
};
|
|
227
233
|
}>;
|
|
228
234
|
}
|
|
235
|
+
/** Kimi auth entry in auth.json */
|
|
236
|
+
export interface KimiAuthData {
|
|
237
|
+
type: "api";
|
|
238
|
+
key: string;
|
|
239
|
+
}
|
|
240
|
+
/** Kimi quota window */
|
|
241
|
+
export interface KimiQuotaWindow {
|
|
242
|
+
label: string;
|
|
243
|
+
used: number;
|
|
244
|
+
limit: number;
|
|
245
|
+
percentRemaining: number;
|
|
246
|
+
resetTimeIso?: string;
|
|
247
|
+
}
|
|
248
|
+
/** Result from fetching Kimi quota */
|
|
249
|
+
export interface KimiQuotaResult {
|
|
250
|
+
success: true;
|
|
251
|
+
label: string;
|
|
252
|
+
windows: KimiQuotaWindow[];
|
|
253
|
+
}
|
|
254
|
+
export type KimiResult = KimiQuotaResult | QuotaError | null;
|
|
229
255
|
/** Z.ai auth entry in auth.json */
|
|
230
256
|
export interface ZaiAuthData {
|
|
231
257
|
type: "api";
|
|
@@ -358,6 +384,18 @@ export type ChutesResult = {
|
|
|
358
384
|
percentRemaining: number;
|
|
359
385
|
resetTimeIso?: string;
|
|
360
386
|
} | QuotaError | null;
|
|
387
|
+
export interface SyntheticQuotaWindow {
|
|
388
|
+
requestLimit: number;
|
|
389
|
+
usedRequests: number;
|
|
390
|
+
percentRemaining: number;
|
|
391
|
+
resetTimeIso?: string;
|
|
392
|
+
}
|
|
393
|
+
export type SyntheticResult = {
|
|
394
|
+
success: true;
|
|
395
|
+
windows: {
|
|
396
|
+
fiveHour: SyntheticQuotaWindow;
|
|
397
|
+
};
|
|
398
|
+
} | QuotaError | null;
|
|
361
399
|
/** Result from scraping OpenCode Go dashboard usage */
|
|
362
400
|
export type OpenCodeGoResult = {
|
|
363
401
|
success: true;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,+BAA+B;AAC/B,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;AACpE,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.js
CHANGED
|
@@ -6,6 +6,7 @@ export const DEFAULT_CONFIG = {
|
|
|
6
6
|
enabled: true,
|
|
7
7
|
enableToast: true,
|
|
8
8
|
formatStyle: "classic",
|
|
9
|
+
percentDisplayMode: "remaining",
|
|
9
10
|
minIntervalMs: 300000, // 5 minutes
|
|
10
11
|
debug: false,
|
|
11
12
|
// Providers are auto-detected by default; set to explicit list to opt-in manually.
|
package/dist/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsFH,mCAAmC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,OAAO,EAAE,IAAI;IAEb,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,SAAS;IACtB,kBAAkB,EAAE,WAAW;IAC/B,aAAa,EAAE,MAAM,EAAE,YAAY;IAEnC,KAAK,EAAE,KAAK;IAEZ,mFAAmF;IACnF,gBAAgB,EAAE,MAAe;IAEjC,mBAAmB,EAAE,QAAQ;IAE7B,4DAA4D;IAC5D,YAAY,EAAE,CAAC,QAAQ,CAAC;IACxB,qBAAqB,EAAE,MAAM;IAC7B,UAAU,EAAE,MAAM;IAClB,eAAe,EAAE;QACf,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,CAAC;KACf;IAED,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,KAAK;IACvB,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;KACX;CACF,CAAC;AAiaF,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,sCAAsC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC,uCAAuC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,KAAK,EAAE;QACL,GAAG,EAAE,gBAAgB;QACrB,MAAM,EAAE,2EAA2E;QACnF,OAAO,EAAE,OAAO;KACjB;IACD,OAAO,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE;IACtD,MAAM,EAAE;QACN,GAAG,EAAE,0BAA0B;QAC/B,MAAM,EAAE,0CAA0C;QAClD,OAAO,EAAE,QAAQ;KAClB;IACD,OAAO,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,SAAS,EAAE;CAC3D,CAAC"}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAwSlD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAwSlD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAsuC9B,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -542,6 +542,7 @@ export const QuotaToastPlugin = async ({ client }) => {
|
|
|
542
542
|
entries: data.entries,
|
|
543
543
|
errors: data.errors,
|
|
544
544
|
style: config.formatStyle,
|
|
545
|
+
percentDisplayMode: config.percentDisplayMode,
|
|
545
546
|
sessionTokens: data.sessionTokens,
|
|
546
547
|
});
|
|
547
548
|
if (!config.debug)
|