@slkiser/opencode-quota 5.0.0-beta.1 → 5.0.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 +73 -131
- package/dist/data/modelsdev-pricing.min.json +12 -0
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +9 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/copilot.d.ts.map +1 -1
- package/dist/lib/copilot.js +24 -1
- package/dist/lib/copilot.js.map +1 -1
- package/dist/lib/cursor-pricing.d.ts.map +1 -1
- package/dist/lib/cursor-pricing.js +3 -0
- package/dist/lib/cursor-pricing.js.map +1 -1
- package/dist/lib/format-utils.d.ts +0 -4
- package/dist/lib/format-utils.d.ts.map +1 -1
- package/dist/lib/format-utils.js +0 -3
- package/dist/lib/format-utils.js.map +1 -1
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +13 -0
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/google-agy.js +1 -1
- package/dist/lib/init-installer.js +2 -2
- package/dist/lib/init-installer.js.map +1 -1
- package/dist/lib/markdown-table.d.ts +36 -0
- package/dist/lib/markdown-table.d.ts.map +1 -1
- package/dist/lib/markdown-table.js +56 -0
- package/dist/lib/markdown-table.js.map +1 -1
- package/dist/lib/opencode-auth.d.ts.map +1 -1
- package/dist/lib/opencode-auth.js +4 -3
- package/dist/lib/opencode-auth.js.map +1 -1
- package/dist/lib/quota-columns.d.ts +38 -0
- package/dist/lib/quota-columns.d.ts.map +1 -0
- package/dist/lib/quota-columns.js +129 -0
- package/dist/lib/quota-columns.js.map +1 -0
- package/dist/lib/quota-command-format.d.ts +11 -0
- package/dist/lib/quota-command-format.d.ts.map +1 -1
- package/dist/lib/quota-command-format.js +80 -27
- package/dist/lib/quota-command-format.js.map +1 -1
- package/dist/lib/quota-dialog-command-specs.d.ts +4 -0
- package/dist/lib/quota-dialog-command-specs.d.ts.map +1 -1
- package/dist/lib/quota-dialog-command-specs.js.map +1 -1
- package/dist/lib/quota-dialog-commands.d.ts +2 -0
- package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
- package/dist/lib/quota-dialog-commands.js +114 -101
- package/dist/lib/quota-dialog-commands.js.map +1 -1
- package/dist/lib/quota-providers-remote.d.ts.map +1 -1
- package/dist/lib/quota-providers-remote.js +8 -5
- package/dist/lib/quota-providers-remote.js.map +1 -1
- package/dist/lib/quota-report-message.d.ts +3 -2
- package/dist/lib/quota-report-message.d.ts.map +1 -1
- package/dist/lib/quota-report-message.js +7 -11
- package/dist/lib/quota-report-message.js.map +1 -1
- package/dist/lib/quota-retry-wait.d.ts +36 -0
- package/dist/lib/quota-retry-wait.d.ts.map +1 -0
- package/dist/lib/quota-retry-wait.js +67 -0
- package/dist/lib/quota-retry-wait.js.map +1 -0
- package/dist/lib/quota-stats-format.d.ts +8 -3
- package/dist/lib/quota-stats-format.d.ts.map +1 -1
- package/dist/lib/quota-stats-format.js +36 -37
- package/dist/lib/quota-stats-format.js.map +1 -1
- package/dist/lib/quota-status.d.ts +5 -2
- package/dist/lib/quota-status.d.ts.map +1 -1
- package/dist/lib/quota-status.js +9 -5
- package/dist/lib/quota-status.js.map +1 -1
- package/dist/lib/report-document.d.ts +56 -2
- package/dist/lib/report-document.d.ts.map +1 -1
- package/dist/lib/report-document.js +105 -24
- package/dist/lib/report-document.js.map +1 -1
- package/dist/lib/toast-format-grouped.d.ts.map +1 -1
- package/dist/lib/toast-format-grouped.js +8 -0
- package/dist/lib/toast-format-grouped.js.map +1 -1
- package/dist/lib/types.d.ts +5 -0
- 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 +18 -1
- package/dist/plugin.js.map +1 -1
- package/dist/providers/copilot.js +2 -2
- package/dist/tui-v2.d.ts.map +1 -1
- package/dist/tui-v2.jsx +149 -23
- package/dist/tui-v2.jsx.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +370 -98
- package/package.json +1 -1
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
* can keep them out of every model request, and the TUI can show them in its dialog.
|
|
5
5
|
*/
|
|
6
6
|
import type { QuotaDialogCommandId } from "./quota-dialog-command-specs.js";
|
|
7
|
+
import { type ReportDocument } from "./report-document.js";
|
|
7
8
|
/** Metadata key on every quota report message. OpenCode stores message metadata with the message. */
|
|
8
9
|
export declare const QUOTA_REPORT_METADATA_KEY = "opencodeQuota";
|
|
9
10
|
export type QuotaReportMetadata = {
|
|
10
11
|
command: QuotaDialogCommandId;
|
|
11
12
|
title: string;
|
|
12
13
|
at: number;
|
|
14
|
+
/** The report, structured, so the TUI can show it in its dialog. */
|
|
15
|
+
document: ReportDocument;
|
|
13
16
|
};
|
|
14
17
|
export declare function formatQuotaReportMessage(report: string): string;
|
|
15
|
-
/** The report inside a quota report message, without its first and last line. */
|
|
16
|
-
export declare function readQuotaReport(text: string): string;
|
|
17
18
|
export declare function containsQuotaReport(text: string): boolean;
|
|
18
19
|
/** Cuts every complete quota report, first to last line, out of the text. */
|
|
19
20
|
export declare function removeQuotaReports(text: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-report-message.d.ts","sourceRoot":"","sources":["../../src/lib/quota-report-message.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-report-message.d.ts","sourceRoot":"","sources":["../../src/lib/quota-report-message.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE7E,qGAAqG;AACrG,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,oEAAoE;IACpE,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC;AAYF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GACtD,mBAAmB,GAAG,SAAS,CAajC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isReportDocument } from "./report-document.js";
|
|
1
2
|
/** Metadata key on every quota report message. OpenCode stores message metadata with the message. */
|
|
2
3
|
export const QUOTA_REPORT_METADATA_KEY = "opencodeQuota";
|
|
3
4
|
/**
|
|
@@ -12,14 +13,6 @@ const QUOTA_REPORT_BLOCKS = /\[OpenCode Quota report\][\s\S]*?\[End of OpenCode
|
|
|
12
13
|
export function formatQuotaReportMessage(report) {
|
|
13
14
|
return `${QUOTA_REPORT_START}\n${report}\n${QUOTA_REPORT_END}`;
|
|
14
15
|
}
|
|
15
|
-
/** The report inside a quota report message, without its first and last line. */
|
|
16
|
-
export function readQuotaReport(text) {
|
|
17
|
-
const prefix = `${QUOTA_REPORT_START}\n`;
|
|
18
|
-
const suffix = `\n${QUOTA_REPORT_END}`;
|
|
19
|
-
if (!text.startsWith(prefix) || !text.endsWith(suffix))
|
|
20
|
-
return text;
|
|
21
|
-
return text.slice(prefix.length, text.length - suffix.length);
|
|
22
|
-
}
|
|
23
16
|
export function containsQuotaReport(text) {
|
|
24
17
|
return text.includes(QUOTA_REPORT_START);
|
|
25
18
|
}
|
|
@@ -31,10 +24,13 @@ export function readQuotaReportMetadata(metadata) {
|
|
|
31
24
|
const value = metadata?.[QUOTA_REPORT_METADATA_KEY];
|
|
32
25
|
if (!value || typeof value !== "object")
|
|
33
26
|
return undefined;
|
|
34
|
-
const { command, title, at } = value;
|
|
35
|
-
if (typeof command !== "string" ||
|
|
27
|
+
const { command, title, at, document } = value;
|
|
28
|
+
if (typeof command !== "string" ||
|
|
29
|
+
typeof title !== "string" ||
|
|
30
|
+
typeof at !== "number" ||
|
|
31
|
+
!isReportDocument(document)) {
|
|
36
32
|
return undefined;
|
|
37
33
|
}
|
|
38
|
-
return { command: command, title, at };
|
|
34
|
+
return { command: command, title, at, document };
|
|
39
35
|
}
|
|
40
36
|
//# sourceMappingURL=quota-report-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-report-message.js","sourceRoot":"","sources":["../../src/lib/quota-report-message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quota-report-message.js","sourceRoot":"","sources":["../../src/lib/quota-report-message.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,sBAAsB,CAAC;AAE7E,qGAAqG;AACrG,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAUzD;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AACrD,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAC1D,MAAM,mBAAmB,GAAG,oEAAoE,CAAC;AAEjG,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,OAAO,GAAG,kBAAkB,KAAK,MAAM,KAAK,gBAAgB,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC3C,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAuD;IAEvD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC,yBAAyB,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAgC,CAAC;IAC1E,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,EAAE,KAAK,QAAQ;QACtB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAA+B,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `waitForQuotaReset` (on by default): when a model request hits a provider limit and the quota data
|
|
3
|
+
* shows a used-up window for that model's provider, OpenCode retries once that window resets
|
|
4
|
+
* instead of following its normal retry timing.
|
|
5
|
+
*/
|
|
6
|
+
import { type QuotaProviderResult } from "./entries.js";
|
|
7
|
+
import type { QuotaSurfaceHost } from "./quota-surface-data.js";
|
|
8
|
+
/** Extra wait after the reset time, so the provider has reset the window when the retry runs. */
|
|
9
|
+
export declare const QUOTA_RESET_RETRY_BUFFER_MS = 60000;
|
|
10
|
+
/** Longest single wait. If the window is still used up, the next retry waits again. */
|
|
11
|
+
export declare const QUOTA_RESET_RETRY_MAX_DELAY_MS: number;
|
|
12
|
+
/** The parts of OpenCode's retry event this feature reads. */
|
|
13
|
+
export type QuotaRetryEvent = {
|
|
14
|
+
readonly model: {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly providerID: string;
|
|
17
|
+
};
|
|
18
|
+
readonly error: {
|
|
19
|
+
readonly type: string;
|
|
20
|
+
readonly status?: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/** OpenCode's error types for a provider rate limit or used-up quota, or any HTTP 429. */
|
|
24
|
+
export declare function isQuotaLimitError(error: QuotaRetryEvent["error"]): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Milliseconds until the earliest reset among used-up (0% left) windows, plus the buffer, at
|
|
27
|
+
* most the cap. Undefined when no used-up window has a reset time still ahead.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getQuotaResetRetryDelayMs(results: readonly QuotaProviderResult[], nowMs: number): number | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The retry delay for a limit error on `event.model`, or undefined to keep OpenCode's decision.
|
|
32
|
+
* Quota comes from the same provider refresh path as the sidebar and toasts, but skips the cache:
|
|
33
|
+
* the limit error itself shows the quota changed, so the provider is asked once for fresh data.
|
|
34
|
+
*/
|
|
35
|
+
export declare function resolveQuotaResetRetryDelayMs(host: Pick<QuotaSurfaceHost, "client" | "roots">, event: QuotaRetryEvent): Promise<number | undefined>;
|
|
36
|
+
//# sourceMappingURL=quota-retry-wait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-retry-wait.d.ts","sourceRoot":"","sources":["../../src/lib/quota-retry-wait.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,iGAAiG;AACjG,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,uFAAuF;AACvF,eAAO,MAAM,8BAA8B,QAAqB,CAAC;AAEjE,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAI1E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,SAAS,CAepB;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,OAAO,CAAC,EAChD,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwB7B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `waitForQuotaReset` (on by default): when a model request hits a provider limit and the quota data
|
|
3
|
+
* shows a used-up window for that model's provider, OpenCode retries once that window resets
|
|
4
|
+
* instead of following its normal retry timing.
|
|
5
|
+
*/
|
|
6
|
+
import { isPercentEntry } from "./entries.js";
|
|
7
|
+
import { collectQuotaRenderData } from "./quota-render-data.js";
|
|
8
|
+
import { createQuotaRuntimeRequestContext, resolveQuotaRuntimeContext, } from "./quota-runtime-context.js";
|
|
9
|
+
/** Extra wait after the reset time, so the provider has reset the window when the retry runs. */
|
|
10
|
+
export const QUOTA_RESET_RETRY_BUFFER_MS = 60_000;
|
|
11
|
+
/** Longest single wait. If the window is still used up, the next retry waits again. */
|
|
12
|
+
export const QUOTA_RESET_RETRY_MAX_DELAY_MS = 5 * 60 * 60 * 1000;
|
|
13
|
+
/** OpenCode's error types for a provider rate limit or used-up quota, or any HTTP 429. */
|
|
14
|
+
export function isQuotaLimitError(error) {
|
|
15
|
+
return (error.type === "provider.rate-limit" || error.type === "provider.quota" || error.status === 429);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Milliseconds until the earliest reset among used-up (0% left) windows, plus the buffer, at
|
|
19
|
+
* most the cap. Undefined when no used-up window has a reset time still ahead.
|
|
20
|
+
*/
|
|
21
|
+
export function getQuotaResetRetryDelayMs(results, nowMs) {
|
|
22
|
+
let earliestResetMs;
|
|
23
|
+
for (const result of results) {
|
|
24
|
+
for (const entry of result.entries) {
|
|
25
|
+
if (!isPercentEntry(entry) || !(entry.percentRemaining <= 0) || !entry.resetTimeIso)
|
|
26
|
+
continue;
|
|
27
|
+
const resetMs = Date.parse(entry.resetTimeIso);
|
|
28
|
+
if (!(resetMs > nowMs))
|
|
29
|
+
continue;
|
|
30
|
+
if (earliestResetMs === undefined || resetMs < earliestResetMs)
|
|
31
|
+
earliestResetMs = resetMs;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (earliestResetMs === undefined)
|
|
35
|
+
return undefined;
|
|
36
|
+
return Math.min(earliestResetMs - nowMs + QUOTA_RESET_RETRY_BUFFER_MS, QUOTA_RESET_RETRY_MAX_DELAY_MS);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The retry delay for a limit error on `event.model`, or undefined to keep OpenCode's decision.
|
|
40
|
+
* Quota comes from the same provider refresh path as the sidebar and toasts, but skips the cache:
|
|
41
|
+
* the limit error itself shows the quota changed, so the provider is asked once for fresh data.
|
|
42
|
+
*/
|
|
43
|
+
export async function resolveQuotaResetRetryDelayMs(host, event) {
|
|
44
|
+
if (!isQuotaLimitError(event.error))
|
|
45
|
+
return undefined;
|
|
46
|
+
const runtime = await resolveQuotaRuntimeContext({
|
|
47
|
+
client: host.client,
|
|
48
|
+
roots: host.roots,
|
|
49
|
+
sessionMeta: { modelID: event.model.id, providerID: event.model.providerID },
|
|
50
|
+
});
|
|
51
|
+
if (!runtime.config.waitForQuotaReset)
|
|
52
|
+
return undefined;
|
|
53
|
+
const collected = await collectQuotaRenderData({
|
|
54
|
+
client: runtime.client,
|
|
55
|
+
resolveRuntimeProviderIds: runtime.resolveRuntimeProviderIds,
|
|
56
|
+
// Only the provider of the model that hit the limit counts, whatever onlyCurrentModel says.
|
|
57
|
+
config: { ...runtime.config, onlyCurrentModel: true },
|
|
58
|
+
configMeta: runtime.configMeta,
|
|
59
|
+
request: createQuotaRuntimeRequestContext(runtime),
|
|
60
|
+
workspaceRoot: runtime.roots.workspaceRoot,
|
|
61
|
+
surfaceExplicitProviderIssues: false,
|
|
62
|
+
bypassProviderCache: true,
|
|
63
|
+
providers: runtime.providers,
|
|
64
|
+
});
|
|
65
|
+
return getQuotaResetRetryDelayMs(collected.providerResults.map((probe) => probe.result), Date.now());
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=quota-retry-wait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-retry-wait.js","sourceRoot":"","sources":["../../src/lib/quota-retry-wait.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAA4B,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAGpC,iGAAiG;AACjG,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAClD,uFAAuF;AACvF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAQjE,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAAC,KAA+B;IAC/D,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAChG,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAuC,EACvC,KAAa;IAEb,IAAI,eAAmC,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAE,SAAS;YAC9F,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBAAE,SAAS;YACjC,IAAI,eAAe,KAAK,SAAS,IAAI,OAAO,GAAG,eAAe;gBAAE,eAAe,GAAG,OAAO,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,IAAI,CAAC,GAAG,CACb,eAAe,GAAG,KAAK,GAAG,2BAA2B,EACrD,8BAA8B,CAC/B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAgD,EAChD,KAAsB;IAEtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC;QAC/C,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE;KAC7E,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;QAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,yBAAyB,EAAE,OAAO,CAAC,yBAAyB;QAC5D,4FAA4F;QAC5F,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE;QACrD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO,EAAE,gCAAgC,CAAC,OAAO,CAAC;QAClD,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;QAC1C,6BAA6B,EAAE,KAAK;QACpC,mBAAmB,EAAE,IAAI;QACzB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IACH,OAAO,yBAAyB,CAC9B,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EACtD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import type { AggregateResult, SessionTreeNode } from "./quota-stats.js";
|
|
2
|
+
import { type ReportDocument } from "./report-document.js";
|
|
2
3
|
type QuotaStatsReportKind = "standard" | "session" | "session_tree";
|
|
3
4
|
type QuotaStatsReportTableOptions = {
|
|
4
5
|
compactHeaders?: boolean;
|
|
5
6
|
modelNameMaxWidth?: number;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
type QuotaStatsReportParams = {
|
|
8
9
|
title: string;
|
|
10
|
+
/** Facts in the title that the TUI dialog title lacks, like the date range; see commandHeading. */
|
|
11
|
+
titleDetail?: string;
|
|
9
12
|
result: AggregateResult;
|
|
10
13
|
topModels?: number;
|
|
11
14
|
topSessions?: number;
|
|
12
15
|
focusSessionID?: string;
|
|
13
|
-
/** When true, hides Window/Sessions columns and Top
|
|
16
|
+
/** When true, hides Window/Sessions columns and the Top sessions section (for session-only reports) */
|
|
14
17
|
sessionOnly?: boolean;
|
|
15
18
|
reportKind?: QuotaStatsReportKind;
|
|
16
19
|
sessionTree?: {
|
|
@@ -19,6 +22,8 @@ export declare function formatQuotaStatsReport(params: {
|
|
|
19
22
|
};
|
|
20
23
|
generatedAtMs?: number;
|
|
21
24
|
tableOptions?: QuotaStatsReportTableOptions;
|
|
22
|
-
}
|
|
25
|
+
};
|
|
26
|
+
export declare function formatQuotaStatsReport(params: QuotaStatsReportParams): string;
|
|
27
|
+
export declare function buildQuotaStatsReportDocument(params: QuotaStatsReportParams): ReportDocument;
|
|
23
28
|
export {};
|
|
24
29
|
//# sourceMappingURL=quota-stats-format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-stats-format.d.ts","sourceRoot":"","sources":["../../src/lib/quota-stats-format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAgB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-stats-format.d.ts","sourceRoot":"","sources":["../../src/lib/quota-stats-format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAgB,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAEL,KAAK,cAAc,EAGpB,MAAM,sBAAsB,CAAC;AAY9B,KAAK,oBAAoB,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;AAEpE,KAAK,4BAA4B,GAAG;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAgJF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uGAAuG;IACvG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,WAAW,CAAC,EAAE;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,eAAe,EAAE,CAAC;KAC1B,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,4BAA4B,CAAC;CAC7C,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAE7E;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,sBAAsB,GAAG,cAAc,CAoV5F"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { abbreviateDisplayedModelName } from "./format-utils.js";
|
|
2
|
-
import { renderMarkdownReport, } from "./report-document.js";
|
|
2
|
+
import { commandHeading, renderMarkdownReport, } from "./report-document.js";
|
|
3
3
|
import { emptyTokenBuckets, totalTokenBuckets } from "./token-buckets.js";
|
|
4
4
|
/** Use markdown-conceal for proper TUI alignment (strips markdown syntax for width calc) */
|
|
5
5
|
const TABLE_WIDTH_MODE = "markdown-conceal";
|
|
@@ -8,6 +8,13 @@ function fmtUsd(n) {
|
|
|
8
8
|
return "$0.00";
|
|
9
9
|
return `$${n.toFixed(2)}`;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* A table's header labels: the compact ones when asked for, else the full ones. The full
|
|
13
|
+
* labels also ride along, so the TUI dialog can show them when the table fits with them.
|
|
14
|
+
*/
|
|
15
|
+
function tableHeaders(options, compact, full) {
|
|
16
|
+
return { headers: options.compactHeaders ? compact : full, fullHeaders: full };
|
|
17
|
+
}
|
|
11
18
|
function hasRenderableSessionUsage(row) {
|
|
12
19
|
return totalTokenBuckets(row.tokens) > 0 || row.costUsd > 0;
|
|
13
20
|
}
|
|
@@ -149,6 +156,9 @@ function truncateTitle(title) {
|
|
|
149
156
|
return trimmed.slice(0, 10) + "…" + trimmed.slice(-10);
|
|
150
157
|
}
|
|
151
158
|
export function formatQuotaStatsReport(params) {
|
|
159
|
+
return renderMarkdownReport(buildQuotaStatsReportDocument(params));
|
|
160
|
+
}
|
|
161
|
+
export function buildQuotaStatsReportDocument(params) {
|
|
152
162
|
const topModels = params.topModels ?? 12;
|
|
153
163
|
const topSessions = params.topSessions ?? 8;
|
|
154
164
|
const r = params.result;
|
|
@@ -171,9 +181,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
171
181
|
blocks: [
|
|
172
182
|
{
|
|
173
183
|
kind: "table",
|
|
174
|
-
|
|
175
|
-
? ["Msgs", "Tok", "Cost"]
|
|
176
|
-
: ["Messages", "Tokens", "Cost"],
|
|
184
|
+
...tableHeaders(tableOptions, ["Msgs", "Tok", "Cost"], ["Messages", "Tokens", "Cost"]),
|
|
177
185
|
aligns: ["right", "right", "right"],
|
|
178
186
|
widthMode: TABLE_WIDTH_MODE,
|
|
179
187
|
rows: [
|
|
@@ -193,9 +201,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
193
201
|
blocks: [
|
|
194
202
|
{
|
|
195
203
|
kind: "table",
|
|
196
|
-
|
|
197
|
-
? ["Msgs", "Sess", "Tok", "Cost"]
|
|
198
|
-
: ["Messages", "Sessions", "Tokens", "Cost"],
|
|
204
|
+
...tableHeaders(tableOptions, ["Msgs", "Sess", "Tok", "Cost"], ["Messages", "Sessions", "Tokens", "Cost"]),
|
|
199
205
|
aligns: ["right", "right", "right", "right"],
|
|
200
206
|
widthMode: TABLE_WIDTH_MODE,
|
|
201
207
|
rows: [
|
|
@@ -216,9 +222,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
216
222
|
blocks: [
|
|
217
223
|
{
|
|
218
224
|
kind: "table",
|
|
219
|
-
|
|
220
|
-
? ["Window", "Msgs", "Sess", "Tok", "Cost"]
|
|
221
|
-
: ["Window", "Messages", "Sessions", "Tokens", "Cost"],
|
|
225
|
+
...tableHeaders(tableOptions, ["Window", "Msgs", "Sess", "Tok", "Cost"], ["Window", "Messages", "Sessions", "Tokens", "Cost"]),
|
|
222
226
|
aligns: ["left", "right", "right", "right", "right"],
|
|
223
227
|
widthMode: TABLE_WIDTH_MODE,
|
|
224
228
|
rows: [
|
|
@@ -237,16 +241,18 @@ export function formatQuotaStatsReport(params) {
|
|
|
237
241
|
const hasAnyReasoning = r.totals.priced.reasoning > 0 ||
|
|
238
242
|
r.totals.unknown.reasoning > 0 ||
|
|
239
243
|
r.totals.unpriced.reasoning > 0;
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
: ["Source", "Model", "Input", "Output", "C.Read", "C.Write"];
|
|
244
|
+
const compactLabels = ["Source", "Model", "In", "Out", "C.Rd", "C.Wr"];
|
|
245
|
+
const fullLabels = ["Source", "Model", "Input", "Output", "Cache read", "Cache write"];
|
|
243
246
|
const aligns = ["left", "left", "right", "right", "right", "right"];
|
|
244
247
|
if (hasAnyReasoning) {
|
|
245
|
-
|
|
248
|
+
compactLabels.push("Rsn");
|
|
249
|
+
fullLabels.push("Reasoning");
|
|
246
250
|
aligns.push("right");
|
|
247
251
|
}
|
|
248
|
-
|
|
252
|
+
compactLabels.push("Tok", "Cost");
|
|
253
|
+
fullLabels.push("Tokens", "Cost");
|
|
249
254
|
aligns.push("right", "right");
|
|
255
|
+
const { headers, fullHeaders } = tableHeaders(tableOptions, compactLabels, fullLabels);
|
|
250
256
|
const rows = [];
|
|
251
257
|
const grouped = new Map();
|
|
252
258
|
for (const row of r.bySourceModel) {
|
|
@@ -291,11 +297,12 @@ export function formatQuotaStatsReport(params) {
|
|
|
291
297
|
if (rows.length > 0) {
|
|
292
298
|
sections.push({
|
|
293
299
|
id: "models",
|
|
294
|
-
title: "
|
|
300
|
+
title: "Model breakdown",
|
|
295
301
|
blocks: [
|
|
296
302
|
{
|
|
297
303
|
kind: "table",
|
|
298
304
|
headers,
|
|
305
|
+
fullHeaders,
|
|
299
306
|
rows,
|
|
300
307
|
aligns,
|
|
301
308
|
widthMode: TABLE_WIDTH_MODE,
|
|
@@ -319,13 +326,11 @@ export function formatQuotaStatsReport(params) {
|
|
|
319
326
|
});
|
|
320
327
|
sections.push({
|
|
321
328
|
id: "session-tree",
|
|
322
|
-
title: "Session
|
|
329
|
+
title: "Session tree",
|
|
323
330
|
blocks: [
|
|
324
331
|
{
|
|
325
332
|
kind: "table",
|
|
326
|
-
|
|
327
|
-
? ["Rel", "Parent", "Session", "Cost", "Tok", "Msgs", "Title"]
|
|
328
|
-
: ["Relation", "Parent", "Session", "Cost", "Tokens", "Msgs", "Title"],
|
|
333
|
+
...tableHeaders(tableOptions, ["Rel", "Parent", "Session", "Cost", "Tok", "Msgs", "Title"], ["Relation", "Parent", "Session", "Cost", "Tokens", "Messages", "Title"]),
|
|
329
334
|
aligns: ["left", "left", "left", "right", "right", "right", "left"],
|
|
330
335
|
widthMode: TABLE_WIDTH_MODE,
|
|
331
336
|
rows: sessionTreeRows,
|
|
@@ -333,7 +338,7 @@ export function formatQuotaStatsReport(params) {
|
|
|
333
338
|
],
|
|
334
339
|
});
|
|
335
340
|
}
|
|
336
|
-
// Skip Top
|
|
341
|
+
// Skip Top sessions for session-scoped reports (e.g., /tokens_session, /tokens_session_all).
|
|
337
342
|
if (reportKind === "standard") {
|
|
338
343
|
const sessionRows = [];
|
|
339
344
|
const visibleSessions = r.bySession.filter(hasRenderableSessionUsage);
|
|
@@ -365,14 +370,12 @@ export function formatQuotaStatsReport(params) {
|
|
|
365
370
|
}
|
|
366
371
|
sections.push({
|
|
367
372
|
id: "top-sessions",
|
|
368
|
-
title: "Top
|
|
373
|
+
title: "Top sessions",
|
|
369
374
|
blocks: sessionRows.length > 0
|
|
370
375
|
? [
|
|
371
376
|
{
|
|
372
377
|
kind: "table",
|
|
373
|
-
|
|
374
|
-
? ["Cur", "Session", "Cost", "Tok", "Msgs", "Title"]
|
|
375
|
-
: ["Current", "Session", "Cost", "Tokens", "Msgs", "Title"],
|
|
378
|
+
...tableHeaders(tableOptions, ["Cur", "Session", "Cost", "Tok", "Msgs", "Title"], ["Current", "Session", "Cost", "Tokens", "Messages", "Title"]),
|
|
376
379
|
aligns: ["left", "left", "right", "right", "right", "left"],
|
|
377
380
|
widthMode: TABLE_WIDTH_MODE,
|
|
378
381
|
rows: sessionRows,
|
|
@@ -384,13 +387,11 @@ export function formatQuotaStatsReport(params) {
|
|
|
384
387
|
if (r.unpriced.length > 0) {
|
|
385
388
|
sections.push({
|
|
386
389
|
id: "unpriced-models",
|
|
387
|
-
title: "
|
|
390
|
+
title: "Models with no token prices",
|
|
388
391
|
blocks: [
|
|
389
392
|
{
|
|
390
393
|
kind: "table",
|
|
391
|
-
|
|
392
|
-
? ["Source", "Model", "Map", "Reason", "Tok", "Msgs"]
|
|
393
|
-
: ["Source", "Model", "Mapped", "Reason", "Tokens", "Msgs"],
|
|
394
|
+
...tableHeaders(tableOptions, ["Source", "Model", "Map", "Reason", "Tok", "Msgs"], ["Source", "Model", "Mapped", "Reason", "Tokens", "Messages"]),
|
|
394
395
|
aligns: ["left", "left", "left", "left", "right", "right"],
|
|
395
396
|
widthMode: TABLE_WIDTH_MODE,
|
|
396
397
|
rows: r.unpriced.slice(0, 20).map((u) => {
|
|
@@ -411,13 +412,11 @@ export function formatQuotaStatsReport(params) {
|
|
|
411
412
|
if (r.unknown.length > 0) {
|
|
412
413
|
sections.push({
|
|
413
414
|
id: "unknown-pricing",
|
|
414
|
-
title: "
|
|
415
|
+
title: "Models without pricing",
|
|
415
416
|
blocks: [
|
|
416
417
|
{
|
|
417
418
|
kind: "table",
|
|
418
|
-
|
|
419
|
-
? ["Source", "Model", "Map", "Tok", "Msgs"]
|
|
420
|
-
: ["Source", "Model", "Mapped", "Tokens", "Msgs"],
|
|
419
|
+
...tableHeaders(tableOptions, ["Source", "Model", "Map", "Tok", "Msgs"], ["Source", "Model", "Mapped", "Tokens", "Messages"]),
|
|
421
420
|
aligns: ["left", "left", "left", "right", "right"],
|
|
422
421
|
widthMode: TABLE_WIDTH_MODE,
|
|
423
422
|
rows: r.unknown.slice(0, 20).map((u) => {
|
|
@@ -448,13 +447,13 @@ export function formatQuotaStatsReport(params) {
|
|
|
448
447
|
],
|
|
449
448
|
});
|
|
450
449
|
}
|
|
451
|
-
|
|
452
|
-
heading: {
|
|
450
|
+
return {
|
|
451
|
+
heading: commandHeading({
|
|
453
452
|
title: params.title,
|
|
453
|
+
detail: params.titleDetail,
|
|
454
454
|
generatedAtMs: params.generatedAtMs,
|
|
455
|
-
},
|
|
455
|
+
}),
|
|
456
456
|
sections,
|
|
457
457
|
};
|
|
458
|
-
return renderMarkdownReport(document);
|
|
459
458
|
}
|
|
460
459
|
//# sourceMappingURL=quota-stats-format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-stats-format.js","sourceRoot":"","sources":["../../src/lib/quota-stats-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAGL,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,4FAA4F;AAC5F,MAAM,gBAAgB,GAAc,kBAAkB,CAAC;AAEvD,SAAS,MAAM,CAAC,CAAS;IACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,CAAC;AAUD,SAAS,yBAAyB,CAAC,GAAqB;IACtD,OAAO,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAuB,EAAE,GAAqB,EAAE,OAAO,GAAG,EAAE;IACpF,WAAW,CAAC,IAAI,CAAC;QACf,OAAO;QACP,GAAG,CAAC,SAAS;QACb,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QACnB,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;KACzB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IACrC,OAAO,cAAc,KAAK,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,wBAAwB,CAAC,WAAoB;IACpD,OAAO,WAAW;QAChB,CAAC,CAAC,yDAAyD;QAC3D,CAAC,CAAC,0CAA0C,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,EAAU;IAClC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,OAAO,GAAG,KAAK,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,MAA8C;IAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAC1D,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1F,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5F,OAAO,GAAG,KAAK,OAAO,KAAK,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAoC;QAC7C,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE;KACrB,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACpB,+DAA+D;YAC/D,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAClE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1F,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/F,0CAA0C;IAC1C,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,UAAU,IAAI,SAAS,CAAC;AACjC,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,QAAgB;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAEhC,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAClC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,QAAiB;IAC7D,MAAM,SAAS,GAAG,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChF,OAAO,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED,SAAS,6BAA6B,CAAC,OAAe,EAAE,QAAiB;IACvE,IAAI,CAAC,QAAQ;QAAE,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,eAAe,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAyB;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IACzC,gCAAgC;IAChC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAetC;IACC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC;IAC7C,MAAM,eAAe,GAAG,UAAU,KAAK,cAAc,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,eAAe,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,cAAc,GAClB,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAClC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACnC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,+EAA+E;IAC/E,IAAI,WAAW,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,YAAY,CAAC,cAAc;wBAClC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;wBACzB,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAClC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;oBACnC,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE;wBACJ;4BACE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;4BACjC,UAAU,CAAC,cAAc,CAAC;4BAC1B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;yBACzB;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,eAAe,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,YAAY,CAAC,cAAc;wBAClC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;wBACjC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC9C,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;oBAC5C,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE;wBACJ;4BACE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;4BACjC,UAAU,CAAC,WAAY,CAAC,KAAK,CAAC,MAAM,CAAC;4BACrC,UAAU,CAAC,cAAc,CAAC;4BAC1B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;yBACzB;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,SAAS;YACb,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,YAAY,CAAC,cAAc;wBAClC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;wBAC3C,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC;oBACxD,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;oBACpD,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE;wBACJ;4BACE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;4BACnB,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;4BACjC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;4BACjC,UAAU,CAAC,cAAc,CAAC;4BAC1B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;yBACzB;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IAElC,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc;QACzC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;QAClD,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,MAAM,GAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7F,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE9B,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4C,CAAC;IACpE,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAE3C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;YACrB,MAAM,GAAG,GAAa;gBACpB,GAAG;gBACH,mBAAmB,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC;gBACtE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;gBACnB,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpB,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;gBACxB,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;aAC1B,CAAC;YACF,IAAI,eAAe;gBAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO;oBACP,IAAI;oBACJ,MAAM;oBACN,SAAS,EAAE,gBAAgB;iBAC5B;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,WAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,OAAO;gBACL,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC7B,IAAI,CAAC,QAAQ,IAAI,GAAG;gBACpB,IAAI,CAAC,SAAS;gBACd,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC;gBAC3B,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC,CAAC;gBACnE,UAAU,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;gBACpC,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,KAAK,CAAC;aAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,YAAY,CAAC,cAAc;wBAClC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;wBAC9D,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;oBACxE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;oBACnE,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE,eAAe;iBACtB;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,6FAA6F;IAC7F,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAe,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAEtE,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc;YACjC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,cAAc,CAAC;YACpE,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc;YACpC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,cAAc,CAAC;YAChE,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,KAAK,EAAE,CAAC;YACV,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAE1C,qEAAqE;YACrE,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC;YAClF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC7C,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAEzF,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;gBACxD,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,KAAK,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;gBACxD,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,cAAc;YACrB,MAAM,EACJ,WAAW,CAAC,MAAM,GAAG,CAAC;gBACpB,CAAC,CAAC;oBACE;wBACE,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,YAAY,CAAC,cAAc;4BAClC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;4BACpD,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;wBAC7D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;wBAC3D,SAAS,EAAE,gBAAgB;wBAC3B,IAAI,EAAE,WAAW;qBAClB;iBACF;gBACH,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,YAAY,CAAC,cAAc;wBAClC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;wBACrD,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC7D,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;oBAC1D,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACtC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;wBAC9D,OAAO;4BACL,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;4BAC3C,6BAA6B,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC;4BAClF,MAAM;4BACN,CAAC,CAAC,GAAG,CAAC,MAAM;4BACZ,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;4BACvC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;yBAC3B,CAAC;oBACJ,CAAC,CAAC;iBACH;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,YAAY,CAAC,cAAc;wBAClC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;wBAC3C,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;oBACnD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;oBAClD,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACrC,MAAM,UAAU,GACd,CAAC,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW;4BACvC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;4BAChD,CAAC,CAAC,GAAG,CAAC;wBACV,MAAM,eAAe,GACnB,CAAC,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;4BAC7D,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;4BACrD,CAAC,CAAC,EAAE,CAAC;wBACT,MAAM,MAAM,GACV,eAAe,CAAC,MAAM,GAAG,CAAC;4BACxB,CAAC,CAAC,UAAU,KAAK,GAAG;gCAClB,CAAC,CAAC,eAAe;gCACjB,CAAC,CAAC,GAAG,UAAU,KAAK,eAAe,GAAG;4BACxC,CAAC,CAAC,UAAU,CAAC;wBACjB,OAAO;4BACL,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;4BAC3C,6BAA6B,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC;4BAClF,MAAM;4BACN,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;4BACvC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;yBAC3B,CAAC;oBACJ,CAAC,CAAC;iBACH;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,CAAC,+DAA+D,CAAC;iBACzE;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAmB;QAC/B,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC;QACD,QAAQ;KACT,CAAC;IAEF,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"quota-stats-format.js","sourceRoot":"","sources":["../../src/lib/quota-stats-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { RuntimeContextRoots } from "./config-file-utils.js";
|
|
|
3
3
|
import type { QuotaProviderResult } from "./entries.js";
|
|
4
4
|
import type { MaintainerAnnouncementsSummary } from "./maintainer-announcements.js";
|
|
5
5
|
import type { QuotaProviderDefinition } from "./quota-providers.js";
|
|
6
|
+
import { type ReportDocument } from "./report-document.js";
|
|
6
7
|
import type { CursorQuotaPlan, MaintainerAnnouncementsConfig, OpenCodeGoWindowKey, PricingSnapshotSource } from "./types.js";
|
|
7
8
|
/** Session token fetch error info for status report */
|
|
8
9
|
export interface SessionTokenError {
|
|
@@ -20,7 +21,7 @@ type ProviderAvailability = {
|
|
|
20
21
|
available: boolean;
|
|
21
22
|
matchesCurrentModel?: boolean;
|
|
22
23
|
};
|
|
23
|
-
|
|
24
|
+
type QuotaStatusReportParams = {
|
|
24
25
|
configSource: string;
|
|
25
26
|
configPaths: string[];
|
|
26
27
|
globalConfigPaths?: string[];
|
|
@@ -48,6 +49,8 @@ export declare function buildQuotaStatusReport(params: {
|
|
|
48
49
|
summary: MaintainerAnnouncementsSummary;
|
|
49
50
|
};
|
|
50
51
|
generatedAtMs?: number;
|
|
51
|
-
}
|
|
52
|
+
};
|
|
53
|
+
export declare function buildQuotaStatusReport(params: QuotaStatusReportParams): Promise<string>;
|
|
54
|
+
export declare function buildQuotaStatusReportDocument(params: QuotaStatusReportParams): Promise<ReportDocument>;
|
|
52
55
|
export {};
|
|
53
56
|
//# sourceMappingURL=quota-status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-status.d.ts","sourceRoot":"","sources":["../../src/lib/quota-status.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,wBAAwB,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAMlE,OAAO,KAAK,EAEV,mBAAmB,EAGpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAkBpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-status.d.ts","sourceRoot":"","sources":["../../src/lib/quota-status.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,wBAAwB,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAMlE,OAAO,KAAK,EAEV,mBAAmB,EAGpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAkBpF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,eAAe,EACf,6BAA6B,EAC7B,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAGpB,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AACF,KAAK,oBAAoB,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAojBF,KAAK,uBAAuB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC1C,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,YAAY,CAAC;IACvD,oBAAoB,EAAE,oBAAoB,EAAE,CAAC;IAC7C,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACpD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,uBAAuB,CAAC,EAAE;QACxB,MAAM,EAAE,6BAA6B,CAAC;QACtC,OAAO,EAAE,8BAA8B,CAAC;KACzC,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7F;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAyazB"}
|
package/dist/lib/quota-status.js
CHANGED
|
@@ -11,7 +11,7 @@ import { getOpenCodeDbStats } from "./opencode-storage.js";
|
|
|
11
11
|
import { getQuotaProviderDisplayLabel } from "./provider-metadata.js";
|
|
12
12
|
import { isMaintainedQuotaProviderTuning } from "./quota-providers.js";
|
|
13
13
|
import { aggregateUsage } from "./quota-stats.js";
|
|
14
|
-
import { renderPlainTextReport } from "./report-document.js";
|
|
14
|
+
import { commandHeading, renderPlainTextReport, } from "./report-document.js";
|
|
15
15
|
import { totalTokenBuckets } from "./token-buckets.js";
|
|
16
16
|
import { getPackageVersion } from "./version.js";
|
|
17
17
|
async function pathExists(path) {
|
|
@@ -476,6 +476,9 @@ function supportedProviderPricingRow(params) {
|
|
|
476
476
|
};
|
|
477
477
|
}
|
|
478
478
|
export async function buildQuotaStatusReport(params) {
|
|
479
|
+
return renderPlainTextReport(await buildQuotaStatusReportDocument(params));
|
|
480
|
+
}
|
|
481
|
+
export async function buildQuotaStatusReportDocument(params) {
|
|
479
482
|
const version = await getPackageVersion();
|
|
480
483
|
const v = version ?? "unknown";
|
|
481
484
|
const modelDisplay = params.currentModel
|
|
@@ -831,12 +834,13 @@ export async function buildQuotaStatusReport(params) {
|
|
|
831
834
|
}
|
|
832
835
|
}
|
|
833
836
|
sections.push(createKvSection("unknown_pricing", "unknown_pricing:", unknownRows));
|
|
834
|
-
return
|
|
835
|
-
heading: {
|
|
837
|
+
return {
|
|
838
|
+
heading: commandHeading({
|
|
836
839
|
title: `Quota Status (opencode-quota v${v}) (/quota_status)`,
|
|
840
|
+
detail: `opencode-quota v${v}`,
|
|
837
841
|
generatedAtMs: params.generatedAtMs,
|
|
838
|
-
},
|
|
842
|
+
}),
|
|
839
843
|
sections,
|
|
840
|
-
}
|
|
844
|
+
};
|
|
841
845
|
}
|
|
842
846
|
//# sourceMappingURL=quota-status.js.map
|