@slkiser/opencode-quota 4.8.2 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/README.md +18 -18
  2. package/dist/bin/opencode-quota.d.ts.map +1 -1
  3. package/dist/bin/opencode-quota.js +5 -3
  4. package/dist/bin/opencode-quota.js.map +1 -1
  5. package/dist/lib/accounting-format.d.ts +54 -0
  6. package/dist/lib/accounting-format.d.ts.map +1 -0
  7. package/dist/lib/accounting-format.js +271 -0
  8. package/dist/lib/accounting-format.js.map +1 -0
  9. package/dist/lib/anthropic.d.ts +21 -2
  10. package/dist/lib/anthropic.d.ts.map +1 -1
  11. package/dist/lib/anthropic.js +141 -22
  12. package/dist/lib/anthropic.js.map +1 -1
  13. package/dist/lib/cli-show.d.ts.map +1 -1
  14. package/dist/lib/cli-show.js +7 -1
  15. package/dist/lib/cli-show.js.map +1 -1
  16. package/dist/lib/config.d.ts +10 -1
  17. package/dist/lib/config.d.ts.map +1 -1
  18. package/dist/lib/config.js +69 -3
  19. package/dist/lib/config.js.map +1 -1
  20. package/dist/lib/copilot.d.ts +2 -0
  21. package/dist/lib/copilot.d.ts.map +1 -1
  22. package/dist/lib/copilot.js +38 -0
  23. package/dist/lib/copilot.js.map +1 -1
  24. package/dist/lib/cursor-usage.d.ts +1 -0
  25. package/dist/lib/cursor-usage.d.ts.map +1 -1
  26. package/dist/lib/cursor-usage.js +1 -0
  27. package/dist/lib/cursor-usage.js.map +1 -1
  28. package/dist/lib/deepseek.d.ts +12 -12
  29. package/dist/lib/deepseek.d.ts.map +1 -1
  30. package/dist/lib/deepseek.js +33 -29
  31. package/dist/lib/deepseek.js.map +1 -1
  32. package/dist/lib/display-sanitize.d.ts.map +1 -1
  33. package/dist/lib/display-sanitize.js +75 -22
  34. package/dist/lib/display-sanitize.js.map +1 -1
  35. package/dist/lib/entries.d.ts +122 -23
  36. package/dist/lib/entries.d.ts.map +1 -1
  37. package/dist/lib/entries.js +41 -1
  38. package/dist/lib/entries.js.map +1 -1
  39. package/dist/lib/format-utils.d.ts +11 -8
  40. package/dist/lib/format-utils.d.ts.map +1 -1
  41. package/dist/lib/format-utils.js +47 -6
  42. package/dist/lib/format-utils.js.map +1 -1
  43. package/dist/lib/format.d.ts +4 -0
  44. package/dist/lib/format.d.ts.map +1 -1
  45. package/dist/lib/format.js +144 -42
  46. package/dist/lib/format.js.map +1 -1
  47. package/dist/lib/glm-coding-plan.d.ts.map +1 -1
  48. package/dist/lib/glm-coding-plan.js +12 -3
  49. package/dist/lib/glm-coding-plan.js.map +1 -1
  50. package/dist/lib/google-agy.d.ts +2 -0
  51. package/dist/lib/google-agy.d.ts.map +1 -1
  52. package/dist/lib/google-agy.js +29 -14
  53. package/dist/lib/google-agy.js.map +1 -1
  54. package/dist/lib/google-gemini-cli.d.ts +2 -0
  55. package/dist/lib/google-gemini-cli.d.ts.map +1 -1
  56. package/dist/lib/google-gemini-cli.js +29 -3
  57. package/dist/lib/google-gemini-cli.js.map +1 -1
  58. package/dist/lib/google-token-cache.d.ts +5 -8
  59. package/dist/lib/google-token-cache.d.ts.map +1 -1
  60. package/dist/lib/google-token-cache.js +30 -118
  61. package/dist/lib/google-token-cache.js.map +1 -1
  62. package/dist/lib/google.d.ts +2 -0
  63. package/dist/lib/google.d.ts.map +1 -1
  64. package/dist/lib/google.js +31 -6
  65. package/dist/lib/google.js.map +1 -1
  66. package/dist/lib/grouped-entry-normalization.d.ts.map +1 -1
  67. package/dist/lib/grouped-entry-normalization.js +53 -20
  68. package/dist/lib/grouped-entry-normalization.js.map +1 -1
  69. package/dist/lib/minimax-auth.d.ts +1 -1
  70. package/dist/lib/minimax-auth.js +1 -1
  71. package/dist/lib/nanogpt.d.ts +5 -5
  72. package/dist/lib/nanogpt.d.ts.map +1 -1
  73. package/dist/lib/nanogpt.js +59 -23
  74. package/dist/lib/nanogpt.js.map +1 -1
  75. package/dist/lib/ollama-cloud.d.ts +2 -2
  76. package/dist/lib/ollama-cloud.d.ts.map +1 -1
  77. package/dist/lib/ollama-cloud.js +3 -45
  78. package/dist/lib/ollama-cloud.js.map +1 -1
  79. package/dist/lib/openai.d.ts +6 -0
  80. package/dist/lib/openai.d.ts.map +1 -1
  81. package/dist/lib/openai.js +51 -16
  82. package/dist/lib/openai.js.map +1 -1
  83. package/dist/lib/opencode-go-auth.js +1 -1
  84. package/dist/lib/opencode-go-auth.js.map +1 -1
  85. package/dist/lib/opencode-go.d.ts.map +1 -1
  86. package/dist/lib/opencode-go.js +28 -3
  87. package/dist/lib/opencode-go.js.map +1 -1
  88. package/dist/lib/opencode-zen-config.d.ts +0 -1
  89. package/dist/lib/opencode-zen-config.d.ts.map +1 -1
  90. package/dist/lib/opencode-zen-config.js +0 -22
  91. package/dist/lib/opencode-zen-config.js.map +1 -1
  92. package/dist/lib/opencode-zen.d.ts +3 -0
  93. package/dist/lib/opencode-zen.d.ts.map +1 -1
  94. package/dist/lib/opencode-zen.js +18 -1
  95. package/dist/lib/opencode-zen.js.map +1 -1
  96. package/dist/lib/openrouter.d.ts +2 -0
  97. package/dist/lib/openrouter.d.ts.map +1 -1
  98. package/dist/lib/openrouter.js +10 -0
  99. package/dist/lib/openrouter.js.map +1 -1
  100. package/dist/lib/provider-metadata.d.ts +2 -307
  101. package/dist/lib/provider-metadata.d.ts.map +1 -1
  102. package/dist/lib/provider-metadata.js +14 -316
  103. package/dist/lib/provider-metadata.js.map +1 -1
  104. package/dist/lib/provider-registration.d.ts +325 -0
  105. package/dist/lib/provider-registration.d.ts.map +1 -0
  106. package/dist/lib/provider-registration.js +338 -0
  107. package/dist/lib/provider-registration.js.map +1 -0
  108. package/dist/lib/quota-accounting-projection.d.ts +9 -0
  109. package/dist/lib/quota-accounting-projection.d.ts.map +1 -0
  110. package/dist/lib/quota-accounting-projection.js +254 -0
  111. package/dist/lib/quota-accounting-projection.js.map +1 -0
  112. package/dist/lib/quota-command-format.d.ts +5 -2
  113. package/dist/lib/quota-command-format.d.ts.map +1 -1
  114. package/dist/lib/quota-command-format.js +66 -44
  115. package/dist/lib/quota-command-format.js.map +1 -1
  116. package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
  117. package/dist/lib/quota-dialog-commands.js +3 -0
  118. package/dist/lib/quota-dialog-commands.js.map +1 -1
  119. package/dist/lib/quota-exhaustion-projection.d.ts +11 -0
  120. package/dist/lib/quota-exhaustion-projection.d.ts.map +1 -0
  121. package/dist/lib/quota-exhaustion-projection.js +105 -0
  122. package/dist/lib/quota-exhaustion-projection.js.map +1 -0
  123. package/dist/lib/quota-export.d.ts +2 -1
  124. package/dist/lib/quota-export.d.ts.map +1 -1
  125. package/dist/lib/quota-export.js +36 -10
  126. package/dist/lib/quota-export.js.map +1 -1
  127. package/dist/lib/quota-providers-local.d.ts.map +1 -1
  128. package/dist/lib/quota-providers-local.js +14 -0
  129. package/dist/lib/quota-providers-local.js.map +1 -1
  130. package/dist/lib/quota-providers-remote.d.ts.map +1 -1
  131. package/dist/lib/quota-providers-remote.js +6 -2
  132. package/dist/lib/quota-providers-remote.js.map +1 -1
  133. package/dist/lib/quota-render-data.d.ts +0 -1
  134. package/dist/lib/quota-render-data.d.ts.map +1 -1
  135. package/dist/lib/quota-render-data.js +13 -138
  136. package/dist/lib/quota-render-data.js.map +1 -1
  137. package/dist/lib/quota-reset-notifications.d.ts.map +1 -1
  138. package/dist/lib/quota-reset-notifications.js +3 -0
  139. package/dist/lib/quota-reset-notifications.js.map +1 -1
  140. package/dist/lib/quota-state-codec.d.ts +16 -0
  141. package/dist/lib/quota-state-codec.d.ts.map +1 -0
  142. package/dist/lib/quota-state-codec.js +412 -0
  143. package/dist/lib/quota-state-codec.js.map +1 -0
  144. package/dist/lib/quota-state.d.ts +2 -11
  145. package/dist/lib/quota-state.d.ts.map +1 -1
  146. package/dist/lib/quota-state.js +165 -305
  147. package/dist/lib/quota-state.js.map +1 -1
  148. package/dist/lib/quota-status.d.ts.map +1 -1
  149. package/dist/lib/quota-status.js +15 -7
  150. package/dist/lib/quota-status.js.map +1 -1
  151. package/dist/lib/quota-telemetry.d.ts.map +1 -1
  152. package/dist/lib/quota-telemetry.js +7 -3
  153. package/dist/lib/quota-telemetry.js.map +1 -1
  154. package/dist/lib/quota-toast-runtime.d.ts +60 -0
  155. package/dist/lib/quota-toast-runtime.d.ts.map +1 -0
  156. package/dist/lib/quota-toast-runtime.js +774 -0
  157. package/dist/lib/quota-toast-runtime.js.map +1 -0
  158. package/dist/lib/qwen-local-quota.d.ts +2 -0
  159. package/dist/lib/qwen-local-quota.d.ts.map +1 -1
  160. package/dist/lib/qwen-local-quota.js +17 -1
  161. package/dist/lib/qwen-local-quota.js.map +1 -1
  162. package/dist/lib/resolved-auth-identity.d.ts +36 -0
  163. package/dist/lib/resolved-auth-identity.d.ts.map +1 -0
  164. package/dist/lib/resolved-auth-identity.js +193 -0
  165. package/dist/lib/resolved-auth-identity.js.map +1 -0
  166. package/dist/lib/scoped-update-migration.d.ts +101 -0
  167. package/dist/lib/scoped-update-migration.d.ts.map +1 -0
  168. package/dist/lib/scoped-update-migration.js +348 -0
  169. package/dist/lib/scoped-update-migration.js.map +1 -0
  170. package/dist/lib/scoped-update.d.ts +8 -0
  171. package/dist/lib/scoped-update.d.ts.map +1 -1
  172. package/dist/lib/scoped-update.js +263 -50
  173. package/dist/lib/scoped-update.js.map +1 -1
  174. package/dist/lib/toast-format-grouped.d.ts +4 -0
  175. package/dist/lib/toast-format-grouped.d.ts.map +1 -1
  176. package/dist/lib/toast-format-grouped.js +140 -39
  177. package/dist/lib/toast-format-grouped.js.map +1 -1
  178. package/dist/lib/tui-compact-format.d.ts +2 -0
  179. package/dist/lib/tui-compact-format.d.ts.map +1 -1
  180. package/dist/lib/tui-compact-format.js +224 -31
  181. package/dist/lib/tui-compact-format.js.map +1 -1
  182. package/dist/lib/tui-panel-state.d.ts +6 -0
  183. package/dist/lib/tui-panel-state.d.ts.map +1 -1
  184. package/dist/lib/tui-panel-state.js.map +1 -1
  185. package/dist/lib/tui-runtime.d.ts.map +1 -1
  186. package/dist/lib/tui-runtime.js +109 -10
  187. package/dist/lib/tui-runtime.js.map +1 -1
  188. package/dist/lib/tui-sidebar-format.d.ts +1 -1
  189. package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
  190. package/dist/lib/tui-sidebar-format.js +4 -0
  191. package/dist/lib/tui-sidebar-format.js.map +1 -1
  192. package/dist/lib/types.d.ts +21 -13
  193. package/dist/lib/types.d.ts.map +1 -1
  194. package/dist/lib/types.js +2 -0
  195. package/dist/lib/types.js.map +1 -1
  196. package/dist/lib/xai.d.ts +4 -0
  197. package/dist/lib/xai.d.ts.map +1 -1
  198. package/dist/lib/xai.js +29 -3
  199. package/dist/lib/xai.js.map +1 -1
  200. package/dist/plugin.d.ts.map +1 -1
  201. package/dist/plugin.js +27 -720
  202. package/dist/plugin.js.map +1 -1
  203. package/dist/providers/accounting-decimal.d.ts +2 -0
  204. package/dist/providers/accounting-decimal.d.ts.map +1 -0
  205. package/dist/providers/accounting-decimal.js +23 -0
  206. package/dist/providers/accounting-decimal.js.map +1 -0
  207. package/dist/providers/anthropic.d.ts.map +1 -1
  208. package/dist/providers/anthropic.js +36 -0
  209. package/dist/providers/anthropic.js.map +1 -1
  210. package/dist/providers/cache-policies.d.ts +64 -0
  211. package/dist/providers/cache-policies.d.ts.map +1 -0
  212. package/dist/providers/cache-policies.js +197 -0
  213. package/dist/providers/cache-policies.js.map +1 -0
  214. package/dist/providers/cursor.d.ts.map +1 -1
  215. package/dist/providers/cursor.js +85 -58
  216. package/dist/providers/cursor.js.map +1 -1
  217. package/dist/providers/deepseek.d.ts +2 -2
  218. package/dist/providers/deepseek.d.ts.map +1 -1
  219. package/dist/providers/deepseek.js +64 -33
  220. package/dist/providers/deepseek.js.map +1 -1
  221. package/dist/providers/google-agy.js +2 -2
  222. package/dist/providers/google-agy.js.map +1 -1
  223. package/dist/providers/kilo.d.ts.map +1 -1
  224. package/dist/providers/kilo.js +56 -29
  225. package/dist/providers/kilo.js.map +1 -1
  226. package/dist/providers/mimo.d.ts.map +1 -1
  227. package/dist/providers/mimo.js +37 -15
  228. package/dist/providers/mimo.js.map +1 -1
  229. package/dist/providers/minimax-coding-plan.d.ts +8 -7
  230. package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
  231. package/dist/providers/minimax-coding-plan.js +97 -83
  232. package/dist/providers/minimax-coding-plan.js.map +1 -1
  233. package/dist/providers/nanogpt.d.ts.map +1 -1
  234. package/dist/providers/nanogpt.js +72 -51
  235. package/dist/providers/nanogpt.js.map +1 -1
  236. package/dist/providers/ollama-cloud.d.ts +1 -2
  237. package/dist/providers/ollama-cloud.d.ts.map +1 -1
  238. package/dist/providers/ollama-cloud.js +1 -20
  239. package/dist/providers/ollama-cloud.js.map +1 -1
  240. package/dist/providers/openai.d.ts.map +1 -1
  241. package/dist/providers/openai.js +0 -3
  242. package/dist/providers/openai.js.map +1 -1
  243. package/dist/providers/opencode-go.d.ts +1 -0
  244. package/dist/providers/opencode-go.d.ts.map +1 -1
  245. package/dist/providers/opencode-go.js +32 -5
  246. package/dist/providers/opencode-go.js.map +1 -1
  247. package/dist/providers/opencode-zen.d.ts.map +1 -1
  248. package/dist/providers/opencode-zen.js +78 -17
  249. package/dist/providers/opencode-zen.js.map +1 -1
  250. package/dist/providers/quota-providers.d.ts.map +1 -1
  251. package/dist/providers/quota-providers.js +31 -23
  252. package/dist/providers/quota-providers.js.map +1 -1
  253. package/dist/providers/qwen-code.d.ts.map +1 -1
  254. package/dist/providers/qwen-code.js +1 -0
  255. package/dist/providers/qwen-code.js.map +1 -1
  256. package/dist/providers/registry.d.ts +3 -2
  257. package/dist/providers/registry.d.ts.map +1 -1
  258. package/dist/providers/registry.js +41 -31
  259. package/dist/providers/registry.js.map +1 -1
  260. package/dist/providers/result-helpers.d.ts +12 -6
  261. package/dist/providers/result-helpers.d.ts.map +1 -1
  262. package/dist/providers/result-helpers.js +4 -3
  263. package/dist/providers/result-helpers.js.map +1 -1
  264. package/dist/providers/xai.d.ts.map +1 -1
  265. package/dist/providers/xai.js +3 -0
  266. package/dist/providers/xai.js.map +1 -1
  267. package/dist/tui.d.ts.map +1 -1
  268. package/dist/tui.js +24 -11
  269. package/dist/tui.tsx +39 -10
  270. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-usage.js","sourceRoot":"","sources":["../../src/lib/cursor-usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-usage.js","sourceRoot":"","sources":["../../src/lib/cursor-usage.ts"],"names":[],"mappings":"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"}
