@slkiser/opencode-quota 5.0.3 → 6.0.0-beta.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 (794) hide show
  1. package/README.md +30 -44
  2. package/dist/agent-tools.d.ts +24 -0
  3. package/dist/agent-tools.d.ts.map +1 -0
  4. package/dist/agent-tools.js +578 -0
  5. package/dist/agent-tools.js.map +1 -0
  6. package/dist/bin/opencode-quota.d.ts.map +1 -1
  7. package/dist/bin/opencode-quota.js +1 -32
  8. package/dist/bin/opencode-quota.js.map +1 -1
  9. package/dist/core/errors.d.ts +12 -0
  10. package/dist/core/errors.d.ts.map +1 -0
  11. package/dist/core/errors.js +141 -0
  12. package/dist/core/errors.js.map +1 -0
  13. package/dist/core/pace.d.ts +13 -0
  14. package/dist/core/pace.d.ts.map +1 -0
  15. package/dist/core/pace.js +52 -0
  16. package/dist/core/pace.js.map +1 -0
  17. package/dist/core/persist.d.ts +44 -0
  18. package/dist/core/persist.d.ts.map +1 -0
  19. package/dist/core/persist.js +210 -0
  20. package/dist/core/persist.js.map +1 -0
  21. package/dist/core/provider-source.d.ts +40 -0
  22. package/dist/core/provider-source.d.ts.map +1 -0
  23. package/dist/core/provider-source.js +210 -0
  24. package/dist/core/provider-source.js.map +1 -0
  25. package/dist/core/redact.d.ts +17 -0
  26. package/dist/core/redact.d.ts.map +1 -0
  27. package/dist/core/redact.js +217 -0
  28. package/dist/core/redact.js.map +1 -0
  29. package/dist/core/rows.d.ts +20 -0
  30. package/dist/core/rows.d.ts.map +1 -0
  31. package/dist/core/rows.js +142 -0
  32. package/dist/core/rows.js.map +1 -0
  33. package/dist/core/selection.d.ts +15 -0
  34. package/dist/core/selection.d.ts.map +1 -0
  35. package/dist/core/selection.js +43 -0
  36. package/dist/core/selection.js.map +1 -0
  37. package/dist/core/snapshot-publisher.d.ts +15 -0
  38. package/dist/core/snapshot-publisher.d.ts.map +1 -0
  39. package/dist/core/snapshot-publisher.js +57 -0
  40. package/dist/core/snapshot-publisher.js.map +1 -0
  41. package/dist/core/store.d.ts +93 -0
  42. package/dist/core/store.d.ts.map +1 -0
  43. package/dist/core/store.js +563 -0
  44. package/dist/core/store.js.map +1 -0
  45. package/dist/core/types.d.ts +186 -0
  46. package/dist/core/types.d.ts.map +1 -0
  47. package/dist/core/types.js +2 -0
  48. package/dist/core/types.js.map +1 -0
  49. package/dist/core/usage-ranges.d.ts +46 -0
  50. package/dist/core/usage-ranges.d.ts.map +1 -0
  51. package/dist/core/usage-ranges.js +72 -0
  52. package/dist/core/usage-ranges.js.map +1 -0
  53. package/dist/core/usage.d.ts +100 -0
  54. package/dist/core/usage.d.ts.map +1 -0
  55. package/dist/core/usage.js +373 -0
  56. package/dist/core/usage.js.map +1 -0
  57. package/dist/core/validate.d.ts +8 -0
  58. package/dist/core/validate.d.ts.map +1 -0
  59. package/dist/core/validate.js +167 -0
  60. package/dist/core/validate.js.map +1 -0
  61. package/dist/core/windows.d.ts +24 -0
  62. package/dist/core/windows.d.ts.map +1 -0
  63. package/dist/core/windows.js +43 -0
  64. package/dist/core/windows.js.map +1 -0
  65. package/dist/index.d.ts +2 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/lib/accounting-format.d.ts +2 -52
  69. package/dist/lib/accounting-format.d.ts.map +1 -1
  70. package/dist/lib/accounting-format.js +6 -255
  71. package/dist/lib/accounting-format.js.map +1 -1
  72. package/dist/lib/alibaba-auth.d.ts +14 -21
  73. package/dist/lib/alibaba-auth.d.ts.map +1 -1
  74. package/dist/lib/alibaba-auth.js +36 -149
  75. package/dist/lib/alibaba-auth.js.map +1 -1
  76. package/dist/lib/alibaba-coding-plan-local-quota.d.ts +1 -6
  77. package/dist/lib/alibaba-coding-plan-local-quota.d.ts.map +1 -1
  78. package/dist/lib/alibaba-coding-plan-local-quota.js +1 -1
  79. package/dist/lib/alibaba-coding-plan-local-quota.js.map +1 -1
  80. package/dist/lib/alibaba-token-plan.d.ts +18 -27
  81. package/dist/lib/alibaba-token-plan.d.ts.map +1 -1
  82. package/dist/lib/alibaba-token-plan.js +121 -285
  83. package/dist/lib/alibaba-token-plan.js.map +1 -1
  84. package/dist/lib/anthropic-auth.d.ts +3 -5
  85. package/dist/lib/anthropic-auth.d.ts.map +1 -1
  86. package/dist/lib/anthropic-auth.js +6 -9
  87. package/dist/lib/anthropic-auth.js.map +1 -1
  88. package/dist/lib/anthropic.d.ts +12 -37
  89. package/dist/lib/anthropic.d.ts.map +1 -1
  90. package/dist/lib/anthropic.js +348 -698
  91. package/dist/lib/anthropic.js.map +1 -1
  92. package/dist/lib/api-key-resolver.d.ts +165 -192
  93. package/dist/lib/api-key-resolver.d.ts.map +1 -1
  94. package/dist/lib/api-key-resolver.js +208 -234
  95. package/dist/lib/api-key-resolver.js.map +1 -1
  96. package/dist/lib/atomic-json.d.ts +4 -1
  97. package/dist/lib/atomic-json.d.ts.map +1 -1
  98. package/dist/lib/atomic-json.js +2 -3
  99. package/dist/lib/atomic-json.js.map +1 -1
  100. package/dist/lib/calendar-date.d.ts +15 -0
  101. package/dist/lib/calendar-date.d.ts.map +1 -0
  102. package/dist/lib/calendar-date.js +21 -0
  103. package/dist/lib/calendar-date.js.map +1 -0
  104. package/dist/lib/chutes.d.ts +0 -1
  105. package/dist/lib/chutes.d.ts.map +1 -1
  106. package/dist/lib/chutes.js +2 -4
  107. package/dist/lib/chutes.js.map +1 -1
  108. package/dist/lib/cli-reports.d.ts +15 -11
  109. package/dist/lib/cli-reports.d.ts.map +1 -1
  110. package/dist/lib/cli-reports.js +34 -107
  111. package/dist/lib/cli-reports.js.map +1 -1
  112. package/dist/lib/cli-show.d.ts +9 -22
  113. package/dist/lib/cli-show.d.ts.map +1 -1
  114. package/dist/lib/cli-show.js +104 -75
  115. package/dist/lib/cli-show.js.map +1 -1
  116. package/dist/lib/config-file-utils.d.ts +3 -15
  117. package/dist/lib/config-file-utils.d.ts.map +1 -1
  118. package/dist/lib/config-file-utils.js +4 -63
  119. package/dist/lib/config-file-utils.js.map +1 -1
  120. package/dist/lib/config-write-target.d.ts +4 -7
  121. package/dist/lib/config-write-target.d.ts.map +1 -1
  122. package/dist/lib/config-write-target.js +4 -18
  123. package/dist/lib/config-write-target.js.map +1 -1
  124. package/dist/lib/copilot.d.ts +29 -20
  125. package/dist/lib/copilot.d.ts.map +1 -1
  126. package/dist/lib/copilot.js +392 -649
  127. package/dist/lib/copilot.js.map +1 -1
  128. package/dist/lib/cursor-detection.d.ts +3 -3
  129. package/dist/lib/cursor-detection.d.ts.map +1 -1
  130. package/dist/lib/cursor-detection.js +44 -88
  131. package/dist/lib/cursor-detection.js.map +1 -1
  132. package/dist/lib/cursor-pricing.d.ts +71 -8
  133. package/dist/lib/cursor-pricing.d.ts.map +1 -1
  134. package/dist/lib/cursor-pricing.js +33 -125
  135. package/dist/lib/cursor-pricing.js.map +1 -1
  136. package/dist/lib/cursor-usage.d.ts +6 -4
  137. package/dist/lib/cursor-usage.d.ts.map +1 -1
  138. package/dist/lib/cursor-usage.js +27 -40
  139. package/dist/lib/cursor-usage.js.map +1 -1
  140. package/dist/lib/deepseek.d.ts +9 -17
  141. package/dist/lib/deepseek.d.ts.map +1 -1
  142. package/dist/lib/deepseek.js +24 -54
  143. package/dist/lib/deepseek.js.map +1 -1
  144. package/dist/lib/display-sanitize.d.ts +0 -8
  145. package/dist/lib/display-sanitize.d.ts.map +1 -1
  146. package/dist/lib/display-sanitize.js +0 -139
  147. package/dist/lib/display-sanitize.js.map +1 -1
  148. package/dist/lib/entries.d.ts +13 -239
  149. package/dist/lib/entries.d.ts.map +1 -1
  150. package/dist/lib/entries.js +1 -46
  151. package/dist/lib/entries.js.map +1 -1
  152. package/dist/lib/file-lock.d.ts +23 -0
  153. package/dist/lib/file-lock.d.ts.map +1 -0
  154. package/dist/lib/file-lock.js +122 -0
  155. package/dist/lib/file-lock.js.map +1 -0
  156. package/dist/lib/format-utils.d.ts +2 -82
  157. package/dist/lib/format-utils.d.ts.map +1 -1
  158. package/dist/lib/format-utils.js +2 -191
  159. package/dist/lib/format-utils.js.map +1 -1
  160. package/dist/lib/glm-coding-plan.d.ts +6 -5
  161. package/dist/lib/glm-coding-plan.d.ts.map +1 -1
  162. package/dist/lib/glm-coding-plan.js +19 -1
  163. package/dist/lib/glm-coding-plan.js.map +1 -1
  164. package/dist/lib/google-agy.d.ts +8 -40
  165. package/dist/lib/google-agy.d.ts.map +1 -1
  166. package/dist/lib/google-agy.js +88 -519
  167. package/dist/lib/google-agy.js.map +1 -1
  168. package/dist/lib/google-companion-credentials.d.ts +9 -40
  169. package/dist/lib/google-companion-credentials.d.ts.map +1 -1
  170. package/dist/lib/google-companion-credentials.js +167 -224
  171. package/dist/lib/google-companion-credentials.js.map +1 -1
  172. package/dist/lib/google-gemini-cli.d.ts +5 -38
  173. package/dist/lib/google-gemini-cli.d.ts.map +1 -1
  174. package/dist/lib/google-gemini-cli.js +71 -442
  175. package/dist/lib/google-gemini-cli.js.map +1 -1
  176. package/dist/lib/google-oauth-quota.d.ts +76 -0
  177. package/dist/lib/google-oauth-quota.d.ts.map +1 -0
  178. package/dist/lib/google-oauth-quota.js +297 -0
  179. package/dist/lib/google-oauth-quota.js.map +1 -0
  180. package/dist/lib/google-token-cache.d.ts +3 -5
  181. package/dist/lib/google-token-cache.d.ts.map +1 -1
  182. package/dist/lib/google-token-cache.js +2 -14
  183. package/dist/lib/google-token-cache.js.map +1 -1
  184. package/dist/lib/home-dir-display.d.ts.map +1 -1
  185. package/dist/lib/home-dir-display.js +21 -39
  186. package/dist/lib/home-dir-display.js.map +1 -1
  187. package/dist/lib/http.d.ts +4 -1
  188. package/dist/lib/http.d.ts.map +1 -1
  189. package/dist/lib/http.js +2 -1
  190. package/dist/lib/http.js.map +1 -1
  191. package/dist/lib/json-guards.d.ts +11 -0
  192. package/dist/lib/json-guards.d.ts.map +1 -0
  193. package/dist/lib/json-guards.js +25 -0
  194. package/dist/lib/json-guards.js.map +1 -0
  195. package/dist/lib/kilo.d.ts +0 -2
  196. package/dist/lib/kilo.d.ts.map +1 -1
  197. package/dist/lib/kilo.js +33 -116
  198. package/dist/lib/kilo.js.map +1 -1
  199. package/dist/lib/kimi-endpoints.d.ts +2 -2
  200. package/dist/lib/kimi-endpoints.d.ts.map +1 -1
  201. package/dist/lib/kimi-endpoints.js +1 -1
  202. package/dist/lib/kimi-endpoints.js.map +1 -1
  203. package/dist/lib/kimi.d.ts.map +1 -1
  204. package/dist/lib/kimi.js +40 -86
  205. package/dist/lib/kimi.js.map +1 -1
  206. package/dist/lib/maintainer-announcements.d.ts +4 -17
  207. package/dist/lib/maintainer-announcements.d.ts.map +1 -1
  208. package/dist/lib/maintainer-announcements.js +7 -44
  209. package/dist/lib/maintainer-announcements.js.map +1 -1
  210. package/dist/lib/maintainer-home-notice.d.ts +19 -0
  211. package/dist/lib/maintainer-home-notice.d.ts.map +1 -0
  212. package/dist/lib/maintainer-home-notice.js +92 -0
  213. package/dist/lib/maintainer-home-notice.js.map +1 -0
  214. package/dist/lib/mimo-config.d.ts +6 -9
  215. package/dist/lib/mimo-config.d.ts.map +1 -1
  216. package/dist/lib/mimo-config.js +43 -74
  217. package/dist/lib/mimo-config.js.map +1 -1
  218. package/dist/lib/mimo.d.ts +2 -5
  219. package/dist/lib/mimo.d.ts.map +1 -1
  220. package/dist/lib/mimo.js +57 -109
  221. package/dist/lib/mimo.js.map +1 -1
  222. package/dist/lib/minimax-endpoints.d.ts +2 -2
  223. package/dist/lib/minimax-endpoints.d.ts.map +1 -1
  224. package/dist/lib/minimax-endpoints.js +1 -1
  225. package/dist/lib/minimax-endpoints.js.map +1 -1
  226. package/dist/lib/modelsdev-pricing.d.ts +22 -16
  227. package/dist/lib/modelsdev-pricing.d.ts.map +1 -1
  228. package/dist/lib/modelsdev-pricing.js +279 -560
  229. package/dist/lib/modelsdev-pricing.js.map +1 -1
  230. package/dist/lib/nanogpt.d.ts +6 -6
  231. package/dist/lib/nanogpt.d.ts.map +1 -1
  232. package/dist/lib/nanogpt.js +19 -72
  233. package/dist/lib/nanogpt.js.map +1 -1
  234. package/dist/lib/ollama-cloud.d.ts +3 -6
  235. package/dist/lib/ollama-cloud.d.ts.map +1 -1
  236. package/dist/lib/ollama-cloud.js +26 -37
  237. package/dist/lib/ollama-cloud.js.map +1 -1
  238. package/dist/lib/openai.d.ts +18 -29
  239. package/dist/lib/openai.d.ts.map +1 -1
  240. package/dist/lib/openai.js +108 -182
  241. package/dist/lib/openai.js.map +1 -1
  242. package/dist/lib/opencode-auth-sqlite.d.ts.map +1 -1
  243. package/dist/lib/opencode-auth-sqlite.js +22 -23
  244. package/dist/lib/opencode-auth-sqlite.js.map +1 -1
  245. package/dist/lib/opencode-auth.d.ts +17 -11
  246. package/dist/lib/opencode-auth.d.ts.map +1 -1
  247. package/dist/lib/opencode-auth.js +39 -46
  248. package/dist/lib/opencode-auth.js.map +1 -1
  249. package/dist/lib/opencode-config-editor.d.ts +3 -34
  250. package/dist/lib/opencode-config-editor.d.ts.map +1 -1
  251. package/dist/lib/opencode-config-editor.js +23 -142
  252. package/dist/lib/opencode-config-editor.js.map +1 -1
  253. package/dist/lib/opencode-config-providers.d.ts +4 -3
  254. package/dist/lib/opencode-config-providers.d.ts.map +1 -1
  255. package/dist/lib/opencode-config-providers.js +7 -11
  256. package/dist/lib/opencode-config-providers.js.map +1 -1
  257. package/dist/lib/opencode-config-read.d.ts +2 -1
  258. package/dist/lib/opencode-config-read.d.ts.map +1 -1
  259. package/dist/lib/opencode-config-read.js +3 -2
  260. package/dist/lib/opencode-config-read.js.map +1 -1
  261. package/dist/lib/opencode-console-auth.d.ts +2 -3
  262. package/dist/lib/opencode-console-auth.d.ts.map +1 -1
  263. package/dist/lib/opencode-console-auth.js +2 -2
  264. package/dist/lib/opencode-console-auth.js.map +1 -1
  265. package/dist/lib/opencode-go.d.ts.map +1 -1
  266. package/dist/lib/opencode-go.js +51 -79
  267. package/dist/lib/opencode-go.js.map +1 -1
  268. package/dist/lib/opencode-storage.d.ts +18 -3
  269. package/dist/lib/opencode-storage.d.ts.map +1 -1
  270. package/dist/lib/opencode-storage.js +134 -2
  271. package/dist/lib/opencode-storage.js.map +1 -1
  272. package/dist/lib/opencode-zen.d.ts +15 -12
  273. package/dist/lib/opencode-zen.d.ts.map +1 -1
  274. package/dist/lib/opencode-zen.js +139 -147
  275. package/dist/lib/opencode-zen.js.map +1 -1
  276. package/dist/lib/openrouter.d.ts.map +1 -1
  277. package/dist/lib/openrouter.js +1 -13
  278. package/dist/lib/openrouter.js.map +1 -1
  279. package/dist/lib/pricing-key.d.ts +48 -0
  280. package/dist/lib/pricing-key.d.ts.map +1 -0
  281. package/dist/lib/pricing-key.js +371 -0
  282. package/dist/lib/pricing-key.js.map +1 -0
  283. package/dist/lib/provider-metadata.d.ts +16 -20
  284. package/dist/lib/provider-metadata.d.ts.map +1 -1
  285. package/dist/lib/provider-metadata.js +69 -69
  286. package/dist/lib/provider-metadata.js.map +1 -1
  287. package/dist/lib/provider-model-matching.d.ts +2 -1
  288. package/dist/lib/provider-model-matching.d.ts.map +1 -1
  289. package/dist/lib/provider-registration.d.ts +1 -177
  290. package/dist/lib/provider-registration.d.ts.map +1 -1
  291. package/dist/lib/provider-registration.js +1 -163
  292. package/dist/lib/provider-registration.js.map +1 -1
  293. package/dist/lib/quota-dialog-commands.d.ts +87 -53
  294. package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
  295. package/dist/lib/quota-dialog-commands.js +259 -519
  296. package/dist/lib/quota-dialog-commands.js.map +1 -1
  297. package/dist/lib/quota-export-types.d.ts +29 -23
  298. package/dist/lib/quota-export-types.d.ts.map +1 -1
  299. package/dist/lib/quota-export.d.ts +16 -26
  300. package/dist/lib/quota-export.d.ts.map +1 -1
  301. package/dist/lib/quota-export.js +105 -147
  302. package/dist/lib/quota-export.js.map +1 -1
  303. package/dist/lib/quota-providers-local.d.ts +12 -8
  304. package/dist/lib/quota-providers-local.d.ts.map +1 -1
  305. package/dist/lib/quota-providers-local.js +150 -223
  306. package/dist/lib/quota-providers-local.js.map +1 -1
  307. package/dist/lib/quota-providers-remote.d.ts +3 -8
  308. package/dist/lib/quota-providers-remote.d.ts.map +1 -1
  309. package/dist/lib/quota-providers-remote.js +309 -449
  310. package/dist/lib/quota-providers-remote.js.map +1 -1
  311. package/dist/lib/quota-providers.d.ts +57 -15
  312. package/dist/lib/quota-providers.d.ts.map +1 -1
  313. package/dist/lib/quota-providers.js +157 -64
  314. package/dist/lib/quota-providers.js.map +1 -1
  315. package/dist/lib/quota-report-message.d.ts +23 -10
  316. package/dist/lib/quota-report-message.d.ts.map +1 -1
  317. package/dist/lib/quota-report-message.js +37 -13
  318. package/dist/lib/quota-report-message.js.map +1 -1
  319. package/dist/lib/quota-retry-wait.d.ts +14 -6
  320. package/dist/lib/quota-retry-wait.d.ts.map +1 -1
  321. package/dist/lib/quota-retry-wait.js +37 -39
  322. package/dist/lib/quota-retry-wait.js.map +1 -1
  323. package/dist/lib/quota-status.d.ts +50 -33
  324. package/dist/lib/quota-status.d.ts.map +1 -1
  325. package/dist/lib/quota-status.js +1113 -773
  326. package/dist/lib/quota-status.js.map +1 -1
  327. package/dist/lib/quota-telemetry.d.ts +7 -14
  328. package/dist/lib/quota-telemetry.d.ts.map +1 -1
  329. package/dist/lib/quota-telemetry.js +46 -97
  330. package/dist/lib/quota-telemetry.js.map +1 -1
  331. package/dist/lib/report-document.d.ts +5 -65
  332. package/dist/lib/report-document.d.ts.map +1 -1
  333. package/dist/lib/report-document.js +14 -167
  334. package/dist/lib/report-document.js.map +1 -1
  335. package/dist/lib/resolved-auth-identity.d.ts +1 -2
  336. package/dist/lib/resolved-auth-identity.d.ts.map +1 -1
  337. package/dist/lib/resolved-auth-identity.js +0 -4
  338. package/dist/lib/resolved-auth-identity.js.map +1 -1
  339. package/dist/lib/session-tokens.d.ts +19 -19
  340. package/dist/lib/session-tokens.d.ts.map +1 -1
  341. package/dist/lib/session-tokens.js +58 -44
  342. package/dist/lib/session-tokens.js.map +1 -1
  343. package/dist/lib/synthetic.d.ts +0 -1
  344. package/dist/lib/synthetic.d.ts.map +1 -1
  345. package/dist/lib/synthetic.js +43 -94
  346. package/dist/lib/synthetic.js.map +1 -1
  347. package/dist/lib/token-buckets.d.ts +0 -1
  348. package/dist/lib/token-buckets.d.ts.map +1 -1
  349. package/dist/lib/token-buckets.js +0 -3
  350. package/dist/lib/token-buckets.js.map +1 -1
  351. package/dist/lib/token-cost.d.ts +2 -1
  352. package/dist/lib/token-cost.d.ts.map +1 -1
  353. package/dist/lib/types.d.ts +25 -333
  354. package/dist/lib/types.d.ts.map +1 -1
  355. package/dist/lib/types.js +2 -70
  356. package/dist/lib/types.js.map +1 -1
  357. package/dist/lib/xai.d.ts +6 -6
  358. package/dist/lib/xai.d.ts.map +1 -1
  359. package/dist/lib/xai.js +51 -90
  360. package/dist/lib/xai.js.map +1 -1
  361. package/dist/plugin.d.ts +6 -3
  362. package/dist/plugin.d.ts.map +1 -1
  363. package/dist/plugin.js +315 -90
  364. package/dist/plugin.js.map +1 -1
  365. package/dist/providers/alibaba-coding-plan.d.ts +4 -0
  366. package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
  367. package/dist/providers/alibaba-coding-plan.js +47 -77
  368. package/dist/providers/alibaba-coding-plan.js.map +1 -1
  369. package/dist/providers/alibaba-token-plan.d.ts.map +1 -1
  370. package/dist/providers/alibaba-token-plan.js +34 -46
  371. package/dist/providers/alibaba-token-plan.js.map +1 -1
  372. package/dist/providers/anthropic.d.ts +2 -4
  373. package/dist/providers/anthropic.d.ts.map +1 -1
  374. package/dist/providers/anthropic.js +80 -162
  375. package/dist/providers/anthropic.js.map +1 -1
  376. package/dist/providers/cache-policies.d.ts +0 -2
  377. package/dist/providers/cache-policies.d.ts.map +1 -1
  378. package/dist/providers/cache-policies.js +38 -88
  379. package/dist/providers/cache-policies.js.map +1 -1
  380. package/dist/providers/chutes.d.ts +0 -3
  381. package/dist/providers/chutes.d.ts.map +1 -1
  382. package/dist/providers/chutes.js +16 -28
  383. package/dist/providers/chutes.js.map +1 -1
  384. package/dist/providers/contract.d.ts +128 -0
  385. package/dist/providers/contract.d.ts.map +1 -0
  386. package/dist/providers/contract.js +101 -0
  387. package/dist/providers/contract.js.map +1 -0
  388. package/dist/providers/copilot.d.ts.map +1 -1
  389. package/dist/providers/copilot.js +171 -175
  390. package/dist/providers/copilot.js.map +1 -1
  391. package/dist/providers/cursor.d.ts.map +1 -1
  392. package/dist/providers/cursor.js +56 -109
  393. package/dist/providers/cursor.js.map +1 -1
  394. package/dist/providers/deepseek.d.ts +1 -6
  395. package/dist/providers/deepseek.d.ts.map +1 -1
  396. package/dist/providers/deepseek.js +46 -81
  397. package/dist/providers/deepseek.js.map +1 -1
  398. package/dist/providers/glm-coding-plan.d.ts +8 -0
  399. package/dist/providers/glm-coding-plan.d.ts.map +1 -0
  400. package/dist/providers/glm-coding-plan.js +106 -0
  401. package/dist/providers/glm-coding-plan.js.map +1 -0
  402. package/dist/providers/google-agy.d.ts +0 -1
  403. package/dist/providers/google-agy.d.ts.map +1 -1
  404. package/dist/providers/google-agy.js +41 -192
  405. package/dist/providers/google-agy.js.map +1 -1
  406. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  407. package/dist/providers/google-gemini-cli.js +51 -151
  408. package/dist/providers/google-gemini-cli.js.map +1 -1
  409. package/dist/providers/google-oauth-provider.d.ts +39 -0
  410. package/dist/providers/google-oauth-provider.d.ts.map +1 -0
  411. package/dist/providers/google-oauth-provider.js +161 -0
  412. package/dist/providers/google-oauth-provider.js.map +1 -0
  413. package/dist/providers/kilo.d.ts +0 -3
  414. package/dist/providers/kilo.d.ts.map +1 -1
  415. package/dist/providers/kilo.js +69 -123
  416. package/dist/providers/kilo.js.map +1 -1
  417. package/dist/providers/kimi-code.d.ts +5 -0
  418. package/dist/providers/kimi-code.d.ts.map +1 -1
  419. package/dist/providers/kimi-code.js +91 -136
  420. package/dist/providers/kimi-code.js.map +1 -1
  421. package/dist/providers/mimo.d.ts.map +1 -1
  422. package/dist/providers/mimo.js +55 -94
  423. package/dist/providers/mimo.js.map +1 -1
  424. package/dist/providers/minimax-coding-plan.d.ts +2 -23
  425. package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
  426. package/dist/providers/minimax-coding-plan.js +161 -277
  427. package/dist/providers/minimax-coding-plan.js.map +1 -1
  428. package/dist/providers/nanogpt.d.ts +0 -3
  429. package/dist/providers/nanogpt.d.ts.map +1 -1
  430. package/dist/providers/nanogpt.js +61 -95
  431. package/dist/providers/nanogpt.js.map +1 -1
  432. package/dist/providers/ollama-cloud.d.ts +0 -6
  433. package/dist/providers/ollama-cloud.d.ts.map +1 -1
  434. package/dist/providers/ollama-cloud.js +86 -112
  435. package/dist/providers/ollama-cloud.js.map +1 -1
  436. package/dist/providers/openai.d.ts.map +1 -1
  437. package/dist/providers/openai.js +144 -166
  438. package/dist/providers/openai.js.map +1 -1
  439. package/dist/providers/opencode-go.d.ts.map +1 -1
  440. package/dist/providers/opencode-go.js +157 -199
  441. package/dist/providers/opencode-go.js.map +1 -1
  442. package/dist/providers/opencode-zen.d.ts.map +1 -1
  443. package/dist/providers/opencode-zen.js +100 -150
  444. package/dist/providers/opencode-zen.js.map +1 -1
  445. package/dist/providers/openrouter.d.ts +0 -3
  446. package/dist/providers/openrouter.d.ts.map +1 -1
  447. package/dist/providers/openrouter.js +26 -13
  448. package/dist/providers/openrouter.js.map +1 -1
  449. package/dist/providers/quota-providers.d.ts +7 -3
  450. package/dist/providers/quota-providers.d.ts.map +1 -1
  451. package/dist/providers/quota-providers.js +111 -217
  452. package/dist/providers/quota-providers.js.map +1 -1
  453. package/dist/providers/registry.d.ts.map +1 -1
  454. package/dist/providers/registry.js +1 -2
  455. package/dist/providers/registry.js.map +1 -1
  456. package/dist/providers/result-helpers.d.ts +10 -37
  457. package/dist/providers/result-helpers.d.ts.map +1 -1
  458. package/dist/providers/result-helpers.js +23 -56
  459. package/dist/providers/result-helpers.js.map +1 -1
  460. package/dist/providers/synthetic.d.ts +0 -3
  461. package/dist/providers/synthetic.d.ts.map +1 -1
  462. package/dist/providers/synthetic.js +16 -58
  463. package/dist/providers/synthetic.js.map +1 -1
  464. package/dist/providers/xai.d.ts +2 -1
  465. package/dist/providers/xai.d.ts.map +1 -1
  466. package/dist/providers/xai.js +49 -71
  467. package/dist/providers/xai.js.map +1 -1
  468. package/dist/rpc.d.ts +110 -38
  469. package/dist/rpc.d.ts.map +1 -1
  470. package/dist/rpc.js +125 -37
  471. package/dist/rpc.js.map +1 -1
  472. package/dist/settings/convert.d.ts +60 -0
  473. package/dist/settings/convert.d.ts.map +1 -0
  474. package/dist/settings/convert.js +473 -0
  475. package/dist/settings/convert.js.map +1 -0
  476. package/dist/settings/file.d.ts +89 -0
  477. package/dist/settings/file.d.ts.map +1 -0
  478. package/dist/settings/file.js +452 -0
  479. package/dist/settings/file.js.map +1 -0
  480. package/dist/settings/index.d.ts +10 -0
  481. package/dist/settings/index.d.ts.map +1 -0
  482. package/dist/settings/index.js +3 -0
  483. package/dist/settings/index.js.map +1 -0
  484. package/dist/settings/schema.d.ts +607 -0
  485. package/dist/settings/schema.d.ts.map +1 -0
  486. package/dist/settings/schema.js +479 -0
  487. package/dist/settings/schema.js.map +1 -0
  488. package/dist/tui/client.d.ts +86 -0
  489. package/dist/tui/client.d.ts.map +1 -0
  490. package/dist/tui/client.js +229 -0
  491. package/dist/tui/client.js.map +1 -0
  492. package/dist/tui/display.d.ts +127 -0
  493. package/dist/tui/display.d.ts.map +1 -0
  494. package/dist/tui/display.js +474 -0
  495. package/dist/tui/display.js.map +1 -0
  496. package/dist/tui/index.d.ts +21 -0
  497. package/dist/tui/index.d.ts.map +1 -0
  498. package/dist/tui/index.js +305 -0
  499. package/dist/tui/server-settings.d.ts +43 -0
  500. package/dist/tui/server-settings.d.ts.map +1 -0
  501. package/dist/tui/server-settings.js +233 -0
  502. package/dist/tui/server-settings.js.map +1 -0
  503. package/dist/tui/sidebar.d.ts +41 -0
  504. package/dist/tui/sidebar.d.ts.map +1 -0
  505. package/dist/tui/sidebar.js +148 -0
  506. package/dist/tui/status-line.d.ts +14 -0
  507. package/dist/tui/status-line.d.ts.map +1 -0
  508. package/dist/tui/status-line.js +225 -0
  509. package/dist/tui/theme.d.ts +41 -0
  510. package/dist/tui/theme.d.ts.map +1 -0
  511. package/dist/tui/theme.js +52 -0
  512. package/dist/tui/theme.js.map +1 -0
  513. package/dist/tui/toast-colors.d.ts +37 -0
  514. package/dist/tui/toast-colors.d.ts.map +1 -0
  515. package/dist/tui/toast-colors.js +77 -0
  516. package/dist/tui/toasts.d.ts +59 -0
  517. package/dist/tui/toasts.d.ts.map +1 -0
  518. package/dist/tui/toasts.js +148 -0
  519. package/dist/tui/toasts.js.map +1 -0
  520. package/dist/tui/window/drag.d.ts +26 -0
  521. package/dist/tui/window/drag.d.ts.map +1 -0
  522. package/dist/tui/window/drag.js +80 -0
  523. package/dist/tui/window/drag.js.map +1 -0
  524. package/dist/tui/window/limits.d.ts +15 -0
  525. package/dist/tui/window/limits.d.ts.map +1 -0
  526. package/dist/tui/window/limits.js +227 -0
  527. package/dist/tui/window/limits.js.map +1 -0
  528. package/dist/tui/window/rail.d.ts +21 -0
  529. package/dist/tui/window/rail.d.ts.map +1 -0
  530. package/dist/tui/window/rail.js +81 -0
  531. package/dist/tui/window/settings.d.ts +164 -0
  532. package/dist/tui/window/settings.d.ts.map +1 -0
  533. package/dist/tui/window/settings.js +1679 -0
  534. package/dist/tui/window/shell.d.ts +108 -0
  535. package/dist/tui/window/shell.d.ts.map +1 -0
  536. package/dist/tui/window/shell.js +1003 -0
  537. package/dist/tui/window/usage.d.ts +75 -0
  538. package/dist/tui/window/usage.d.ts.map +1 -0
  539. package/dist/tui/window/usage.js +928 -0
  540. package/dist/tui/window/views.d.ts +61 -0
  541. package/dist/tui/window/views.d.ts.map +1 -0
  542. package/dist/tui/window/views.js +242 -0
  543. package/dist/tui.d.ts +1 -5
  544. package/dist/tui.js +1 -894
  545. package/dist/view/columns.d.ts +15 -0
  546. package/dist/view/columns.d.ts.map +1 -0
  547. package/dist/view/columns.js +48 -0
  548. package/dist/view/columns.js.map +1 -0
  549. package/dist/view/format.d.ts +82 -0
  550. package/dist/view/format.d.ts.map +1 -0
  551. package/dist/view/format.js +201 -0
  552. package/dist/view/format.js.map +1 -0
  553. package/dist/view/quick-look.d.ts +28 -0
  554. package/dist/view/quick-look.d.ts.map +1 -0
  555. package/dist/view/quick-look.js +150 -0
  556. package/dist/view/quick-look.js.map +1 -0
  557. package/dist/view/select.d.ts +67 -0
  558. package/dist/view/select.d.ts.map +1 -0
  559. package/dist/view/select.js +87 -0
  560. package/dist/view/select.js.map +1 -0
  561. package/dist/view/text.d.ts +153 -0
  562. package/dist/view/text.d.ts.map +1 -0
  563. package/dist/view/text.js +642 -0
  564. package/dist/view/text.js.map +1 -0
  565. package/dist/view/usage.d.ts +86 -0
  566. package/dist/view/usage.d.ts.map +1 -0
  567. package/dist/view/usage.js +724 -0
  568. package/dist/view/usage.js.map +1 -0
  569. package/package.json +4 -6
  570. package/dist/lib/chutes-config.d.ts +0 -15
  571. package/dist/lib/chutes-config.d.ts.map +0 -1
  572. package/dist/lib/chutes-config.js +0 -28
  573. package/dist/lib/chutes-config.js.map +0 -1
  574. package/dist/lib/cli-status.d.ts +0 -8
  575. package/dist/lib/cli-status.d.ts.map +0 -1
  576. package/dist/lib/cli-status.js +0 -98
  577. package/dist/lib/cli-status.js.map +0 -1
  578. package/dist/lib/command-parsing.d.ts +0 -43
  579. package/dist/lib/command-parsing.d.ts.map +0 -1
  580. package/dist/lib/command-parsing.js +0 -103
  581. package/dist/lib/command-parsing.js.map +0 -1
  582. package/dist/lib/config.d.ts +0 -63
  583. package/dist/lib/config.d.ts.map +0 -1
  584. package/dist/lib/config.js +0 -1092
  585. package/dist/lib/config.js.map +0 -1
  586. package/dist/lib/deepseek-auth.d.ts +0 -15
  587. package/dist/lib/deepseek-auth.d.ts.map +0 -1
  588. package/dist/lib/deepseek-auth.js +0 -28
  589. package/dist/lib/deepseek-auth.js.map +0 -1
  590. package/dist/lib/format.d.ts +0 -25
  591. package/dist/lib/format.d.ts.map +0 -1
  592. package/dist/lib/format.js +0 -300
  593. package/dist/lib/format.js.map +0 -1
  594. package/dist/lib/google-agy-companion.d.ts +0 -8
  595. package/dist/lib/google-agy-companion.d.ts.map +0 -1
  596. package/dist/lib/google-agy-companion.js +0 -64
  597. package/dist/lib/google-agy-companion.js.map +0 -1
  598. package/dist/lib/google-gemini-cli-companion.d.ts +0 -8
  599. package/dist/lib/google-gemini-cli-companion.d.ts.map +0 -1
  600. package/dist/lib/google-gemini-cli-companion.js +0 -64
  601. package/dist/lib/google-gemini-cli-companion.js.map +0 -1
  602. package/dist/lib/grouped-entry-normalization.d.ts +0 -12
  603. package/dist/lib/grouped-entry-normalization.d.ts.map +0 -1
  604. package/dist/lib/grouped-entry-normalization.js +0 -124
  605. package/dist/lib/grouped-entry-normalization.js.map +0 -1
  606. package/dist/lib/grouped-header-format.d.ts +0 -5
  607. package/dist/lib/grouped-header-format.d.ts.map +0 -1
  608. package/dist/lib/grouped-header-format.js +0 -16
  609. package/dist/lib/grouped-header-format.js.map +0 -1
  610. package/dist/lib/init-installer.d.ts +0 -123
  611. package/dist/lib/init-installer.d.ts.map +0 -1
  612. package/dist/lib/init-installer.js +0 -1111
  613. package/dist/lib/init-installer.js.map +0 -1
  614. package/dist/lib/jsonc.d.ts +0 -17
  615. package/dist/lib/jsonc.d.ts.map +0 -1
  616. package/dist/lib/jsonc.js +0 -23
  617. package/dist/lib/jsonc.js.map +0 -1
  618. package/dist/lib/kilo-config.d.ts +0 -15
  619. package/dist/lib/kilo-config.d.ts.map +0 -1
  620. package/dist/lib/kilo-config.js +0 -27
  621. package/dist/lib/kilo-config.js.map +0 -1
  622. package/dist/lib/kimi-auth.d.ts +0 -49
  623. package/dist/lib/kimi-auth.d.ts.map +0 -1
  624. package/dist/lib/kimi-auth.js +0 -82
  625. package/dist/lib/kimi-auth.js.map +0 -1
  626. package/dist/lib/markdown-table.d.ts +0 -51
  627. package/dist/lib/markdown-table.d.ts.map +0 -1
  628. package/dist/lib/markdown-table.js +0 -179
  629. package/dist/lib/markdown-table.js.map +0 -1
  630. package/dist/lib/minimax-auth.d.ts +0 -62
  631. package/dist/lib/minimax-auth.d.ts.map +0 -1
  632. package/dist/lib/minimax-auth.js +0 -206
  633. package/dist/lib/minimax-auth.js.map +0 -1
  634. package/dist/lib/nanogpt-config.d.ts +0 -15
  635. package/dist/lib/nanogpt-config.d.ts.map +0 -1
  636. package/dist/lib/nanogpt-config.js +0 -31
  637. package/dist/lib/nanogpt-config.js.map +0 -1
  638. package/dist/lib/ollama-cloud-config.d.ts +0 -15
  639. package/dist/lib/ollama-cloud-config.d.ts.map +0 -1
  640. package/dist/lib/ollama-cloud-config.js +0 -27
  641. package/dist/lib/ollama-cloud-config.js.map +0 -1
  642. package/dist/lib/opencode-go-auth.d.ts +0 -16
  643. package/dist/lib/opencode-go-auth.d.ts.map +0 -1
  644. package/dist/lib/opencode-go-auth.js +0 -42
  645. package/dist/lib/opencode-go-auth.js.map +0 -1
  646. package/dist/lib/opencode-version.d.ts +0 -6
  647. package/dist/lib/opencode-version.d.ts.map +0 -1
  648. package/dist/lib/opencode-version.js +0 -26
  649. package/dist/lib/opencode-version.js.map +0 -1
  650. package/dist/lib/provider-add-command.d.ts +0 -35
  651. package/dist/lib/provider-add-command.d.ts.map +0 -1
  652. package/dist/lib/provider-add-command.js +0 -204
  653. package/dist/lib/provider-add-command.js.map +0 -1
  654. package/dist/lib/provider-add-json-v1-questionnaire.d.ts +0 -32
  655. package/dist/lib/provider-add-json-v1-questionnaire.d.ts.map +0 -1
  656. package/dist/lib/provider-add-json-v1-questionnaire.js +0 -336
  657. package/dist/lib/provider-add-json-v1-questionnaire.js.map +0 -1
  658. package/dist/lib/provider-add.d.ts +0 -21
  659. package/dist/lib/provider-add.d.ts.map +0 -1
  660. package/dist/lib/provider-add.js +0 -219
  661. package/dist/lib/provider-add.js.map +0 -1
  662. package/dist/lib/quota-accounting-projection.d.ts +0 -9
  663. package/dist/lib/quota-accounting-projection.d.ts.map +0 -1
  664. package/dist/lib/quota-accounting-projection.js +0 -254
  665. package/dist/lib/quota-accounting-projection.js.map +0 -1
  666. package/dist/lib/quota-columns.d.ts +0 -38
  667. package/dist/lib/quota-columns.d.ts.map +0 -1
  668. package/dist/lib/quota-columns.js +0 -129
  669. package/dist/lib/quota-columns.js.map +0 -1
  670. package/dist/lib/quota-command-format.d.ts +0 -34
  671. package/dist/lib/quota-command-format.d.ts.map +0 -1
  672. package/dist/lib/quota-command-format.js +0 -240
  673. package/dist/lib/quota-command-format.js.map +0 -1
  674. package/dist/lib/quota-dialog-command-specs.d.ts +0 -63
  675. package/dist/lib/quota-dialog-command-specs.d.ts.map +0 -1
  676. package/dist/lib/quota-dialog-command-specs.js +0 -145
  677. package/dist/lib/quota-dialog-command-specs.js.map +0 -1
  678. package/dist/lib/quota-entry-display.d.ts +0 -7
  679. package/dist/lib/quota-entry-display.d.ts.map +0 -1
  680. package/dist/lib/quota-entry-display.js +0 -59
  681. package/dist/lib/quota-entry-display.js.map +0 -1
  682. package/dist/lib/quota-exhaustion-projection.d.ts +0 -11
  683. package/dist/lib/quota-exhaustion-projection.d.ts.map +0 -1
  684. package/dist/lib/quota-exhaustion-projection.js +0 -105
  685. package/dist/lib/quota-exhaustion-projection.js.map +0 -1
  686. package/dist/lib/quota-format-style.d.ts +0 -21
  687. package/dist/lib/quota-format-style.d.ts.map +0 -1
  688. package/dist/lib/quota-format-style.js +0 -38
  689. package/dist/lib/quota-format-style.js.map +0 -1
  690. package/dist/lib/quota-render-data.d.ts +0 -102
  691. package/dist/lib/quota-render-data.d.ts.map +0 -1
  692. package/dist/lib/quota-render-data.js +0 -419
  693. package/dist/lib/quota-render-data.js.map +0 -1
  694. package/dist/lib/quota-reset-notifications.d.ts +0 -20
  695. package/dist/lib/quota-reset-notifications.d.ts.map +0 -1
  696. package/dist/lib/quota-reset-notifications.js +0 -331
  697. package/dist/lib/quota-reset-notifications.js.map +0 -1
  698. package/dist/lib/quota-runtime-context.d.ts +0 -54
  699. package/dist/lib/quota-runtime-context.d.ts.map +0 -1
  700. package/dist/lib/quota-runtime-context.js +0 -110
  701. package/dist/lib/quota-runtime-context.js.map +0 -1
  702. package/dist/lib/quota-state-codec.d.ts +0 -16
  703. package/dist/lib/quota-state-codec.d.ts.map +0 -1
  704. package/dist/lib/quota-state-codec.js +0 -412
  705. package/dist/lib/quota-state-codec.js.map +0 -1
  706. package/dist/lib/quota-state.d.ts +0 -28
  707. package/dist/lib/quota-state.d.ts.map +0 -1
  708. package/dist/lib/quota-state.js +0 -473
  709. package/dist/lib/quota-state.js.map +0 -1
  710. package/dist/lib/quota-stats-format.d.ts +0 -29
  711. package/dist/lib/quota-stats-format.d.ts.map +0 -1
  712. package/dist/lib/quota-stats-format.js +0 -459
  713. package/dist/lib/quota-stats-format.js.map +0 -1
  714. package/dist/lib/quota-stats.d.ts +0 -126
  715. package/dist/lib/quota-stats.d.ts.map +0 -1
  716. package/dist/lib/quota-stats.js +0 -695
  717. package/dist/lib/quota-stats.js.map +0 -1
  718. package/dist/lib/quota-surface-data.d.ts +0 -21
  719. package/dist/lib/quota-surface-data.d.ts.map +0 -1
  720. package/dist/lib/quota-surface-data.js +0 -362
  721. package/dist/lib/quota-surface-data.js.map +0 -1
  722. package/dist/lib/scoped-update-migration.d.ts +0 -103
  723. package/dist/lib/scoped-update-migration.d.ts.map +0 -1
  724. package/dist/lib/scoped-update-migration.js +0 -344
  725. package/dist/lib/scoped-update-migration.js.map +0 -1
  726. package/dist/lib/scoped-update.d.ts +0 -77
  727. package/dist/lib/scoped-update.d.ts.map +0 -1
  728. package/dist/lib/scoped-update.js +0 -590
  729. package/dist/lib/scoped-update.js.map +0 -1
  730. package/dist/lib/session-tokens-format.d.ts +0 -36
  731. package/dist/lib/session-tokens-format.d.ts.map +0 -1
  732. package/dist/lib/session-tokens-format.js +0 -111
  733. package/dist/lib/session-tokens-format.js.map +0 -1
  734. package/dist/lib/synthetic-config.d.ts +0 -15
  735. package/dist/lib/synthetic-config.d.ts.map +0 -1
  736. package/dist/lib/synthetic-config.js +0 -28
  737. package/dist/lib/synthetic-config.js.map +0 -1
  738. package/dist/lib/toast-format-grouped.d.ts +0 -25
  739. package/dist/lib/toast-format-grouped.d.ts.map +0 -1
  740. package/dist/lib/toast-format-grouped.js +0 -296
  741. package/dist/lib/toast-format-grouped.js.map +0 -1
  742. package/dist/lib/tui-compact-format.d.ts +0 -10
  743. package/dist/lib/tui-compact-format.d.ts.map +0 -1
  744. package/dist/lib/tui-compact-format.js +0 -460
  745. package/dist/lib/tui-compact-format.js.map +0 -1
  746. package/dist/lib/tui-panel-state.d.ts +0 -15
  747. package/dist/lib/tui-panel-state.d.ts.map +0 -1
  748. package/dist/lib/tui-panel-state.js +0 -2
  749. package/dist/lib/tui-panel-state.js.map +0 -1
  750. package/dist/lib/tui-prompt-bar-format.d.ts +0 -25
  751. package/dist/lib/tui-prompt-bar-format.d.ts.map +0 -1
  752. package/dist/lib/tui-prompt-bar-format.js +0 -206
  753. package/dist/lib/tui-prompt-bar-format.js.map +0 -1
  754. package/dist/lib/tui-sidebar-format.d.ts +0 -13
  755. package/dist/lib/tui-sidebar-format.d.ts.map +0 -1
  756. package/dist/lib/tui-sidebar-format.js +0 -34
  757. package/dist/lib/tui-sidebar-format.js.map +0 -1
  758. package/dist/lib/zai-auth.d.ts +0 -15
  759. package/dist/lib/zai-auth.d.ts.map +0 -1
  760. package/dist/lib/zai-auth.js +0 -37
  761. package/dist/lib/zai-auth.js.map +0 -1
  762. package/dist/lib/zai.d.ts +0 -5
  763. package/dist/lib/zai.d.ts.map +0 -1
  764. package/dist/lib/zai.js +0 -14
  765. package/dist/lib/zai.js.map +0 -1
  766. package/dist/lib/zhipu-auth.d.ts +0 -15
  767. package/dist/lib/zhipu-auth.d.ts.map +0 -1
  768. package/dist/lib/zhipu-auth.js +0 -42
  769. package/dist/lib/zhipu-auth.js.map +0 -1
  770. package/dist/lib/zhipu.d.ts +0 -5
  771. package/dist/lib/zhipu.d.ts.map +0 -1
  772. package/dist/lib/zhipu.js +0 -13
  773. package/dist/lib/zhipu.js.map +0 -1
  774. package/dist/providers/glm-coding-plan-provider.d.ts +0 -56
  775. package/dist/providers/glm-coding-plan-provider.d.ts.map +0 -1
  776. package/dist/providers/glm-coding-plan-provider.js +0 -115
  777. package/dist/providers/glm-coding-plan-provider.js.map +0 -1
  778. package/dist/providers/google-account-format.d.ts +0 -7
  779. package/dist/providers/google-account-format.d.ts.map +0 -1
  780. package/dist/providers/google-account-format.js +0 -52
  781. package/dist/providers/google-account-format.js.map +0 -1
  782. package/dist/providers/zai.d.ts +0 -2
  783. package/dist/providers/zai.d.ts.map +0 -1
  784. package/dist/providers/zai.js +0 -24
  785. package/dist/providers/zai.js.map +0 -1
  786. package/dist/providers/zhipu.d.ts +0 -2
  787. package/dist/providers/zhipu.d.ts.map +0 -1
  788. package/dist/providers/zhipu.js +0 -21
  789. package/dist/providers/zhipu.js.map +0 -1
  790. package/dist/tui-v2.d.ts +0 -5
  791. package/dist/tui-v2.d.ts.map +0 -1
  792. package/dist/tui-v2.jsx +0 -624
  793. package/dist/tui-v2.jsx.map +0 -1
  794. package/dist/tui.d.ts.map +0 -1
