@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.
Files changed (84) hide show
  1. package/README.md +73 -131
  2. package/dist/data/modelsdev-pricing.min.json +12 -0
  3. package/dist/lib/config.d.ts +1 -1
  4. package/dist/lib/config.d.ts.map +1 -1
  5. package/dist/lib/config.js +9 -0
  6. package/dist/lib/config.js.map +1 -1
  7. package/dist/lib/copilot.d.ts.map +1 -1
  8. package/dist/lib/copilot.js +24 -1
  9. package/dist/lib/copilot.js.map +1 -1
  10. package/dist/lib/cursor-pricing.d.ts.map +1 -1
  11. package/dist/lib/cursor-pricing.js +3 -0
  12. package/dist/lib/cursor-pricing.js.map +1 -1
  13. package/dist/lib/format-utils.d.ts +0 -4
  14. package/dist/lib/format-utils.d.ts.map +1 -1
  15. package/dist/lib/format-utils.js +0 -3
  16. package/dist/lib/format-utils.js.map +1 -1
  17. package/dist/lib/format.d.ts.map +1 -1
  18. package/dist/lib/format.js +13 -0
  19. package/dist/lib/format.js.map +1 -1
  20. package/dist/lib/google-agy.js +1 -1
  21. package/dist/lib/init-installer.js +2 -2
  22. package/dist/lib/init-installer.js.map +1 -1
  23. package/dist/lib/markdown-table.d.ts +36 -0
  24. package/dist/lib/markdown-table.d.ts.map +1 -1
  25. package/dist/lib/markdown-table.js +56 -0
  26. package/dist/lib/markdown-table.js.map +1 -1
  27. package/dist/lib/opencode-auth.d.ts.map +1 -1
  28. package/dist/lib/opencode-auth.js +4 -3
  29. package/dist/lib/opencode-auth.js.map +1 -1
  30. package/dist/lib/quota-columns.d.ts +38 -0
  31. package/dist/lib/quota-columns.d.ts.map +1 -0
  32. package/dist/lib/quota-columns.js +129 -0
  33. package/dist/lib/quota-columns.js.map +1 -0
  34. package/dist/lib/quota-command-format.d.ts +11 -0
  35. package/dist/lib/quota-command-format.d.ts.map +1 -1
  36. package/dist/lib/quota-command-format.js +80 -27
  37. package/dist/lib/quota-command-format.js.map +1 -1
  38. package/dist/lib/quota-dialog-command-specs.d.ts +4 -0
  39. package/dist/lib/quota-dialog-command-specs.d.ts.map +1 -1
  40. package/dist/lib/quota-dialog-command-specs.js.map +1 -1
  41. package/dist/lib/quota-dialog-commands.d.ts +2 -0
  42. package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
  43. package/dist/lib/quota-dialog-commands.js +114 -101
  44. package/dist/lib/quota-dialog-commands.js.map +1 -1
  45. package/dist/lib/quota-providers-remote.d.ts.map +1 -1
  46. package/dist/lib/quota-providers-remote.js +8 -5
  47. package/dist/lib/quota-providers-remote.js.map +1 -1
  48. package/dist/lib/quota-report-message.d.ts +3 -2
  49. package/dist/lib/quota-report-message.d.ts.map +1 -1
  50. package/dist/lib/quota-report-message.js +7 -11
  51. package/dist/lib/quota-report-message.js.map +1 -1
  52. package/dist/lib/quota-retry-wait.d.ts +36 -0
  53. package/dist/lib/quota-retry-wait.d.ts.map +1 -0
  54. package/dist/lib/quota-retry-wait.js +67 -0
  55. package/dist/lib/quota-retry-wait.js.map +1 -0
  56. package/dist/lib/quota-stats-format.d.ts +8 -3
  57. package/dist/lib/quota-stats-format.d.ts.map +1 -1
  58. package/dist/lib/quota-stats-format.js +36 -37
  59. package/dist/lib/quota-stats-format.js.map +1 -1
  60. package/dist/lib/quota-status.d.ts +5 -2
  61. package/dist/lib/quota-status.d.ts.map +1 -1
  62. package/dist/lib/quota-status.js +9 -5
  63. package/dist/lib/quota-status.js.map +1 -1
  64. package/dist/lib/report-document.d.ts +56 -2
  65. package/dist/lib/report-document.d.ts.map +1 -1
  66. package/dist/lib/report-document.js +105 -24
  67. package/dist/lib/report-document.js.map +1 -1
  68. package/dist/lib/toast-format-grouped.d.ts.map +1 -1
  69. package/dist/lib/toast-format-grouped.js +8 -0
  70. package/dist/lib/toast-format-grouped.js.map +1 -1
  71. package/dist/lib/types.d.ts +5 -0
  72. package/dist/lib/types.d.ts.map +1 -1
  73. package/dist/lib/types.js +1 -0
  74. package/dist/lib/types.js.map +1 -1
  75. package/dist/plugin.d.ts.map +1 -1
  76. package/dist/plugin.js +18 -1
  77. package/dist/plugin.js.map +1 -1
  78. package/dist/providers/copilot.js +2 -2
  79. package/dist/tui-v2.d.ts.map +1 -1
  80. package/dist/tui-v2.jsx +149 -23
  81. package/dist/tui-v2.jsx.map +1 -1
  82. package/dist/tui.d.ts.map +1 -1
  83. package/dist/tui.js +370 -98
  84. 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;AAE5E,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;CACZ,CAAC;AAYF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;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,CAQjC"}
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" || typeof title !== "string" || typeof at !== "number") {
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":"AAOA,qGAAqG;AACrG,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAQzD;;;;;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,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,GAAG,kBAAkB,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,KAAK,gBAAgB,EAAE,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAChE,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,GAAG,KAAgC,CAAC;IAChE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACvF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAA+B,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjE,CAAC"}
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
- export declare function formatQuotaStatsReport(params: {
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 Sessions section (for session-only reports) */
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
- }): string;
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;AAiBvF,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;AAoIF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mGAAmG;IACnG,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,GAAG,MAAM,CAwUT"}
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
- headers: tableOptions.compactHeaders
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
- headers: tableOptions.compactHeaders
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
- headers: tableOptions.compactHeaders
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 headers = tableOptions.compactHeaders
241
- ? ["Source", "Model", "In", "Out", "C.Rd", "C.Wr"]
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
- headers.push(tableOptions.compactHeaders ? "Rsn" : "Reasoning");
248
+ compactLabels.push("Rsn");
249
+ fullLabels.push("Reasoning");
246
250
  aligns.push("right");