@@ -6,28 +6,28 @@
6
6
  */
7
7
  import type { QuotaError } from "./types.js";
8
8
  export type DeepSeekCurrency = "CNY" | "USD";
9
+ export type DeepSeekBalanceField = "total_balance" | "granted_balance" | "topped_up_balance";
9
10
  export interface DeepSeekBalanceInfo {
10
11
  currency: DeepSeekCurrency;
11
- totalBalance: string;
12
- grantedBalance: string;
13
- toppedUpBalance: string;
12
+ totalBalance?: string;
13
+ grantedBalance?: string;
14
+ toppedUpBalance?: string;
15
+ }
16
+ export interface DeepSeekBalanceParseIssue {
17
+ currency: DeepSeekCurrency;
18
+ field: DeepSeekBalanceField;
14
19
  }
15
20
  export interface DeepSeekBalanceResult {
16
- isAvailable: boolean;
21
+ isAvailable: boolean | undefined;
17
22
  balanceInfos: DeepSeekBalanceInfo[];
23
+ parseIssues: DeepSeekBalanceParseIssue[];
18
24
  }
19
25
  export type DeepSeekResult = {
20
26
  success: true;
21
- isAvailable: boolean;
27
+ isAvailable: boolean | undefined;
22
28
  balanceInfos: DeepSeekBalanceInfo[];
29
+ parseIssues: DeepSeekBalanceParseIssue[];
23
30
  } | QuotaError | null;
