@slkiser/opencode-quota 4.8.1 → 4.9.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 (233) hide show
  1. package/README.md +17 -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 +2 -0
  10. package/dist/lib/anthropic.d.ts.map +1 -1
  11. package/dist/lib/anthropic.js +79 -19
  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 +1 -0
  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 +35 -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/deepseek.d.ts +12 -12
  25. package/dist/lib/deepseek.d.ts.map +1 -1
  26. package/dist/lib/deepseek.js +33 -29
  27. package/dist/lib/deepseek.js.map +1 -1
  28. package/dist/lib/display-sanitize.d.ts.map +1 -1
  29. package/dist/lib/display-sanitize.js +76 -22
  30. package/dist/lib/display-sanitize.js.map +1 -1
  31. package/dist/lib/entries.d.ts +107 -23
  32. package/dist/lib/entries.d.ts.map +1 -1
  33. package/dist/lib/entries.js +37 -1
  34. package/dist/lib/entries.js.map +1 -1
  35. package/dist/lib/format.d.ts +1 -0
  36. package/dist/lib/format.d.ts.map +1 -1
  37. package/dist/lib/format.js +84 -19
  38. package/dist/lib/format.js.map +1 -1
  39. package/dist/lib/glm-coding-plan.d.ts.map +1 -1
  40. package/dist/lib/glm-coding-plan.js +4 -2
  41. package/dist/lib/glm-coding-plan.js.map +1 -1
  42. package/dist/lib/google-agy.d.ts +2 -0
  43. package/dist/lib/google-agy.d.ts.map +1 -1
  44. package/dist/lib/google-agy.js +29 -14
  45. package/dist/lib/google-agy.js.map +1 -1
  46. package/dist/lib/google-gemini-cli.d.ts +2 -0
  47. package/dist/lib/google-gemini-cli.d.ts.map +1 -1
  48. package/dist/lib/google-gemini-cli.js +29 -3
  49. package/dist/lib/google-gemini-cli.js.map +1 -1
  50. package/dist/lib/google-token-cache.d.ts +5 -8
  51. package/dist/lib/google-token-cache.d.ts.map +1 -1
  52. package/dist/lib/google-token-cache.js +30 -118
  53. package/dist/lib/google-token-cache.js.map +1 -1
  54. package/dist/lib/google.d.ts +2 -0
  55. package/dist/lib/google.d.ts.map +1 -1
  56. package/dist/lib/google.js +31 -6
  57. package/dist/lib/google.js.map +1 -1
  58. package/dist/lib/grouped-entry-normalization.d.ts.map +1 -1
  59. package/dist/lib/grouped-entry-normalization.js +53 -20
  60. package/dist/lib/grouped-entry-normalization.js.map +1 -1
  61. package/dist/lib/minimax-auth.d.ts +1 -1
  62. package/dist/lib/minimax-auth.js +1 -1
  63. package/dist/lib/nanogpt.d.ts +5 -5
  64. package/dist/lib/nanogpt.d.ts.map +1 -1
  65. package/dist/lib/nanogpt.js +59 -23
  66. package/dist/lib/nanogpt.js.map +1 -1
  67. package/dist/lib/openai.d.ts +4 -0
  68. package/dist/lib/openai.d.ts.map +1 -1
  69. package/dist/lib/openai.js +22 -3
  70. package/dist/lib/openai.js.map +1 -1
  71. package/dist/lib/opencode-go-auth.js +1 -1
  72. package/dist/lib/opencode-go-auth.js.map +1 -1
  73. package/dist/lib/opencode-go.d.ts.map +1 -1
  74. package/dist/lib/opencode-go.js +6 -1
  75. package/dist/lib/opencode-go.js.map +1 -1
  76. package/dist/lib/opencode-zen-config.d.ts +0 -1
  77. package/dist/lib/opencode-zen-config.d.ts.map +1 -1
  78. package/dist/lib/opencode-zen-config.js +0 -22
  79. package/dist/lib/opencode-zen-config.js.map +1 -1
  80. package/dist/lib/opencode-zen.d.ts +3 -0
  81. package/dist/lib/opencode-zen.d.ts.map +1 -1
  82. package/dist/lib/opencode-zen.js +18 -1
  83. package/dist/lib/opencode-zen.js.map +1 -1
  84. package/dist/lib/openrouter.d.ts +2 -0
  85. package/dist/lib/openrouter.d.ts.map +1 -1
  86. package/dist/lib/openrouter.js +10 -0
  87. package/dist/lib/openrouter.js.map +1 -1
  88. package/dist/lib/provider-metadata.d.ts +3 -307
  89. package/dist/lib/provider-metadata.d.ts.map +1 -1
  90. package/dist/lib/provider-metadata.js +18 -316
  91. package/dist/lib/provider-metadata.js.map +1 -1
  92. package/dist/lib/provider-registration.d.ts +325 -0
  93. package/dist/lib/provider-registration.d.ts.map +1 -0
  94. package/dist/lib/provider-registration.js +338 -0
  95. package/dist/lib/provider-registration.js.map +1 -0
  96. package/dist/lib/quota-accounting-projection.d.ts +7 -0
  97. package/dist/lib/quota-accounting-projection.d.ts.map +1 -0
  98. package/dist/lib/quota-accounting-projection.js +239 -0
  99. package/dist/lib/quota-accounting-projection.js.map +1 -0
  100. package/dist/lib/quota-command-format.d.ts +3 -2
  101. package/dist/lib/quota-command-format.d.ts.map +1 -1
  102. package/dist/lib/quota-command-format.js +35 -9
  103. package/dist/lib/quota-command-format.js.map +1 -1
  104. package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
  105. package/dist/lib/quota-dialog-commands.js +1 -0
  106. package/dist/lib/quota-dialog-commands.js.map +1 -1
  107. package/dist/lib/quota-export.d.ts +2 -1
  108. package/dist/lib/quota-export.d.ts.map +1 -1
  109. package/dist/lib/quota-export.js +36 -10
  110. package/dist/lib/quota-export.js.map +1 -1
  111. package/dist/lib/quota-render-data.d.ts +0 -1
  112. package/dist/lib/quota-render-data.d.ts.map +1 -1
  113. package/dist/lib/quota-render-data.js +43 -155
  114. package/dist/lib/quota-render-data.js.map +1 -1
  115. package/dist/lib/quota-reset-notifications.d.ts.map +1 -1
  116. package/dist/lib/quota-reset-notifications.js +3 -0
  117. package/dist/lib/quota-reset-notifications.js.map +1 -1
  118. package/dist/lib/quota-state-codec.d.ts +16 -0
  119. package/dist/lib/quota-state-codec.d.ts.map +1 -0
  120. package/dist/lib/quota-state-codec.js +409 -0
  121. package/dist/lib/quota-state-codec.js.map +1 -0
  122. package/dist/lib/quota-state.d.ts +2 -11
  123. package/dist/lib/quota-state.d.ts.map +1 -1
  124. package/dist/lib/quota-state.js +165 -304
  125. package/dist/lib/quota-state.js.map +1 -1
  126. package/dist/lib/quota-status.d.ts.map +1 -1
  127. package/dist/lib/quota-status.js +14 -7
  128. package/dist/lib/quota-status.js.map +1 -1
  129. package/dist/lib/quota-telemetry.d.ts.map +1 -1
  130. package/dist/lib/quota-telemetry.js +7 -3
  131. package/dist/lib/quota-telemetry.js.map +1 -1
  132. package/dist/lib/quota-toast-runtime.d.ts +60 -0
  133. package/dist/lib/quota-toast-runtime.d.ts.map +1 -0
  134. package/dist/lib/quota-toast-runtime.js +765 -0
  135. package/dist/lib/quota-toast-runtime.js.map +1 -0
  136. package/dist/lib/resolved-auth-identity.d.ts +36 -0
  137. package/dist/lib/resolved-auth-identity.d.ts.map +1 -0
  138. package/dist/lib/resolved-auth-identity.js +193 -0
  139. package/dist/lib/resolved-auth-identity.js.map +1 -0
  140. package/dist/lib/scoped-update-migration.d.ts +101 -0
  141. package/dist/lib/scoped-update-migration.d.ts.map +1 -0
  142. package/dist/lib/scoped-update-migration.js +348 -0
  143. package/dist/lib/scoped-update-migration.js.map +1 -0
  144. package/dist/lib/scoped-update.d.ts +8 -0
  145. package/dist/lib/scoped-update.d.ts.map +1 -1
  146. package/dist/lib/scoped-update.js +263 -50
  147. package/dist/lib/scoped-update.js.map +1 -1
  148. package/dist/lib/toast-format-grouped.d.ts +1 -0
  149. package/dist/lib/toast-format-grouped.d.ts.map +1 -1
  150. package/dist/lib/toast-format-grouped.js +111 -24
  151. package/dist/lib/toast-format-grouped.js.map +1 -1
  152. package/dist/lib/tui-compact-format.d.ts +1 -0
  153. package/dist/lib/tui-compact-format.d.ts.map +1 -1
  154. package/dist/lib/tui-compact-format.js +136 -24
  155. package/dist/lib/tui-compact-format.js.map +1 -1
  156. package/dist/lib/tui-panel-state.d.ts +2 -0
  157. package/dist/lib/tui-panel-state.d.ts.map +1 -1
  158. package/dist/lib/tui-panel-state.js.map +1 -1
  159. package/dist/lib/tui-runtime.d.ts.map +1 -1
  160. package/dist/lib/tui-runtime.js +84 -10
  161. package/dist/lib/tui-runtime.js.map +1 -1
  162. package/dist/lib/tui-sidebar-format.d.ts +1 -1
  163. package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
  164. package/dist/lib/tui-sidebar-format.js +1 -0
  165. package/dist/lib/tui-sidebar-format.js.map +1 -1
  166. package/dist/lib/types.d.ts +7 -1
  167. package/dist/lib/types.d.ts.map +1 -1
  168. package/dist/lib/types.js +1 -0
  169. package/dist/lib/types.js.map +1 -1
  170. package/dist/lib/xai.d.ts +2 -0
  171. package/dist/lib/xai.d.ts.map +1 -1
  172. package/dist/lib/xai.js +10 -0
  173. package/dist/lib/xai.js.map +1 -1
  174. package/dist/plugin.d.ts.map +1 -1
  175. package/dist/plugin.js +27 -720
  176. package/dist/plugin.js.map +1 -1
  177. package/dist/providers/accounting-decimal.d.ts +2 -0
  178. package/dist/providers/accounting-decimal.d.ts.map +1 -0
  179. package/dist/providers/accounting-decimal.js +23 -0
  180. package/dist/providers/accounting-decimal.js.map +1 -0
  181. package/dist/providers/cache-policies.d.ts +64 -0
  182. package/dist/providers/cache-policies.d.ts.map +1 -0
  183. package/dist/providers/cache-policies.js +197 -0
  184. package/dist/providers/cache-policies.js.map +1 -0
  185. package/dist/providers/cursor.d.ts.map +1 -1
  186. package/dist/providers/cursor.js +73 -58
  187. package/dist/providers/cursor.js.map +1 -1
  188. package/dist/providers/deepseek.d.ts +2 -2
  189. package/dist/providers/deepseek.d.ts.map +1 -1
  190. package/dist/providers/deepseek.js +64 -33
  191. package/dist/providers/deepseek.js.map +1 -1
  192. package/dist/providers/google-agy.js +2 -2
  193. package/dist/providers/google-agy.js.map +1 -1
  194. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  195. package/dist/providers/google-gemini-cli.js +1 -1
  196. package/dist/providers/google-gemini-cli.js.map +1 -1
  197. package/dist/providers/kilo.d.ts.map +1 -1
  198. package/dist/providers/kilo.js +56 -29
  199. package/dist/providers/kilo.js.map +1 -1
  200. package/dist/providers/mimo.d.ts.map +1 -1
  201. package/dist/providers/mimo.js +37 -15
  202. package/dist/providers/mimo.js.map +1 -1
  203. package/dist/providers/minimax-coding-plan.d.ts +8 -7
  204. package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
  205. package/dist/providers/minimax-coding-plan.js +97 -83
  206. package/dist/providers/minimax-coding-plan.js.map +1 -1
  207. package/dist/providers/nanogpt.d.ts.map +1 -1
  208. package/dist/providers/nanogpt.js +72 -51
  209. package/dist/providers/nanogpt.js.map +1 -1
  210. package/dist/providers/openai.d.ts.map +1 -1
  211. package/dist/providers/openai.js +0 -3
  212. package/dist/providers/openai.js.map +1 -1
  213. package/dist/providers/opencode-go.d.ts.map +1 -1
  214. package/dist/providers/opencode-go.js +3 -4
  215. package/dist/providers/opencode-go.js.map +1 -1
  216. package/dist/providers/opencode-zen.d.ts.map +1 -1
  217. package/dist/providers/opencode-zen.js +78 -17
  218. package/dist/providers/opencode-zen.js.map +1 -1
  219. package/dist/providers/quota-providers.d.ts.map +1 -1
  220. package/dist/providers/quota-providers.js +31 -23
  221. package/dist/providers/quota-providers.js.map +1 -1
  222. package/dist/providers/registry.d.ts +3 -2
  223. package/dist/providers/registry.d.ts.map +1 -1
  224. package/dist/providers/registry.js +41 -31
  225. package/dist/providers/registry.js.map +1 -1
  226. package/dist/providers/result-helpers.d.ts +10 -5
  227. package/dist/providers/result-helpers.d.ts.map +1 -1
  228. package/dist/providers/result-helpers.js +3 -3
  229. package/dist/providers/result-helpers.js.map +1 -1
  230. package/dist/tui.d.ts.map +1 -1
  231. package/dist/tui.js +11 -3
  232. package/dist/tui.tsx +16 -7
  233. package/package.json +1 -1