package/dist/plugin.js CHANGED
@@ -1,20 +1,33 @@
1
1
  /**
2
- * OpenCode V2 server plugin: quota slash commands for every client, a diagnostics tool, and
3
- * the quota RPC that computes the TUI surfaces. Inside OpenCode, logins are read only here,
4
- * through OpenCode's integration API.
2
+ * OpenCode V2 server plugin: quota slash commands for Web and Desktop, a diagnostics tool, and
3
+ * the quota RPC that serves the quota snapshot, the Home notice line, active notices and reports
4
+ * to the TUI. It reads the server settings (settings.jsonc, converted from v5 once) and follows
5
+ * every change to them.
6
+ * It also writes the export file and the OpenTelemetry gauges from each snapshot. Inside
7
+ * OpenCode, logins are read only here, through OpenCode's integration API.
5
8
  */
6
9
  import { Plugin } from "@opencode/plugin";
10
+ import { quotaAgentTools } from "./agent-tools.js";
11
+ import { snapshotFilePath } from "./core/persist.js";
12
+ import { loadProviderSource, loadServerSettings, } from "./core/provider-source.js";
13
+ import { createSnapshotPublisher } from "./core/snapshot-publisher.js";
14
+ import { createQuotaStore } from "./core/store.js";
15
+ import { downloadPrices, parseUsageArguments, usageReport, } from "./core/usage.js";
16
+ import { OLD_USAGE_COMMANDS } from "./core/usage-ranges.js";
7
17
  import { resolveOpenCodeLocationRoots } from "./lib/config-file-utils.js";