24
- /**
25
- * Format a balance value with the appropriate currency symbol.
26
- */
27
- export declare function formatDeepSeekBalanceValue(balance: {
28
- currency: DeepSeekCurrency;
29
- totalBalance: string;
30
- }): string;
31
31
  /**
32
32
  * Query DeepSeek balance from the API.
33
33
  *
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek.d.ts","sourceRoot":"","sources":["../../src/lib/deepseek.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,mBAAmB,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,cAAc,GACtB;IACE,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,mBAAmB,EAAE,CAAC;CACrC,GACD,UAAU,GACV,IAAI,CAAC;AA8FT;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAGT;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,cAAc,CAAC,CAezB;AAED,OAAO,EACL,KAAK,iBAAiB,EACtB,yBAAyB,EACzB,iBAAiB,IAAI,2BAA2B,GACjD,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"deepseek.d.ts","sourceRoot":"","sources":["../../src/lib/deepseek.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,CAAC;AAC7C,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAE7F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,cAAc,GACtB;IACE,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC1C,GACD,UAAU,GACV,IAAI,CAAC;AAsGT;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,cAAc,CAAC,CAgBzB;AAED,OAAO,EACL,KAAK,iBAAiB,EACtB,yBAAyB,EACzB,iBAAiB,IAAI,2BAA2B,GACjD,MAAM,oBAAoB,CAAC"}
@@ -4,52 +4,62 @@
4
4
  * Queries: GET https://api.deepseek.com/user/balance
5
5
  * Auth: Bearer token in Authorization header.
6
6
  */