247
251
  }
248
- headers.push(tableOptions.compactHeaders ? "Tok" : "Total", "Cost");
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: "Models",
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 Tree",
329
+ title: "Session tree",
323
330
  blocks: [
324
331
  {
325
332
  kind: "table",
326
- headers: tableOptions.compactHeaders
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 Sessions for session-scoped reports (e.g., /tokens_session, /tokens_session_all).
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 Sessions",
373
+ title: "Top sessions",
369
374
  blocks: sessionRows.length > 0
370
375
  ? [
371
376
  {
372
377
  kind: "table",
373
- headers: tableOptions.compactHeaders
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: "Unpriced Models",
390
+ title: "Models with no token prices",
388
391
  blocks: [
389
392
  {
390
393
  kind: "table",
391
- headers: tableOptions.compactHeaders
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: "Unknown Pricing",
415
+ title: "Models without pricing",
415
416
  blocks: [
416
417
  {
417
418
  kind: "table",
418
- headers: tableOptions.compactHeaders
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
- const document = {
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":"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"}
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
- export declare function buildQuotaStatusReport(params: {
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
- }): Promise<string>;
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;AAKpE,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,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,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,GAAG,OAAO,CAAC,MAAM,CAAC,CAwalB"}
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"}
@@ -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 renderPlainTextReport({
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