8
18
  import { sanitizeDisplayText } from "./lib/display-sanitize.js";
19
+ import { homeNoticeLine, listNotices } from "./lib/maintainer-home-notice.js";
9
20
  import { bindCredentialSource, createIntegrationCredentialSource, notifyCredentialsChanged, scrubCredentialErrorText, } from "./lib/opencode-auth.js";
10
21
  import { reconcileDetectedProvidersInGlobalConfig } from "./lib/opencode-config-providers.js";
11
- import { QUOTA_DIALOG_COMMANDS, } from "./lib/quota-dialog-command-specs.js";
12
- import { buildQuotaDialogCommandOutput } from "./lib/quota-dialog-commands.js";
13
- import { containsQuotaReport, formatQuotaReportMessage, QUOTA_REPORT_METADATA_KEY, removeQuotaReports, } from "./lib/quota-report-message.js";
22
+ import { applyPricingSettings, buildQuotaDialogCommandOutput, kickPricingRefresh, } from "./lib/quota-dialog-commands.js";
23
+ import { QUOTA_PROVIDERS_AGGREGATE_ID } from "./lib/quota-providers.js";
24
+ import { containsQuotaReport, formatQuotaReportMessage, QUOTA_REPORT_METADATA_KEY, quotaMessageText, removeQuotaReports, } from "./lib/quota-report-message.js";
14
25
  import { resolveQuotaResetRetryDelayMs } from "./lib/quota-retry-wait.js";