7
- import { resolveDeepSeekApiKey, } from "./deepseek-auth.js";
7
+ import { isCanonicalAccountingDecimal } from "./accounting-format.js";
8
+ import { resolveDeepSeekApiKey } from "./deepseek-auth.js";
8
9
  import { sanitizeDisplaySnippet, sanitizeDisplayText } from "./display-sanitize.js";
9
10
  import { fetchWithTimeout } from "./http.js";
10
11
  const DEEPSEEK_BALANCE_URL = "https://api.deepseek.com/user/balance";
11
12
  const USER_AGENT = "OpenCode-Quota-Toast/1.0";
12
- const CURRENCY_SYMBOLS = {
13
- CNY: "\u00A5", // ¥
14
- USD: "$",
15
- };
13
+ const MAX_PARSE_ISSUES = 6;
16
14
  function isRecord(value) {
17
15
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
18
16
  }
19
17
  function getNonEmptyString(value) {
20
18
  return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
21
19
  }
22
- const DEEPSEEK_DECIMAL_BALANCE_RE = /^(?:0|[1-9]\d*)(?:\.\d{1,18})?$/u;
23
- function normalizeDeepSeekBalance(value) {
24
- const raw = getNonEmptyString(value);
25
- if (!raw || raw.length > 64 || !DEEPSEEK_DECIMAL_BALANCE_RE.test(raw)) {
26
- return "0.00";
27
- }
28
- return raw;
20
+ function parseDeepSeekBalanceDecimal(value) {
21
+ return typeof value === "string" && isCanonicalAccountingDecimal(value) ? value : undefined;
29
22
  }
30
23
  function parseDeepSeekBalance(payload) {
31
24
  if (!isRecord(payload)) {
32
25
  throw new Error("DeepSeek balance response returned an unexpected response shape");
33
26
  }
34
- const isAvailable = typeof payload.is_available === "boolean" ? payload.is_available : false;
27
+ const isAvailable = typeof payload.is_available === "boolean" ? payload.is_available : undefined;
35
28
  const balanceInfos = [];
29
+ const parseIssues = [];
36
30
  const rawInfos = payload.balance_infos;
37
31
  if (Array.isArray(rawInfos)) {
38
32
  for (const info of rawInfos) {
39
33
  if (!isRecord(info))
40
34
  continue;
41
- const currency = getNonEmptyString(info.currency);
42
- if (!currency || !["CNY", "USD"].includes(currency.toUpperCase()))
35
+ const rawCurrency = getNonEmptyString(info.currency);
36
+ if (!rawCurrency || !["CNY", "USD"].includes(rawCurrency.toUpperCase()))
43
37
  continue;
44
- balanceInfos.push({
45
- currency: currency.toUpperCase(),
46
- totalBalance: normalizeDeepSeekBalance(info.total_balance),
47
- grantedBalance: normalizeDeepSeekBalance(info.granted_balance),
48
- toppedUpBalance: normalizeDeepSeekBalance(info.topped_up_balance),
49
- });
38
+ const currency = rawCurrency.toUpperCase();
39
+ const parsed = { currency };
40
+ const fields = [
41
+ ["total_balance", "totalBalance"],
42
+ ["granted_balance", "grantedBalance"],
43
+ ["topped_up_balance", "toppedUpBalance"],
44
+ ];
45
+ for (const [sourceField, targetField] of fields) {
46
+ const rawValue = info[sourceField];
47
+ const decimal = parseDeepSeekBalanceDecimal(rawValue);
48
+ if (decimal !== undefined) {
49
+ parsed[targetField] = decimal;
50
+ }
51
+ else if (rawValue !== undefined && parseIssues.length < MAX_PARSE_ISSUES) {
52
+ parseIssues.push({ currency, field: sourceField });
53
+ }
54
+ }
55
+ if (parsed.totalBalance !== undefined ||
56
+ parsed.grantedBalance !== undefined ||
57
+ parsed.toppedUpBalance !== undefined) {
58
+ balanceInfos.push(parsed);
59
+ }
50
60
  }
51
61
  }
52
- return { isAvailable, balanceInfos };
62
+ return { isAvailable, balanceInfos, parseIssues };
53
63
  }
54
64
  async function fetchDeepSeekBalance(apiKey, requestTimeoutMs) {
55
65
  try {
@@ -84,13 +94,6 @@ async function fetchDeepSeekBalance(apiKey, requestTimeoutMs) {
84
94
  };
85
95
  }
86
96
  }
87
- /**
88
- * Format a balance value with the appropriate currency symbol.
89
- */
90
- export function formatDeepSeekBalanceValue(balance) {
91
- const symbol = CURRENCY_SYMBOLS[balance.currency] ?? balance.currency;
92
- return `${symbol}${balance.totalBalance}`;
93
- }
94
97
  /**
95
98
  * Query DeepSeek balance from the API.
96
99
  *
@@ -108,6 +111,7 @@ export async function queryDeepSeekBalance(options = {}) {
108
111
  success: true,
109
112
  isAvailable: result.data.isAvailable,
110
113
  balanceInfos: result.data.balanceInfos,
114
+ parseIssues: result.data.parseIssues,
111
115
  };
112
116
  }
113
117
  export { getDeepSeekKeyDiagnostics, hasDeepSeekApiKey as hasDeepSeekApiKeyConfigured, } from "./deepseek-auth.js";
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../src/lib/deepseek.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../src/lib/deepseek.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"display-sanitize.d.ts","sourceRoot":"","sources":["../../src/lib/display-sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAU9D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAuB/E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAM/E;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAiC5F;AAED,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAUjG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAM9E"}
1
+ {"version":3,"file":"display-sanitize.d.ts","sourceRoot":"","sources":["../../src/lib/display-sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAIV,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAUtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAU9D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9E;AAqCD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAmB/E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAO/E;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAqD5F;AAED,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,SAAS,CAUjG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAM9E"}
@@ -5,7 +5,7 @@
5
5
  * remote/provider error text cannot inject terminal control codes into
6
6
  * toasts or transcript output.
7
7
  */
8
- import { isValueEntry } from "./entries.js";
8
+ import { cloneAccountingBasisFact, cloneAccountingQuantity, cloneAccountingSemantic, cloneQuotaToastEntry, isPercentEntry, isQuantityEntry, isValueEntry, } from "./entries.js";
9
9
  // Remove terminal escape sequences (CSI/OSC/DCS/APC/PM/SOS) and other control
10
10
  // characters except newline/tab so provider text cannot inject terminal actions.
11
11
  // eslint-disable-next-line no-control-regex
@@ -27,33 +27,70 @@ export function sanitizeSingleLineDisplaySnippet(text, maxLength) {
27
27
  export function sanitizeOptionalDisplayText(value) {
28
28
  return typeof value === "string" ? sanitizeDisplayText(value) : undefined;
29
29
  }
30
- export function sanitizeQuotaToastEntry(entry) {
31
- if (isValueEntry(entry)) {
32
- return {
33
- ...entry,
34
- accounting: { ...entry.accounting },
35
- name: sanitizeDisplayText(entry.name),
36
- value: sanitizeDisplayText(entry.value),
37
- group: sanitizeOptionalDisplayText(entry.group),
38
- label: sanitizeOptionalDisplayText(entry.label),
39
- right: sanitizeOptionalDisplayText(entry.right),
40
- resetTimeIso: sanitizeOptionalDisplayText(entry.resetTimeIso),
41
- };
42
- }
30
+ function sanitizeAccountingQuantity(quantity) {
31
+ if (quantity.unit.kind !== "custom")
32
+ return cloneAccountingQuantity(quantity);
33
+ return {
34
+ decimal: quantity.decimal,
35
+ unit: {
36
+ kind: "custom",
37
+ symbol: sanitizeSingleLineDisplayText(quantity.unit.symbol),
38
+ },
39
+ };
40
+ }
41
+ function sanitizeAccountingSemantic(semantic) {
42
+ const cloned = cloneAccountingSemantic(semantic);
43
+ if (cloned.metric.kind !== "named")
44
+ return cloned;
43
45
  return {
44
- ...entry,
45
- accounting: { ...entry.accounting },
46
- name: sanitizeDisplayText(entry.name),
47
- group: sanitizeOptionalDisplayText(entry.group),
48
- label: sanitizeOptionalDisplayText(entry.label),
49
- right: sanitizeOptionalDisplayText(entry.right),
50
- resetTimeIso: sanitizeOptionalDisplayText(entry.resetTimeIso),
46
+ ...cloned,
47
+ metric: {
48
+ kind: "named",
49
+ name: sanitizeSingleLineDisplayText(cloned.metric.name),
50
+ },
51
51
  };
52
52
  }
53
+ function sanitizeAccountingBasis(basis) {
54
+ const sanitizeFact = (fact) => ({
55
+ ...cloneAccountingBasisFact(fact),
56
+ quantity: sanitizeAccountingQuantity(fact.quantity),
57
+ });
58
+ return {
59
+ ...(basis.used ? { used: sanitizeFact(basis.used) } : {}),
60
+ ...(basis.limit ? { limit: sanitizeFact(basis.limit) } : {}),
61
+ ...(basis.remaining ? { remaining: sanitizeFact(basis.remaining) } : {}),
62
+ };
63
+ }
64
+ export function sanitizeQuotaToastEntry(entry) {
65
+ const sanitized = cloneQuotaToastEntry(entry);
66
+ sanitized.name = sanitizeDisplayText(entry.name);
67
+ if (entry.group !== undefined)
68
+ sanitized.group = sanitizeDisplayText(entry.group);
69
+ if (entry.label !== undefined)
70
+ sanitized.label = sanitizeDisplayText(entry.label);
71
+ if (entry.metricLabel !== undefined) {
72
+ sanitized.metricLabel = sanitizeDisplayText(entry.metricLabel);
73
+ }
74
+ if (entry.right !== undefined)
75
+ sanitized.right = sanitizeDisplayText(entry.right);
76
+ if (entry.semantic)
77
+ sanitized.semantic = sanitizeAccountingSemantic(entry.semantic);
78
+ if (isValueEntry(sanitized)) {
79
+ sanitized.value = sanitizeDisplayText(sanitized.value);
80
+ }
81
+ else if (isQuantityEntry(sanitized)) {
82
+ sanitized.quantity = sanitizeAccountingQuantity(sanitized.quantity);
83
+ }
84
+ else if (isPercentEntry(sanitized) && sanitized.basis) {
85
+ sanitized.basis = sanitizeAccountingBasis(sanitized.basis);
86
+ }
87
+ return sanitized;
88
+ }
53
89
  export function sanitizeQuotaToastError(error) {
54
90
  return {
55
91
  label: sanitizeDisplayText(error.label),
56
92
  message: sanitizeDisplayText(error.message),
93
+ ...(error.retryable === true ? { retryable: true } : {}),
57
94
  ...(error.kind ? { kind: error.kind } : {}),
58
95
  };
59
96
  }
@@ -88,7 +125,23 @@ export function sanitizeQuotaProviderResult(result) {
88
125
  })),
89
126
  }