@@ -0,0 +1,325 @@
1
+ export type QuotaProviderAutoSetup = "yes" | "usually" | "manual_env_config" | "needs_quick_setup";
2
+ export type QuotaProviderAuthentication = "opencode_auth_oauth_token" | "opencode_auth_api_key" | "companion_auth_oauth_token" | "local_cli_auth" | "github_oauth_or_pat" | "external_api_key" | "state_only";
3
+ export type QuotaProviderAuthFallback = "env_api_key" | "global_opencode_config";
4
+ export type QuotaProviderQuotaSource = "remote_api" | "local_estimation" | "local_runtime_accounting" | "local_cli_report";
5
+ export interface QuotaProviderShapeSource {
6
+ lifecycle?: "deprecated";
7
+ recommendedReplacementId?: string;
8
+ autoSetup: QuotaProviderAutoSetup;
9
+ authentication: QuotaProviderAuthentication;
10
+ authFallbacks?: readonly QuotaProviderAuthFallback[];
11
+ quota: QuotaProviderQuotaSource;
12
+ quickSetupAnchor?: string;
13
+ notes?: string;
14
+ }
15
+ export interface QuotaProviderRegistrationSourceEntry {
16
+ id: string;
17
+ label: string;
18
+ labelAliases?: readonly string[];
19
+ runtimeIds: readonly string[];
20
+ synonyms: readonly string[];
21
+ liveLocalUsage?: true;
22
+ shape: QuotaProviderShapeSource;
23
+ }
24
+ export declare const QUOTA_PROVIDER_REGISTRATION_SOURCE: readonly [{
25
+ readonly id: "anthropic";
26
+ readonly label: "Anthropic";
27
+ readonly runtimeIds: readonly ["anthropic"];
28
+ readonly synonyms: readonly ["claude", "claude-code"];
29
+ readonly shape: {
30
+ readonly autoSetup: "needs_quick_setup";
31
+ readonly authentication: "local_cli_auth";
32
+ readonly quota: "local_cli_report";
33
+ readonly quickSetupAnchor: "anthropic-claude";
34
+ };
35
+ }, {
36
+ readonly id: "copilot";
37
+ readonly label: "Copilot";
38
+ readonly runtimeIds: readonly ["copilot", "github-copilot", "copilot-chat", "github-copilot-chat"];
39
+ readonly synonyms: readonly ["github-copilot", "copilot-chat", "github-copilot-chat"];
40
+ readonly shape: {
41
+ readonly autoSetup: "usually";
42
+ readonly authentication: "github_oauth_or_pat";
43
+ readonly quota: "remote_api";
44
+ readonly notes: "OAuth for personal flow; PAT for managed billing";
45
+ };
46
+ }, {
47
+ readonly id: "openai";
48
+ readonly label: "OpenAI";
49
+ readonly runtimeIds: readonly ["openai", "chatgpt", "codex"];
50
+ readonly synonyms: readonly [];
51
+ readonly shape: {
52
+ readonly autoSetup: "yes";
53
+ readonly authentication: "opencode_auth_oauth_token";
54
+ readonly quota: "remote_api";
55
+ };
56
+ }, {
57
+ readonly id: "openrouter";
58
+ readonly label: "OpenRouter";
59
+ readonly runtimeIds: readonly ["openrouter"];
60
+ readonly synonyms: readonly [];
61
+ readonly shape: {
62
+ readonly autoSetup: "yes";
63
+ readonly authentication: "opencode_auth_api_key";
64
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
65
+ readonly quota: "remote_api";
66
+ };
67
+ }, {
68
+ readonly id: "kilo";
69
+ readonly label: "Kilo Gateway";
70
+ readonly runtimeIds: readonly ["kilo"];
71
+ readonly synonyms: readonly [];
72
+ readonly shape: {
73
+ readonly autoSetup: "usually";
74
+ readonly authentication: "opencode_auth_api_key";
75
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
76
+ readonly quota: "remote_api";
77
+ readonly notes: "Queries Kilo Pass state first, then falls back to the documented personal Gateway balance when no active subscription exists";
78
+ };
79
+ }, {
80
+ readonly id: "cursor";
81
+ readonly label: "Cursor";
82
+ readonly runtimeIds: readonly ["cursor", "cursor-acp"];
83
+ readonly synonyms: readonly ["cursor-acp", "open-cursor", "@rama_nigg/open-cursor"];
84
+ readonly liveLocalUsage: true;
85
+ readonly shape: {
86
+ readonly autoSetup: "needs_quick_setup";
87
+ readonly authentication: "companion_auth_oauth_token";
88
+ readonly quota: "local_runtime_accounting";
89
+ readonly quickSetupAnchor: "cursor";
90
+ readonly notes: "companion runtime/plugin integration plus local usage accounting";
91
+ };
92
+ }, {
93
+ readonly id: "qwen-code";
94
+ readonly label: "Qwen";
95
+ readonly runtimeIds: readonly ["qwen-code"];
96
+ readonly synonyms: readonly ["qwen"];
97
+ readonly liveLocalUsage: true;
98
+ readonly shape: {
99
+ readonly autoSetup: "needs_quick_setup";
100
+ readonly authentication: "companion_auth_oauth_token";
101
+ readonly quota: "local_estimation";
102
+ readonly quickSetupAnchor: "qwen-code";
103
+ };
104
+ }, {
105
+ readonly id: "alibaba-coding-plan";
106
+ readonly label: "Alibaba Coding Plan";
107
+ readonly runtimeIds: readonly ["alibaba-coding-plan"];
108
+ readonly synonyms: readonly ["alibaba"];
109
+ readonly liveLocalUsage: true;
110
+ readonly shape: {
111
+ readonly autoSetup: "yes";
112
+ readonly authentication: "opencode_auth_api_key";
113
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
114
+ readonly quota: "local_estimation";
115
+ };
116
+ }, {
117
+ readonly id: "synthetic";
118
+ readonly label: "Synthetic";
119
+ readonly runtimeIds: readonly ["synthetic"];
120
+ readonly synonyms: readonly [];
121
+ readonly shape: {
122
+ readonly autoSetup: "yes";
123
+ readonly authentication: "opencode_auth_api_key";
124
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
125
+ readonly quota: "remote_api";
126
+ };
127
+ }, {
128
+ readonly id: "chutes";
129
+ readonly label: "Chutes";
130
+ readonly runtimeIds: readonly ["chutes", "chutes-ai"];
131
+ readonly synonyms: readonly [];
132
+ readonly shape: {
133
+ readonly autoSetup: "usually";
134
+ readonly authentication: "opencode_auth_api_key";
135
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
136
+ readonly quota: "remote_api";
137
+ };
138
+ }, {
139
+ readonly id: "google-antigravity";
140
+ readonly label: "Google";
141
+ readonly runtimeIds: readonly ["google-antigravity", "google", "antigravity"];
142
+ readonly synonyms: readonly [];
143
+ readonly shape: {
144
+ readonly autoSetup: "needs_quick_setup";
145
+ readonly authentication: "companion_auth_oauth_token";
146
+ readonly quota: "remote_api";
147
+ readonly quickSetupAnchor: "google-antigravity";
148
+ };
149
+ }, {
150
+ readonly id: "google-gemini-cli";
151
+ readonly label: "Gemini CLI";
152
+ readonly runtimeIds: readonly ["google-gemini-cli", "gemini-cli", "gemini", "opencode-gemini-auth", "google"];
153
+ readonly synonyms: readonly ["gemini-cli", "google-gemini", "opencode-gemini-auth", "gemini"];
154
+ readonly shape: {
155
+ readonly lifecycle: "deprecated";
156
+ readonly recommendedReplacementId: "google-agy";
157
+ readonly autoSetup: "needs_quick_setup";
158
+ readonly authentication: "companion_auth_oauth_token";
159
+ readonly quota: "remote_api";
160
+ readonly quickSetupAnchor: "gemini-cli";
161
+ };
162
+ }, {
163
+ readonly id: "google-agy";
164
+ readonly label: "Google AGY";
165
+ readonly runtimeIds: readonly ["google-agy", "opencode-agy-auth", "google-agy-auth"];
166
+ readonly synonyms: readonly ["opencode-agy-auth", "google-agy-auth"];
167
+ readonly shape: {
168
+ readonly autoSetup: "needs_quick_setup";
169
+ readonly authentication: "companion_auth_oauth_token";
170
+ readonly quota: "remote_api";
171
+ readonly quickSetupAnchor: "google-agy-quick-setup";
172
+ };
173
+ }, {
174
+ readonly id: "zai";
175
+ readonly label: "Z.ai";
176
+ readonly runtimeIds: readonly ["zai", "glm", "zai-coding-plan"];
177
+ readonly synonyms: readonly [];
178
+ readonly shape: {
179
+ readonly autoSetup: "yes";
180
+ readonly authentication: "opencode_auth_api_key";
181
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
182
+ readonly quota: "remote_api";
183
+ };
184
+ }, {
185
+ readonly id: "zhipu";
186
+ readonly label: "Zhipu";
187
+ readonly runtimeIds: readonly ["zhipu", "glm-coding-plan", "zhipu-coding-plan", "zhipuai-coding-plan"];
188
+ readonly synonyms: readonly ["glm-coding-plan", "zhipu-coding-plan", "zhipuai-coding-plan"];
189
+ readonly shape: {
190
+ readonly autoSetup: "yes";
191
+ readonly authentication: "opencode_auth_api_key";
192
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
193
+ readonly quota: "remote_api";
194
+ };
195
+ }, {
196
+ readonly id: "nanogpt";
197
+ readonly label: "NanoGPT";
198
+ readonly runtimeIds: readonly ["nanogpt", "nano-gpt"];
199
+ readonly synonyms: readonly ["nano-gpt"];
200
+ readonly shape: {
201
+ readonly autoSetup: "usually";
202
+ readonly authentication: "opencode_auth_api_key";
203
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
204
+ readonly quota: "remote_api";
205
+ };
206
+ }, {
207
+ readonly id: "minimax-coding-plan";
208
+ readonly label: "MiniMax Token Plan";
209
+ readonly runtimeIds: readonly ["minimax-coding-plan", "minimax"];
210
+ readonly synonyms: readonly ["minimax"];
211
+ readonly shape: {
212
+ readonly autoSetup: "yes";
213
+ readonly authentication: "opencode_auth_api_key";
214
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
215
+ readonly quota: "remote_api";
216
+ };
217
+ }, {
218
+ readonly id: "minimax-china-coding-plan";
219
+ readonly label: "MiniMax Token Plan (CN)";
220
+ readonly labelAliases: readonly ["minimax-cn-coding-plan"];
221
+ readonly runtimeIds: readonly ["minimax-china-coding-plan", "minimax-cn-coding-plan", "minimax-cn", "minimax-china"];
222
+ readonly synonyms: readonly ["minimax-cn", "minimax-china", "minimax-cn-coding-plan"];
223
+ readonly shape: {
224
+ readonly autoSetup: "yes";
225
+ readonly authentication: "opencode_auth_api_key";
226
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
227
+ readonly quota: "remote_api";
228
+ };
229
+ }, {
230
+ readonly id: "kimi-for-coding";
231
+ readonly label: "Kimi Code";
232
+ readonly labelAliases: readonly ["kimi-code"];
233
+ readonly runtimeIds: readonly ["kimi-for-coding", "kimi", "kimi-code"];
234
+ readonly synonyms: readonly ["kimi", "kimi-for-code", "kimi-code"];
235
+ readonly shape: {
236
+ readonly autoSetup: "yes";
237
+ readonly authentication: "opencode_auth_api_key";
238
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
239
+ readonly quota: "remote_api";
240
+ };
241
+ }, {
242
+ readonly id: "deepseek";
243
+ readonly label: "DeepSeek";
244
+ readonly runtimeIds: readonly ["deepseek"];
245
+ readonly synonyms: readonly ["deep-seek"];
246
+ readonly shape: {
247
+ readonly autoSetup: "yes";
248
+ readonly authentication: "opencode_auth_api_key";
249
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
250
+ readonly quota: "remote_api";
251
+ };
252
+ }, {
253
+ readonly id: "xai";
254
+ readonly label: "xAI";
255
+ readonly runtimeIds: readonly ["xai"];
256
+ readonly synonyms: readonly [];
257
+ readonly shape: {
258
+ readonly autoSetup: "yes";
259
+ readonly authentication: "opencode_auth_oauth_token";
260
+ readonly quota: "remote_api";
261
+ readonly notes: "SuperGrok OAuth via OpenCode /connect; shared weekly credit meter";
262
+ };
263
+ }, {
264
+ readonly id: "xiaomi";
265
+ readonly label: "Xiaomi MiMo";
266
+ readonly runtimeIds: readonly ["xiaomi", "xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp"];
267
+ readonly synonyms: readonly ["xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp"];
268
+ readonly shape: {
269
+ readonly autoSetup: "needs_quick_setup";
270
+ readonly authentication: "state_only";
271
+ readonly quota: "remote_api";
272
+ readonly quickSetupAnchor: "xiaomi-mimo";
273
+ readonly notes: "Reads the Xiaomi MiMo dashboard with a filtered trusted cookie";
274
+ };
275
+ }, {
276
+ readonly id: "opencode-go";
277
+ readonly label: "OpenCode Go";
278
+ readonly runtimeIds: readonly ["opencode-go"];
279
+ readonly synonyms: readonly ["opencode-go-subscription"];
280
+ readonly shape: {
281
+ readonly autoSetup: "yes";
282
+ readonly authentication: "opencode_auth_api_key";
283
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
284
+ readonly quota: "remote_api";
285
+ readonly notes: "Reads the official OpenCode Go usage API through standard Go API-key sources";
286
+ };
287
+ }, {
288
+ readonly id: "opencode";
289
+ readonly label: "OpenCode Zen";
290
+ readonly runtimeIds: readonly ["opencode", "opencode-zen"];
291
+ readonly synonyms: readonly ["opencode-zen"];
292
+ readonly shape: {
293
+ readonly autoSetup: "needs_quick_setup";
294
+ readonly authentication: "state_only";
295
+ readonly quota: "remote_api";
296
+ readonly quickSetupAnchor: "opencode-zen";
297
+ readonly notes: "Scrapes the OpenCode Zen billing page; requires workspaceId and authCookie";
298
+ };
299
+ }, {
300
+ readonly id: "ollama-cloud";
301
+ readonly label: "Ollama Cloud";
302
+ readonly runtimeIds: readonly ["ollama-cloud"];
303
+ readonly synonyms: readonly [];
304
+ readonly shape: {
305
+ readonly autoSetup: "usually";
306
+ readonly authentication: "opencode_auth_api_key";
307
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
308
+ readonly quota: "remote_api";
309
+ readonly notes: "Queries the Ollama Cloud usage API; reports session and weekly quota plus model request counts";
310
+ };
311
+ }, {
312
+ readonly id: "quota-providers";
313
+ readonly label: "Quota providers";
314
+ readonly runtimeIds: readonly [];
315
+ readonly synonyms: readonly [];
316
+ readonly shape: {
317
+ readonly autoSetup: "manual_env_config";
318
+ readonly authentication: "external_api_key";
319
+ readonly authFallbacks: readonly ["env_api_key", "global_opencode_config"];
320
+ readonly quota: "remote_api";
321
+ readonly notes: "Aggregates exact user-configured accounting sources";
322
+ };
323
+ }];
324
+ export type CanonicalQuotaProviderId = (typeof QUOTA_PROVIDER_REGISTRATION_SOURCE)[number]["id"];
325
+ //# sourceMappingURL=provider-registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-registration.d.ts","sourceRoot":"","sources":["../../src/lib/provider-registration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,338 @@
1
+ export const QUOTA_PROVIDER_REGISTRATION_SOURCE = [
2
+ {
3
+ id: "anthropic",
4
+ label: "Anthropic",
5
+ runtimeIds: ["anthropic"],
6
+ synonyms: ["claude", "claude-code"],
7
+ shape: {
8
+ autoSetup: "needs_quick_setup",
9
+ authentication: "local_cli_auth",
10
+ quota: "local_cli_report",
11
+ quickSetupAnchor: "anthropic-claude",
12
+ },
13
+ },
14
+ {
15
+ id: "copilot",
16
+ label: "Copilot",
17
+ runtimeIds: ["copilot", "github-copilot", "copilot-chat", "github-copilot-chat"],
18
+ synonyms: ["github-copilot", "copilot-chat", "github-copilot-chat"],
19
+ shape: {
20
+ autoSetup: "usually",
21
+ authentication: "github_oauth_or_pat",
22
+ quota: "remote_api",
23
+ notes: "OAuth for personal flow; PAT for managed billing",
24
+ },
25
+ },
26
+ {
27
+ id: "openai",
28
+ label: "OpenAI",
29
+ runtimeIds: ["openai", "chatgpt", "codex"],
30
+ synonyms: [],
31
+ shape: {
32
+ autoSetup: "yes",
33
+ authentication: "opencode_auth_oauth_token",
34
+ quota: "remote_api",
35
+ },
36
+ },
37
+ {
38
+ id: "openrouter",
39
+ label: "OpenRouter",
40
+ runtimeIds: ["openrouter"],
41
+ synonyms: [],
42
+ shape: {
43
+ autoSetup: "yes",
44
+ authentication: "opencode_auth_api_key",
45
+ authFallbacks: ["env_api_key", "global_opencode_config"],
46
+ quota: "remote_api",
47
+ },
48
+ },
49
+ {
50
+ id: "kilo",
51
+ label: "Kilo Gateway",
52
+ runtimeIds: ["kilo"],
53
+ synonyms: [],
54
+ shape: {
55
+ autoSetup: "usually",
56
+ authentication: "opencode_auth_api_key",
57
+ authFallbacks: ["env_api_key", "global_opencode_config"],
58
+ quota: "remote_api",
59
+ notes: "Queries Kilo Pass state first, then falls back to the documented personal Gateway balance when no active subscription exists",
60
+ },
61
+ },
62
+ {
63
+ id: "cursor",
64
+ label: "Cursor",
65
+ runtimeIds: ["cursor", "cursor-acp"],
66
+ synonyms: ["cursor-acp", "open-cursor", "@rama_nigg/open-cursor"],
67
+ liveLocalUsage: true,
68
+ shape: {
69
+ autoSetup: "needs_quick_setup",
70
+ authentication: "companion_auth_oauth_token",
71
+ quota: "local_runtime_accounting",
72
+ quickSetupAnchor: "cursor",
73
+ notes: "companion runtime/plugin integration plus local usage accounting",
74
+ },
75
+ },
76
+ {
77
+ id: "qwen-code",
78
+ label: "Qwen",
79
+ runtimeIds: ["qwen-code"],
80
+ synonyms: ["qwen"],
81
+ liveLocalUsage: true,
82
+ shape: {
83
+ autoSetup: "needs_quick_setup",
84
+ authentication: "companion_auth_oauth_token",
85
+ quota: "local_estimation",
86
+ quickSetupAnchor: "qwen-code",
87
+ },
88
+ },
89
+ {
90
+ id: "alibaba-coding-plan",
91
+ label: "Alibaba Coding Plan",
92
+ runtimeIds: ["alibaba-coding-plan"],
93
+ synonyms: ["alibaba"],
94
+ liveLocalUsage: true,
95
+ shape: {
96
+ autoSetup: "yes",
97
+ authentication: "opencode_auth_api_key",
98
+ authFallbacks: ["env_api_key", "global_opencode_config"],
99
+ quota: "local_estimation",
100
+ },
101
+ },
102
+ {
103
+ id: "synthetic",
104
+ label: "Synthetic",
105
+ runtimeIds: ["synthetic"],
106
+ synonyms: [],
107
+ shape: {
108
+ autoSetup: "yes",
109
+ authentication: "opencode_auth_api_key",
110
+ authFallbacks: ["env_api_key", "global_opencode_config"],
111
+ quota: "remote_api",
112
+ },
113
+ },
114
+ {
115
+ id: "chutes",
116
+ label: "Chutes",
117
+ runtimeIds: ["chutes", "chutes-ai"],
118
+ synonyms: [],
119
+ shape: {
120
+ autoSetup: "usually",
121
+ authentication: "opencode_auth_api_key",
122
+ authFallbacks: ["env_api_key", "global_opencode_config"],
123
+ quota: "remote_api",
124
+ },
125
+ },
126
+ {
127
+ id: "google-antigravity",
128
+ label: "Google",
129
+ runtimeIds: ["google-antigravity", "google", "antigravity"],
130
+ synonyms: [],
131
+ shape: {
132
+ autoSetup: "needs_quick_setup",
133
+ authentication: "companion_auth_oauth_token",
134
+ quota: "remote_api",
135
+ quickSetupAnchor: "google-antigravity",
136
+ },
137
+ },
138
+ {
139
+ id: "google-gemini-cli",
140
+ label: "Gemini CLI",
141
+ runtimeIds: ["google-gemini-cli", "gemini-cli", "gemini", "opencode-gemini-auth", "google"],
142
+ synonyms: ["gemini-cli", "google-gemini", "opencode-gemini-auth", "gemini"],
143
+ shape: {
144
+ lifecycle: "deprecated",
145
+ recommendedReplacementId: "google-agy",
146
+ autoSetup: "needs_quick_setup",
147
+ authentication: "companion_auth_oauth_token",
148
+ quota: "remote_api",
149
+ quickSetupAnchor: "gemini-cli",
150
+ },
151
+ },
152
+ {
153
+ id: "google-agy",
154
+ label: "Google AGY",
155
+ runtimeIds: ["google-agy", "opencode-agy-auth", "google-agy-auth"],
156
+ synonyms: ["opencode-agy-auth", "google-agy-auth"],
157
+ shape: {
158
+ autoSetup: "needs_quick_setup",
159
+ authentication: "companion_auth_oauth_token",
160
+ quota: "remote_api",
161
+ quickSetupAnchor: "google-agy-quick-setup",
162
+ },
163
+ },
164
+ {
165
+ id: "zai",
166
+ label: "Z.ai",
167
+ runtimeIds: ["zai", "glm", "zai-coding-plan"],
168
+ synonyms: [],
169
+ shape: {
170
+ autoSetup: "yes",
171
+ authentication: "opencode_auth_api_key",
172
+ authFallbacks: ["env_api_key", "global_opencode_config"],
173
+ quota: "remote_api",
174
+ },
175
+ },
176
+ {
177
+ id: "zhipu",
178
+ label: "Zhipu",
179
+ runtimeIds: ["zhipu", "glm-coding-plan", "zhipu-coding-plan", "zhipuai-coding-plan"],
180
+ synonyms: ["glm-coding-plan", "zhipu-coding-plan", "zhipuai-coding-plan"],
181
+ shape: {
182
+ autoSetup: "yes",
183
+ authentication: "opencode_auth_api_key",
184
+ authFallbacks: ["env_api_key", "global_opencode_config"],
185
+ quota: "remote_api",
186
+ },
187
+ },
188
+ {
189
+ id: "nanogpt",
190
+ label: "NanoGPT",
191
+ runtimeIds: ["nanogpt", "nano-gpt"],
192
+ synonyms: ["nano-gpt"],
193
+ shape: {
194
+ autoSetup: "usually",
195
+ authentication: "opencode_auth_api_key",
196
+ authFallbacks: ["env_api_key", "global_opencode_config"],
197
+ quota: "remote_api",
198
+ },
199
+ },
200
+ {
201
+ id: "minimax-coding-plan",
202
+ label: "MiniMax Token Plan",
203
+ runtimeIds: ["minimax-coding-plan", "minimax"],
204
+ synonyms: ["minimax"],
205
+ shape: {
206
+ autoSetup: "yes",
207
+ authentication: "opencode_auth_api_key",
208
+ authFallbacks: ["env_api_key", "global_opencode_config"],
209
+ quota: "remote_api",
210
+ },
211
+ },
212
+ {
213
+ id: "minimax-china-coding-plan",
214
+ label: "MiniMax Token Plan (CN)",
215
+ labelAliases: ["minimax-cn-coding-plan"],
216
+ runtimeIds: [
217
+ "minimax-china-coding-plan",
218
+ "minimax-cn-coding-plan",
219
+ "minimax-cn",
220
+ "minimax-china",
221
+ ],
222
+ synonyms: ["minimax-cn", "minimax-china", "minimax-cn-coding-plan"],
223
+ shape: {
224
+ autoSetup: "yes",
225
+ authentication: "opencode_auth_api_key",
226
+ authFallbacks: ["env_api_key", "global_opencode_config"],
227
+ quota: "remote_api",
228
+ },
229
+ },
230
+ {
231
+ id: "kimi-for-coding",
232
+ label: "Kimi Code",
233
+ labelAliases: ["kimi-code"],
234
+ runtimeIds: ["kimi-for-coding", "kimi", "kimi-code"],
235
+ synonyms: ["kimi", "kimi-for-code", "kimi-code"],
236
+ shape: {
237
+ autoSetup: "yes",
238
+ authentication: "opencode_auth_api_key",
239
+ authFallbacks: ["env_api_key", "global_opencode_config"],
240
+ quota: "remote_api",
241
+ },
242
+ },
243
+ {
244
+ id: "deepseek",
245
+ label: "DeepSeek",
246
+ runtimeIds: ["deepseek"],
247
+ synonyms: ["deep-seek"],
248
+ shape: {
249
+ autoSetup: "yes",
250
+ authentication: "opencode_auth_api_key",
251
+ authFallbacks: ["env_api_key", "global_opencode_config"],
252
+ quota: "remote_api",
253
+ },
254
+ },
255
+ {
256
+ id: "xai",
257
+ label: "xAI",
258
+ runtimeIds: ["xai"],
259
+ synonyms: [],
260
+ shape: {
261
+ autoSetup: "yes",
262
+ authentication: "opencode_auth_oauth_token",
263
+ quota: "remote_api",
264
+ notes: "SuperGrok OAuth via OpenCode /connect; shared weekly credit meter",
265
+ },
266
+ },
267
+ {
268
+ id: "xiaomi",
269
+ label: "Xiaomi MiMo",
270
+ runtimeIds: [
271
+ "xiaomi",
272
+ "xiaomi-token-plan-cn",
273
+ "xiaomi-token-plan-ams",
274
+ "xiaomi-token-plan-sgp",
275
+ ],
276
+ synonyms: ["xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp"],
277
+ shape: {
278
+ autoSetup: "needs_quick_setup",
279
+ authentication: "state_only",
280
+ quota: "remote_api",
281
+ quickSetupAnchor: "xiaomi-mimo",
282
+ notes: "Reads the Xiaomi MiMo dashboard with a filtered trusted cookie",
283
+ },
284
+ },
285
+ {
286
+ id: "opencode-go",
287
+ label: "OpenCode Go",
288
+ runtimeIds: ["opencode-go"],
289
+ synonyms: ["opencode-go-subscription"],
290
+ shape: {
291
+ autoSetup: "yes",
292
+ authentication: "opencode_auth_api_key",
293
+ authFallbacks: ["env_api_key", "global_opencode_config"],
294
+ quota: "remote_api",
295
+ notes: "Reads the official OpenCode Go usage API through standard Go API-key sources",
296
+ },
297
+ },
298
+ {
299
+ id: "opencode",
300
+ label: "OpenCode Zen",
301
+ runtimeIds: ["opencode", "opencode-zen"],
302
+ synonyms: ["opencode-zen"],
303
+ shape: {
304
+ autoSetup: "needs_quick_setup",
305
+ authentication: "state_only",
306
+ quota: "remote_api",
307
+ quickSetupAnchor: "opencode-zen",
308
+ notes: "Scrapes the OpenCode Zen billing page; requires workspaceId and authCookie",
309
+ },
310
+ },
311
+ {
312
+ id: "ollama-cloud",
313
+ label: "Ollama Cloud",
314
+ runtimeIds: ["ollama-cloud"],
315
+ synonyms: [],
316
+ shape: {
317
+ autoSetup: "usually",
318
+ authentication: "opencode_auth_api_key",
319
+ authFallbacks: ["env_api_key", "global_opencode_config"],
320
+ quota: "remote_api",
321
+ notes: "Queries the Ollama Cloud usage API; reports session and weekly quota plus model request counts",
322
+ },
323
+ },
324
+ {
325
+ id: "quota-providers",
326
+ label: "Quota providers",
327
+ runtimeIds: [],
328
+ synonyms: [],
329
+ shape: {
330
+ autoSetup: "manual_env_config",
331
+ authentication: "external_api_key",
332
+ authFallbacks: ["env_api_key", "global_opencode_config"],
333
+ quota: "remote_api",
334
+ notes: "Aggregates exact user-configured accounting sources",
335
+ },
336
+ },
337
+ ];
338
+ //# sourceMappingURL=provider-registration.js.map