15
- import { getQuotaFooter, getQuotaMessage, writeQuotaExportIfEnabled, } from "./lib/quota-surface-data.js";
16
- import { messageDocument } from "./lib/report-document.js";
26
+ import { fetchSessionTokensForDisplay } from "./lib/session-tokens.js";
17
27
  import { QuotaRpc } from "./rpc.js";
28
+ import { clientSettings, convertV5, loadSettings, saveSettings, watchSettings, } from "./settings/index.js";
29
+ import { DEFAULT_QUICK_LOOK_RANGE } from "./view/quick-look.js";
30
+ import { usageText } from "./view/usage.js";
18
31
  function hasQuotaReportText(part) {
19
32
  return part.type === "text" && typeof part.text === "string" && containsQuotaReport(part.text);
20
33
  }
@@ -52,16 +65,38 @@ async function logRpcFailure(method, handler) {
52
65
  throw error;
53
66
  }
54
67
  }
68
+ /**
69
+ * The settings (or one part of them) with the keys of that part the file sets, so a value set
70
+ * to its default in the file still differs from no value. The keys are sorted: their order in
71
+ * the file changes nothing.
72
+ */
73
+ function settingsWithSources(loaded, part) {
74
+ const fromFile = loaded.fromFile
75
+ .filter((key) => part === undefined || key.startsWith(`providers.${part}.`))
76
+ .sort();
77
+ return JSON.stringify([
78
+ part === undefined ? loaded.settings : loaded.settings.providers[part],
79
+ fromFile,
80
+ ]);
81
+ }
82
+ /** Writes the v5 settings into settings.jsonc once; a failure leaves them converted in memory. */
83
+ async function convertV5Settings() {
84
+ try {
85
+ return await convertV5();
86
+ }
87
+ catch (error) {
88
+ console.warn(`[opencode-quota] settings conversion failed: ${logReason(error)}`);
89
+ return undefined;
90
+ }
91
+ }
55
92
  export const QuotaToastPlugin = Plugin.define({
56
93
  id: "@slkiser/opencode-quota.server",
57
94
  async setup(ctx) {
58
95
  const roots = resolveOpenCodeLocationRoots(ctx.location.directory);
59
- // The quota collector accepts a small V1-shaped configuration client. V2
60
- // does not expose a mutable global config to plugins; quota settings are
61
- // read from the plugin's own config file by the collector.
96
+ const projectDir = roots.workspaceRoot;
97
+ // The providers ask OpenCode which providers it has through this small client.
62
98
  const client = {
63
99
  config: {
64
- get: async () => ({ data: {} }),
65
100
  providers: async () => ({
66
101
  data: {
67
102
  providers: (await ctx.provider.list()).data.map((provider) => ({ id: provider.id })),
@@ -69,18 +104,22 @@ export const QuotaToastPlugin = Plugin.define({
69
104
  }),
70
105
  },
71
106
  };
72
- // In auto mode, /quota_status reports the providers it detected. The slash commands and
107
+ // The v5 settings move into settings.jsonc before anything reads the settings. The server
108
+ // holds the settings it read last; every reader takes them from here.
109
+ const conversion = await convertV5Settings();
110
+ let settingsConverted = conversion?.written ?? false;
111
+ let loaded = await loadSettings({ projectDir });
112
+ // Local estimates use prices, so the price list is chosen before any check.
113
+ applyPricingSettings(loaded.settings.providers.pricing);
114
+ // /quota_status reports the providers it detected. The slash commands and
73
115
  // the tool add them to the global OpenCode config; the TUI palette (via RPC) never writes it.
74
- const buildOutput = (command, sessionID, argumentsText, options) => buildQuotaDialogCommandOutput({
75
- command,
76
- arguments: argumentsText,
77
- client,
78
- roots,
116
+ const buildStatusOutput = (sessionID, options) => buildQuotaDialogCommandOutput({
117
+ host: sourceHost,
118
+ origin: options.origin,
119
+ opencode: ctx.app ? { version: ctx.app.version, channel: ctx.app.channel } : undefined,
79
120
  sessionID,
80
- resolveSessionMeta: async (id) => {
81
- const session = await ctx.session.get({ sessionID: id });
82
- return { modelID: session.model?.id, providerID: session.model?.providerID };
83
- },
121
+ resolveSessionModel: sessionModel,
122
+ conversion,
84
123
  onDetectedProviderIds: options.reconcileDetectedProviders
85
124
  ? async (providerIds) => {
86
125
  if (providerIds.length === 0)
@@ -97,52 +136,182 @@ export const QuotaToastPlugin = Plugin.define({
97
136
  }
98
137
  : undefined,
99
138
  });
139
+ // The v6 quota store: last known rows, saved in the state dir, refreshed in the background.
140
+ // Building it reads nothing; the first snapshot or refresh call loads the file.
141
+ const sourceHost = {
142
+ client,
143
+ workspaceRoot: roots.workspaceRoot,
144
+ settings: () => loaded,
145
+ };
146
+ const store = createQuotaStore({
147
+ source: () => loadProviderSource(sourceHost),
148
+ file: snapshotFilePath(),
149
+ });
100
150
  // The TUI reads the session model from its local store, which has nothing for an
101
151
  // unknown session. The RPC handlers match that: a failed lookup means no model.
102
- const resolveSessionMeta = async (id) => {
152
+ // With a session, a snapshot also names the providers serving its current model.
153
+ const sessionModel = async (sessionID) => {
154
+ if (!sessionID)
155
+ return {};
103
156
  try {
104
- const session = await ctx.session.get({ sessionID: id });
105
- return { modelID: session.model?.id, providerID: session.model?.providerID };
157
+ const session = await ctx.session.get({ sessionID });
158
+ return { id: session.model?.id, providerID: session.model?.providerID };
106
159
  }
107
160
  catch {
108
161
  return {};
109
162
  }
110
163
  };
111
- const surfaceHost = { client, roots, resolveSessionMeta };
164
+ // With a session, a snapshot also has the tokens the session used so far.
165
+ const withSessionTokens = async (snapshot, sessionID) => {
166
+ if (!sessionID)
167
+ return snapshot;
168
+ const { sessionTokens } = await fetchSessionTokensForDisplay({
169
+ sessionID,
170
+ scope: loaded.settings.words.sessionTokens,
171
+ });
172
+ if (!sessionTokens)
173
+ return snapshot;
174
+ return {
175
+ ...snapshot,
176
+ sessionTokens: {
177
+ input: sessionTokens.totalInput,
178
+ cachedInput: sessionTokens.totalCachedInput,
179
+ output: sessionTokens.totalOutput,
180
+ ...(sessionTokens.models.length > 0 ? { models: sessionTokens.models } : {}),
181
+ },
182
+ };
183
+ };
184
+ // Every snapshot a client gets carries the server's words, the OpenCode provider of each
185
+ // custom definition, and the settings, and none of the export parts the
186
+ // server keeps for the export file.
187
+ const forClients = (snapshot) => {
188
+ const custom = loaded.settings.providers.custom;
189
+ return {
190
+ ...snapshot,
191
+ providers: snapshot.providers.map(({ exportPart: _serverOnly, ...provider }) => provider),
192
+ words: loaded.settings.words,
193
+ ...(custom.length > 0
194
+ ? {
195
+ customRowProviders: Object.fromEntries(custom.map((one) => [
196
+ `${QUOTA_PROVIDERS_AGGREGATE_ID}.custom.${one.id}.`,
197
+ one.providerId,
198
+ ])),
199
+ }
200
+ : {}),
201
+ settings: clientSettings(loaded.settings),
202
+ ...(settingsConverted ? { settingsConverted: true } : {}),
203
+ };
204
+ };
205
+ // The usage report with the configured price list. A due price download gets up to
206
+ // 0.75 s to finish first.
207
+ const loadUsageReport = async (query) => {
208
+ const { pricing } = loaded.settings.providers;
209
+ applyPricingSettings(pricing);
210
+ await kickPricingRefresh({ reason: "tokens", snapshotSelection: pricing.source });
211
+ return usageReport(query);
212
+ };
213
+ // A notice can target the users of some providers: the enabled and available ones,
214
+ // found without asking any provider for quota.
215
+ const noticeTargets = async () => (await loadProviderSource(sourceHost)).providers.map(({ id }) => id);
112
216
  // Awaited so the plugin is active only once the RPC is registered: OpenCode waits for
113
217
  // activation before it routes an RPC call, so the first TUI call cannot miss it.
114
- await ctx.rpc.register(QuotaRpc, {
115
- surface: (input) => logRpcFailure("surface", async () => ({
116
- quota: (await getQuotaMessage(surfaceHost, input.sessionID, input.surface)) ?? null,
117
- })),
118
- footer: (input) => logRpcFailure("footer", async () => ({
119
- lines: await getQuotaFooter(surfaceHost, input.sessionID, input.surface),
218
+ const registration = await ctx.rpc.register(QuotaRpc, {
219
+ snapshot: (input) => logRpcFailure("snapshot", async () => {
220
+ const snapshot = await store.snapshot({ model: await sessionModel(input.sessionID) });
221
+ return { snapshot: forClients(await withSessionTokens(snapshot, input.sessionID)) };
222
+ }),
223
+ refresh: (input) => logRpcFailure("refresh", async () => {
224
+ const model = await sessionModel(input.sessionID);
225
+ const options = { reason: input.reason, providerIds: input.providerIds, model };
226
+ const snapshot = await store.refresh(options);
227
+ return { snapshot: forClients(await withSessionTokens(snapshot, input.sessionID)) };
228
+ }),
229
+ notices: () => logRpcFailure("notices", async () => ({
230
+ homeLine: await homeNoticeLine({ providerIds: await noticeTargets() }),
120
231
  })),
121
- writeExport: () => logRpcFailure("writeExport", async () => ({
122
- written: await writeQuotaExportIfEnabled(surfaceHost),
232
+ noticeList: () => logRpcFailure("noticeList", async () => ({
233
+ notices: await listNotices({ providerIds: await noticeTargets() }),
123
234
  })),
124
- command: async (input) => {
235
+ status: (input) => logRpcFailure("status", async () => {
236
+ const result = await buildStatusOutput(input.sessionID, {
237
+ origin: "tui",
238
+ reconcileDetectedProviders: false,
239
+ });
240
+ return { text: sanitizeDisplayText(result.output) };
241
+ }),
242
+ usage: (input) => logRpcFailure("usage", async () => {
243
+ const { range, sessionID, from, to } = input;
244
+ return { report: await loadUsageReport({ range, sessionID, from, to }) };
245
+ }),
246
+ downloadPrices: () => logRpcFailure("downloadPrices", async () => downloadPrices(loaded.settings.providers.pricing.source)),
247
+ // Read now, so a custom provider changed a moment ago shows as it is before a switch-on.
248
+ settings: () => logRpcFailure("settings", async () => clientSettings((await loadSettings({ projectDir })).settings)),
249
+ // The watch sees the save too; reading the file now answers with the new settings in use.
250
+ // `customEnabled` is the user's switch in the quota window; no agent tool calls this.
251
+ saveSettings: (input) => logRpcFailure("saveSettings", async () => {
252
+ const converting = !loaded.exists && Boolean(loaded.conversion);
253
+ const result = await saveSettings(input.patch, {
254
+ allowFileOnly: false,
255
+ customEnabled: input.customEnabled,
256
+ });
257
+ if (result.ok) {
258
+ if (converting)
259
+ settingsConverted = true;
260
+ await applySettings(await loadSettings({ projectDir }));
261
+ }
262
+ return { ok: result.ok, issues: result.issues };
263
+ }),
264
+ });
265
+ // The export file and the gauges follow the snapshot; neither asks a provider again.
266
+ const publisher = createSnapshotPublisher({
267
+ loadSettings: () => loadServerSettings(sourceHost),
268
+ log: (message, error) => console.warn(`[opencode-quota] ${message}: ${logReason(error)}`),
269
+ });
270
+ const announce = (snapshot) => {
271
+ publisher.publish(snapshot);
272
+ void (async () => {
125
273
  try {
126
- return await buildOutput(input.command, input.sessionID, input.arguments, {
127
- reconcileDetectedProviders: false,
128
- });
274
+ await registration.events.emit("changed", { snapshot: forClients(snapshot) });
129
275
  }
130
276
  catch (error) {
131
- // Return the reason as output so the TUI shows it instead of OpenCode's rpc.internal.
132
- const spec = QUOTA_DIALOG_COMMANDS.find((item) => item.id === input.command);
133
- const output = sanitizeDisplayText(error instanceof Error ? error.message : String(error));
134
- return {
135
- state: "output",
136
- command: input.command,
137
- title: spec.title,
138
- output,
139
- document: messageDocument(output),
140
- dialogSize: spec.dialogSize,
141
- };
277
+ console.warn(`[opencode-quota] changed event failed: ${logReason(error)}`);
142
278
  }
143
- },
144
- });
279
+ })();
280
+ };
281
+ const unsubscribeStore = store.subscribe(announce);
282
+ // New settings can change the providers, who each one is signed in as, the words and the
283
+ // prices. They supersede the store's running work: every client gets a snapshot built from
284
+ // them at once, then the new rows as more `changed` events. A check made with another time
285
+ // limit, interval or price list is out of date, so every provider is checked again.
286
+ async function applySettings(next) {
287
+ const previous = loaded;
288
+ loaded = next;
289
+ applyPricingSettings(next.settings.providers.pricing);
290
+ if (settingsWithSources(next) !== settingsWithSources(previous)) {
291
+ const recheck = settingsWithSources(next, "checking") !== settingsWithSources(previous, "checking") ||
292
+ settingsWithSources(next, "pricing") !== settingsWithSources(previous, "pricing");
293
+ store.settingsChanged({ recheck });
294
+ }
295
+ if (next.settings.system.oldCommands !== previous.settings.system.oldCommands) {
296
+ // The command list is built again from the settings now in use. An open TUI keeps its
297
+ // "/" list until OpenCode restarts: OpenCode 2 sends this reload without the folder
298
+ // (location) that the TUI refreshes its list for.
299
+ await ctx.command.reload().catch((error) => {
300
+ console.warn(`[opencode-quota] command reload failed: ${logReason(error)}`);
301
+ });
302
+ }
303
+ }
304
+ // settings.jsonc edited by hand, by an agent or by another OpenCode process. A change made
305
+ // while this setup ran is read once more right after the watch starts.
306
+ const settingsWatch = await watchSettings((next) => void applySettings(next), { projectDir });
307
+ await applySettings(await loadSettings({ projectDir }));
145
308
  await ctx.tool.transform((editor) => {
309
+ // Agent tools: read and change the settings file, add, test and remove custom providers.
310
+ const host = {
311
+ openCodeProviderIds: async () => (await ctx.provider.list()).data.map(({ id }) => id),
312
+ };
313
+ for (const tool of quotaAgentTools(host))
314
+ editor.add(tool);
146
315
  editor.add({
147
316
  name: "quota_status",
148
317
  description: "Diagnostics for toast, TUI, pricing and local storage.",
@@ -152,48 +321,97 @@ export const QuotaToastPlugin = Plugin.define({
152
321
  additionalProperties: false,
153
322
  },
154
323
  async execute(_input, context) {
155
- const result = await buildOutput("quota_status", context.sessionID, undefined, {
324
+ const result = await buildStatusOutput(context.sessionID, {
325
+ origin: "tool",
156
326
  reconcileDetectedProviders: true,
157
327
  });
158
- return { content: result.state === "output" ? sanitizeDisplayText(result.output) : "" };
328
+ return { content: sanitizeDisplayText(result.output) };
159
329
  },
160
330
  });
161
331
  });
162
- // Web, Desktop, and the TUI list these in their "/" menu. In "dialog" mode the TUI runs a
163
- // typed command itself over the quota RPC, so it never reaches this. When a report does
164
- // arrive, the TUI follows tuiCommandDisplay: "dialog" opens its dialog and cancels the
165
- // posted report, "inline" leaves it in the chat. Its command palette runs the same reports
166
- // without posting them.
332
+ // Web and Desktop list these in their "/" menu and get the report as a chat message. The
333
+ // TUI shows /quota, /quota_usage and /quota_status in its quota window instead.
334
+ const postReport = async (sessionID, command, report) => {
335
+ // A message admitted while the AI works is delivered into that turn at its next
336
+ // step, and can make the AI take one more step. Wait until the session is idle.
337
+ await ctx.session.wait({ sessionID });
338
+ const metadata = { command, at: Date.now() };
339
+ // The report is posted as the user's message. resume: false admits it without
340
+ // starting a model turn, so it waits in the session inbox, where Web and Desktop
341
+ // show it. "steer" delivers it together with the user's next message; "queue"
342
+ // would later give it a model turn of its own.
343
+ await ctx.session.prompt({
344
+ sessionID,
345
+ text: formatQuotaReportMessage(sanitizeDisplayText(report)),
346
+ metadata: { [QUOTA_REPORT_METADATA_KEY]: metadata },
347
+ delivery: "steer",
348
+ resume: false,
349
+ });
350
+ };
351
+ /** Posts the usage report `argumentsText` asks for, like "30d" or "between <date> <date>". */
352
+ const postUsage = async (sessionID, command, argumentsText) => {
353
+ const parsed = parseUsageArguments(argumentsText);
354
+ if (!parsed.ok) {
355
+ await postReport(sessionID, command, parsed.error);
356
+ return;
357
+ }
358
+ const { range, from, to } = parsed;
359
+ let text;
360
+ try {
361
+ text = usageText(await loadUsageReport({ range, from, to, sessionID }), {
362
+ mode: "cost",
363
+ breakdown: "model",
364
+ });
365
+ }
366
+ catch (error) {
367
+ text = `Couldn't read the usage: ${error instanceof Error ? error.message : String(error)}`;
368
+ }
369
+ await postReport(sessionID, command, text);
370
+ };
167
371
  await ctx.command.transform((editor) => {
168
- for (const spec of QUOTA_DIALOG_COMMANDS) {
372
+ editor.add({
373
+ name: "quota",
374
+ description: "Quick look: your quota limits and the last 7 days of usage.",
375
+ async execute(invocation) {
376
+ // /quota waits for the providers that are due a check; the rest show their last rows.
377
+ const model = await sessionModel(invocation.sessionID);
378
+ const snapshot = forClients(await store.refresh({ reason: "poll", model }));
379
+ // Without OpenCode's history the limits still show.
380
+ const usage = await loadUsageReport({ range: DEFAULT_QUICK_LOOK_RANGE }).catch((error) => {
381
+ console.warn(`[opencode-quota] /quota usage failed: ${logReason(error)}`);
382
+ return undefined;
383
+ });
384
+ const notices = await listNotices({ providerIds: await noticeTargets() });
385
+ const report = quotaMessageText({ snapshot, usage, notices, nowMs: Date.now() });
386
+ await postReport(invocation.sessionID, "quota", report);
387
+ },
388
+ });
389
+ editor.add({
390
+ name: "quota_status",
391
+ description: "Diagnostics for quota, TUI, pricing, and local storage.",
392
+ async execute(invocation) {
393
+ const result = await buildStatusOutput(invocation.sessionID, {
394
+ origin: "slash_command",
395
+ reconcileDetectedProviders: true,
396
+ });
397
+ await postReport(invocation.sessionID, "quota_status", result.output);
398
+ },
399
+ });
400
+ editor.add({
401
+ name: "quota_usage",
402
+ description: "Tokens and API cost: today (default), 24h, 7d, 30d, 90d, all, session (with its subagents), or between YYYY-MM-DD YYYY-MM-DD.",
403
+ execute: (invocation) => postUsage(invocation.sessionID, "quota_usage", invocation.prompt.text),
404
+ });
405
+ // Read each time OpenCode builds the list, so `system.oldCommands` adds or removes them.
406
+ if (!loaded.settings.system.oldCommands)
407
+ return;
408
+ for (const [name, range] of Object.entries(OLD_USAGE_COMMANDS)) {
169
409
  editor.add({
170
- name: spec.slashName,
171
- description: spec.description,
172
- async execute(invocation) {
173
- const result = await buildOutput(spec.id, invocation.sessionID, invocation.prompt.text.trim() || undefined, { reconcileDetectedProviders: true });
174
- if (result.state === "noop")
175
- return;
176
- // A message admitted while the AI works is delivered into that turn at its next
177
- // step, and can make the AI take one more step. Wait until the session is idle.
178
- await ctx.session.wait({ sessionID: invocation.sessionID });
179
- const metadata = {
180
- command: spec.id,
181
- title: result.title,
182
- at: Date.now(),
183
- document: result.document,
184
- };
185
- // The report is posted as the user's message. resume: false admits it without
186
- // starting a model turn, so it waits in the session inbox, where Web, Desktop,
187
- // and the TUI show it. "steer" delivers it together with the user's next message;
188
- // "queue" would later give it a model turn of its own.
189
- await ctx.session.prompt({
190
- sessionID: invocation.sessionID,
191
- text: formatQuotaReportMessage(sanitizeDisplayText(result.output)),
192
- metadata: { [QUOTA_REPORT_METADATA_KEY]: metadata },
193
- delivery: "steer",
194
- resume: false,
195
- });
196
- },
410
+ name,
411
+ description: range === "between"
412
+ ? "Same as /quota_usage between YYYY-MM-DD YYYY-MM-DD."
413
+ : `Same as /quota_usage ${range}.`,
414
+ execute: (invocation) => postUsage(invocation.sessionID, name, `${range} ${invocation.prompt.text}`),
197
415
  });
198
416
  }
199
417
  });
@@ -218,7 +436,7 @@ export const QuotaToastPlugin = Plugin.define({
218
436
  // used-up quota window resets. Any failure keeps OpenCode's own retry decision.
219
437
  await ctx.session.hook("retry", async (event) => {
220
438
  try {
221
- const delay = await resolveQuotaResetRetryDelayMs(surfaceHost, event);
439
+ const delay = await resolveQuotaResetRetryDelayMs({ store, loadSettings: () => loadServerSettings(sourceHost) }, event);
222
440
  if (delay !== undefined)
223
441
  event.decision = { retry: true, delay };
224
442
  }
@@ -231,13 +449,15 @@ export const QuotaToastPlugin = Plugin.define({
231
449
  // commands and RPC calls to the plugin only after setup, so no read comes earlier.
232
450
  const unbindCredentialSource = bindCredentialSource(createIntegrationCredentialSource(ctx.integration));
233
451
  // A login added, changed or switched in OpenCode drops cached logins and failed-login
234
- // entries, so the next read asks OpenCode again. If the subscription fails, cached logins
235
- // stay until they expire; the log says why. The cleanup's abort ends it silently.
452
+ // entries, so the next read asks OpenCode again, and makes the store check who each
453
+ // provider is signed in as. If the subscription fails, cached logins stay until they
454
+ // expire; the log says why. The cleanup's abort ends it silently.
236
455
  const credentialEvents = new AbortController();
237
456
  void (async () => {
238
457
  for await (const event of ctx.event.subscribe({ signal: credentialEvents.signal })) {
239
458
  if (event.type === "credential.updated" || event.type === "credential.switched") {
240
459
  notifyCredentialsChanged();
460
+ store.invalidateIdentity();
241
461
  }
242
462
  }
243
463
  })().catch((error) => {
@@ -245,8 +465,13 @@ export const QuotaToastPlugin = Plugin.define({
245
465
  return;
246
466
  console.warn(`[opencode-quota] credential event subscription stopped: ${logReason(error)}`);
247
467
  });
248
- return () => {
468
+ // Running fetches still read logins, so the store is drained before the binding goes.
469
+ return async () => {
249
470
  credentialEvents.abort();
471
+ settingsWatch.close();
472
+ unsubscribeStore();
473
+ publisher.dispose();
474
+ await store.dispose();
250
475
  unbindCredentialSource();
251
476
  };
252
477
  },
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Alibaba Coding Plan: a local estimate of the 5h, weekly and monthly request windows, counted
3
+ * from this machine's requests against the plan tier's limits (or the configured ones).
4
+ */
1
5
  import type { QuotaProvider } from "../lib/entries.js";
2
6
  export declare const alibabaCodingPlanProvider: QuotaProvider;
3
7
  //# sourceMappingURL=alibaba-coding-plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alibaba-coding-plan.d.ts","sourceRoot":"","sources":["../../src/providers/alibaba-coding-plan.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,mBAAmB,CAAC;AAe3B,eAAO,MAAM,yBAAyB,EAAE,aAkIvC,CAAC"}
1
+ {"version":3,"file":"alibaba-coding-plan.d.ts","sourceRoot":"","sources":["../../src/providers/alibaba-coding-plan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,mBAAmB,CAAC;AAyC7E,eAAO,MAAM,yBAAyB,EAAE,aAsEvC,CAAC"}