90
127
  : {}),
91
- ...(result.presentation ? { presentation: { ...result.presentation } } : {}),
128
+ ...(result.presentation
129
+ ? {
130
+ presentation: {
131
+ ...result.presentation,
132
+ ...(result.presentation.singleWindowDisplayName !== undefined
133
+ ? {
134
+ singleWindowDisplayName: sanitizeDisplayText(result.presentation.singleWindowDisplayName),
135
+ }
136
+ : {}),
137
+ ...(result.presentation.redundantQuotaFamily !== undefined
138
+ ? {
139
+ redundantQuotaFamily: sanitizeDisplayText(result.presentation.redundantQuotaFamily),
140
+ }
141
+ : {}),
142
+ },
143
+ }
144
+ : {}),
92
145
  };
93
146
  }
94
147
  export function sanitizeSessionTokensData(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"display-sanitize.js","sourceRoot":"","sources":["../../src/lib/display-sanitize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display-sanitize.js","sourceRoot":"","sources":["../../src/lib/display-sanitize.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { QuotaProviderDefinition } from "./quota-providers.js";
2
2
  import type { QuotaTelemetryToken } from "./quota-telemetry.js";
3
+ import type { ResolvedAuthIdentity } from "./resolved-auth-identity.js";
3
4
  import type { RuntimeProviderIdResolver } from "./runtime-provider-ids.js";
4
5
  import type { CursorQuotaPlan, OpenCodeGoWindowKey } from "./types.js";
5
6
  /**
@@ -12,6 +13,50 @@ export type AccountingResultType = "quota" | "rate_limit" | "usage" | "spend" |
12
13
  export type AccountingAcquisitionMethod = "remote_api" | "dashboard_scrape" | "local_cli" | "local_runtime_accounting" | "local_estimation";
13
14
  export type AccountingOwnership = "maintained" | "user_configured";
14
15
  export type AccountingAuthority = "provider_reported" | "locally_derived";
16
+ export type AccountingProminence = "primary" | "supplementary";
17
+ export type AccountingWindow = "rpm" | "hour" | "five_hour" | "day" | "week" | "month" | "year" | "mcp" | "code_review";
18
+ export type AccountingComponent = "current_balance" | "total_balance" | "cash_balance" | "gift_balance" | "granted_balance" | "topped_up_balance" | "remaining_credits" | "auto_reload" | "auto_reload_amount" | "auto_reload_trigger";
19
+ export type AccountingMetric = {
20
+ kind: "aggregate";
21
+ } | {
22
+ kind: "window";
23
+ window: AccountingWindow;
24
+ } | {
25
+ kind: "component";
26
+ component: AccountingComponent;
27
+ } | {
28
+ kind: "named";
29
+ name: string;
30
+ };
31
+ export interface AccountingSemantic {
32
+ metric: AccountingMetric;
33
+ prominence: AccountingProminence;
34
+ }
35
+ export type AccountingCountUnit = "request" | "token" | "credit" | "message" | "interaction" | "unit";
36
+ export type AccountingUnit = {
37
+ kind: "currency";
38
+ code: string;
39
+ } | {
40
+ kind: "count";
41
+ unit: AccountingCountUnit;
42
+ } | {
43
+ kind: "custom";
44
+ symbol: string;
45
+ };
46
+ export interface AccountingQuantity {
47
+ decimal: string;
48
+ unit: AccountingUnit;
49
+ }
50
+ export type AccountingFactAuthority = AccountingAuthority | "user_configured";
51
+ export interface AccountingBasisFact {
52
+ quantity: AccountingQuantity;
53
+ authority: AccountingFactAuthority;
54
+ }
55
+ export interface AccountingPercentageBasis {
56
+ used?: AccountingBasisFact;
57
+ limit?: AccountingBasisFact;
58
+ remaining?: AccountingBasisFact;
59
+ }
15
60
  export interface AccountingMetadata {
16
61
  /** What the row represents, independent of its percent/value render shape. */
17
62
  resultType: AccountingResultType;
@@ -26,6 +71,19 @@ export interface AccountingMetadata {
26
71
  /** Source observation time only; never application fetch or cache time. */
27
72
  observedAtIso?: string;
28
73
  }
74
+ export interface FixedWindowProjectionEvidence {
75
+ kind: "fixed_window";
76
+ startedAtIso: string;
77
+ observedAtIso: string;
78
+ endsAtIso: string;
79
+ fullReset: true;
80
+ }
81
+ export type QuotaRunwayProjection = {
82
+ kind: "before_reset";
83
+ projectedAtIso: string;
84
+ } | {
85
+ kind: "lasts_past_reset";
86
+ };
29
87
  export interface GroupedQuotaEntryMeta {
30
88
  /** Required provider-neutral accounting semantics for this row. */
31
89
  accounting: AccountingMetadata;
@@ -33,45 +91,68 @@ export interface GroupedQuotaEntryMeta {
33
91
  group?: string;
34
92
  /** Optional row label inside the group, e.g. "5h:" or "Usage:". */
35
93
  label?: string;
36
- /** Optional semantic label for verbose command output when it differs from resultType. */
94
+ /** Optional legacy label for verbose command output when it differs from resultType. */
37
95
  metricLabel?: string;
38
- /** Optional compact right-hand summary, e.g. "42/300". */
96
+ /** Complete provider-neutral row semantics. Rich providers require this on every row. */
97
+ semantic?: AccountingSemantic;
98
+ /** Optional compact right-hand summary for legacy and configured providers only. */
39
99
  right?: string;
40
100
  /** Optional stable row priority within a group; lower values render first. */
41
101
  sortPriority?: number;
42
102
  }
43
- export type QuotaToastEntry = (GroupedQuotaEntryMeta & {
44
- /**
45
- * Percent-based entry (default).
46
- * The optional discriminant preserves the existing percent-entry shape.
47
- */
103
+ type SemanticGroupedQuotaEntryMeta = Omit<GroupedQuotaEntryMeta, "semantic"> & {
104
+ semantic: AccountingSemantic;
105
+ };
106
+ export type QuotaPercentEntry = GroupedQuotaEntryMeta & {
107
+ /** The optional discriminant preserves the existing percent-entry shape. */
48
108
  kind?: "percent";
49
- /** Display label (already human-friendly), e.g. "Copilot" or "Claude (abc…)". */
50
109
  name: string;
51
110
  /** Remaining quota as a percentage (may be below 0 when over quota). */
52
111
  percentRemaining: number;
53
- /** Optional source-backed ISO reset timestamp (shown when percentRemaining is < 100). */
112
+ /** Optional typed operands. Renderers never derive a percentage from these facts. */
113
+ basis?: AccountingPercentageBasis;
54
114
  resetTimeIso?: string;
55
- }) | (GroupedQuotaEntryMeta & {
56
- /** Value-based entry (no percent bar). */
115
+ /** Internal provider evidence for fixed-window exhaustion projection. */
116
+ fixedWindow?: FixedWindowProjectionEvidence;
117
+ /** Presentation-only projection. Provider caches must never persist this field. */
118
+ runway?: QuotaRunwayProjection;
119
+ };
120
+ export type QuotaValueEntry = GroupedQuotaEntryMeta & {
121
+ /** Legacy formatted text value. */
57
122
  kind: "value";
58
- /** Display label (already human-friendly), e.g. "OpenCode Go". */
59
123
  name: string;
60
- /** Human-readable value, e.g. "$42.50". */
61
124
  value: string;
62
- /** Optional source-backed ISO reset timestamp (shown when available). */
63
125
  resetTimeIso?: string;
64
- });
65
- export declare function isValueEntry(e: QuotaToastEntry): e is Extract<QuotaToastEntry, {
66
- kind: "value";
67
- }>;
68
- export declare function isPercentEntry(e: QuotaToastEntry): e is Extract<QuotaToastEntry, {
69
- percentRemaining: number;
70
- }>;
126
+ };
127
+ export type QuotaQuantityEntry = SemanticGroupedQuotaEntryMeta & {
128
+ kind: "quantity";
129
+ name: string;
130
+ quantity: AccountingQuantity;
131
+ resetTimeIso?: string;
132
+ };
133
+ export type QuotaBooleanEntry = SemanticGroupedQuotaEntryMeta & {
134
+ kind: "boolean";
135
+ name: string;
136
+ value: boolean;
137
+ resetTimeIso?: string;
138
+ };
139
+ export type QuotaToastEntry = QuotaPercentEntry | QuotaValueEntry | QuotaQuantityEntry | QuotaBooleanEntry;
140
+ export declare function isValueEntry(e: QuotaToastEntry): e is QuotaValueEntry;
141
+ export declare function isQuantityEntry(e: QuotaToastEntry): e is QuotaQuantityEntry;
142
+ export declare function isBooleanEntry(e: QuotaToastEntry): e is QuotaBooleanEntry;
143
+ export declare function isPercentEntry(e: QuotaToastEntry): e is QuotaPercentEntry;
144
+ export declare function cloneAccountingUnit(unit: AccountingUnit): AccountingUnit;
145
+ export declare function cloneAccountingQuantity(quantity: AccountingQuantity): AccountingQuantity;
146
+ export declare function cloneAccountingSemantic(semantic: AccountingSemantic): AccountingSemantic;
147
+ export declare function cloneAccountingBasisFact(fact: AccountingBasisFact): AccountingBasisFact;
148
+ export declare function cloneAccountingPercentageBasis(basis: AccountingPercentageBasis): AccountingPercentageBasis;
149
+ export declare function cloneQuotaToastEntry(entry: QuotaToastEntry): QuotaToastEntry;
71
150
  export interface QuotaToastError {
72
151
  /** Short label that will be rendered as "label: message". */
73
152
  label: string;
74
153
  message: string;
154
+ /** Whether a later refresh may succeed without user action. */
155
+ retryable?: boolean;
75
156
  /** Intentional diagnostics remain verbose but do not count as compact-status issues. */
76
157
  kind?: "intentional-filter";
77
158
  }
@@ -193,14 +274,32 @@ export interface QuotaProviderContext {
193
274
  telemetryToken?: QuotaTelemetryToken;
194
275
  };
195
276
  }
277
+ export interface QuotaProviderCacheContext {
278
+ runtimeEligibleQuotaProviders?: readonly QuotaProviderDefinition[];
279
+ }
280
+ export type QuotaProviderCachePolicy = {
281
+ kind: "account-neutral";
282
+ } | {
283
+ kind: "uncached";
284
+ } | {
285
+ kind: "resolved-auth";
286
+ resolveIdentity: (ctx: QuotaProviderContext, cacheContext: QuotaProviderCacheContext) => Promise<ResolvedAuthIdentity | null>;
287
+ };
196
288
  export interface QuotaProvider {
197
289
  /** Stable id used by config.enabledProviders */
198
290
  id: string;
199
291
  /** Best-effort availability check (no network if possible) */
200
292
  isAvailable: (ctx: QuotaProviderContext) => Promise<boolean>;
201
- /** Fetch and normalize quota for this provider */
202
- fetch: (ctx: QuotaProviderContext) => Promise<QuotaProviderResult>;
293
+ /** Fetch and normalize quota for this provider. */
294
+ fetch: (ctx: QuotaProviderContext, cacheContext?: QuotaProviderCacheContext) => Promise<QuotaProviderResult>;
295
+ /**
296
+ * Shared-cache safety policy. Canonical runtime providers are classified in
297
+ * the registry. Missing policy fails closed as uncached; account-neutral
298
+ * caching must be explicit.
299
+ */
300
+ cachePolicy?: QuotaProviderCachePolicy;
203
301
  /** Optional provider match for onlyCurrentModel filtering */
204
302
  matchesCurrentModel?: (model: string, context?: QuotaProviderMatchContext) => boolean;
205
303
  }
304
+ export {};
206
305
  //# sourceMappingURL=entries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;GAKG;AAEH,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,YAAY,GACZ,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,MAAM,2BAA2B,GACnC,YAAY,GACZ,kBAAkB,GAClB,WAAW,GACX,0BAA0B,GAC1B,kBAAkB,CAAC;AAEvB,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAEnE,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAE1E,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,UAAU,EAAE,oBAAoB,CAAC;IACjC,6CAA6C;IAC7C,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,qEAAqE;IACrE,SAAS,EAAE,mBAAmB,CAAC;IAC/B,uEAAuE;IACvE,SAAS,EAAE,mBAAmB,CAAC;IAC/B,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,UAAU,EAAE,kBAAkB,CAAC;IAC/B,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,eAAe,GACvB,CAAC,qBAAqB,GAAG;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IAEb,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,CAAC;IAEzB,yFAAyF;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,GACF,CAAC,qBAAqB,GAAG;IACvB,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IAEd,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IAEb,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IAEd,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEP,wBAAgB,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAEjG;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,eAAe,GACjB,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAE7D;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,EAAE;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5E,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,gEAAgE;IAChE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EACZ,cAAc,GACd,sBAAsB,GACtB,uBAAuB,GACvB,WAAW,GACX,IAAI,CAAC;IACT,OAAO,EACH,oBAAoB,GACpB,SAAS,GACT,YAAY,GACZ,gBAAgB,GAChB,SAAS,GACT,gBAAgB,GAChB,sBAAsB,GACtB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,mBAAmB,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,kBAAkB,CAAC;IACvE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,6FAA6F;IAC7F,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACrD,+FAA+F;IAC/F,UAAU,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAClD,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACpC,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QACN,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,CAAC,EAAE;oBAAE,SAAS,EAAE,KAAK,CAAC;wBAAE,EAAE,EAAE,MAAM,CAAA;qBAAE,CAAC,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;YAC1E,GAAG,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,CAAC,EAAE;oBAAE,KAAK,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SACnD,CAAC;KACH,CAAC;IACF,yBAAyB,EAAE,yBAAyB,CAAC;IACrD,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,EAAE,eAAe,CAAC;QAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,CAAC;QAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,sEAAsE;QACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,mFAAmF;QACnF,0BAA0B,CAAC,EAAE,OAAO,CAAC;QACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACpC,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;QAC3C,cAAc,CAAC,EAAE,mBAAmB,CAAC;KACtC,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IAEX,8DAA8D;IAC9D,WAAW,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D,kDAAkD;IAClD,KAAK,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnE,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,KAAK,OAAO,CAAC;CACvF"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"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"}