@slkiser/opencode-quota 5.0.2 → 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 +32 -46
  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/data/modelsdev-pricing.min.json +248 -22
  66. package/dist/index.d.ts +2 -1
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/lib/accounting-format.d.ts +2 -52
  70. package/dist/lib/accounting-format.d.ts.map +1 -1
  71. package/dist/lib/accounting-format.js +6 -255
  72. package/dist/lib/accounting-format.js.map +1 -1
  73. package/dist/lib/alibaba-auth.d.ts +14 -21
  74. package/dist/lib/alibaba-auth.d.ts.map +1 -1
  75. package/dist/lib/alibaba-auth.js +36 -149
  76. package/dist/lib/alibaba-auth.js.map +1 -1
  77. package/dist/lib/alibaba-coding-plan-local-quota.d.ts +1 -6
  78. package/dist/lib/alibaba-coding-plan-local-quota.d.ts.map +1 -1
  79. package/dist/lib/alibaba-coding-plan-local-quota.js +1 -1
  80. package/dist/lib/alibaba-coding-plan-local-quota.js.map +1 -1
  81. package/dist/lib/alibaba-token-plan.d.ts +18 -27
  82. package/dist/lib/alibaba-token-plan.d.ts.map +1 -1
  83. package/dist/lib/alibaba-token-plan.js +121 -285
  84. package/dist/lib/alibaba-token-plan.js.map +1 -1
  85. package/dist/lib/anthropic-auth.d.ts +3 -5
  86. package/dist/lib/anthropic-auth.d.ts.map +1 -1
  87. package/dist/lib/anthropic-auth.js +6 -9
  88. package/dist/lib/anthropic-auth.js.map +1 -1
  89. package/dist/lib/anthropic.d.ts +12 -37
  90. package/dist/lib/anthropic.d.ts.map +1 -1
  91. package/dist/lib/anthropic.js +348 -698
  92. package/dist/lib/anthropic.js.map +1 -1
  93. package/dist/lib/api-key-resolver.d.ts +165 -192
  94. package/dist/lib/api-key-resolver.d.ts.map +1 -1
  95. package/dist/lib/api-key-resolver.js +208 -234
  96. package/dist/lib/api-key-resolver.js.map +1 -1
  97. package/dist/lib/atomic-json.d.ts +4 -1
  98. package/dist/lib/atomic-json.d.ts.map +1 -1
  99. package/dist/lib/atomic-json.js +2 -3
  100. package/dist/lib/atomic-json.js.map +1 -1
  101. package/dist/lib/calendar-date.d.ts +15 -0
  102. package/dist/lib/calendar-date.d.ts.map +1 -0
  103. package/dist/lib/calendar-date.js +21 -0
  104. package/dist/lib/calendar-date.js.map +1 -0
  105. package/dist/lib/chutes.d.ts +0 -1
  106. package/dist/lib/chutes.d.ts.map +1 -1
  107. package/dist/lib/chutes.js +2 -4
  108. package/dist/lib/chutes.js.map +1 -1
  109. package/dist/lib/cli-reports.d.ts +15 -11
  110. package/dist/lib/cli-reports.d.ts.map +1 -1
  111. package/dist/lib/cli-reports.js +34 -107
  112. package/dist/lib/cli-reports.js.map +1 -1
  113. package/dist/lib/cli-show.d.ts +9 -22
  114. package/dist/lib/cli-show.d.ts.map +1 -1
  115. package/dist/lib/cli-show.js +104 -75
  116. package/dist/lib/cli-show.js.map +1 -1
  117. package/dist/lib/config-file-utils.d.ts +3 -15
  118. package/dist/lib/config-file-utils.d.ts.map +1 -1
  119. package/dist/lib/config-file-utils.js +4 -63
  120. package/dist/lib/config-file-utils.js.map +1 -1
  121. package/dist/lib/config-write-target.d.ts +4 -7
  122. package/dist/lib/config-write-target.d.ts.map +1 -1
  123. package/dist/lib/config-write-target.js +4 -18
  124. package/dist/lib/config-write-target.js.map +1 -1
  125. package/dist/lib/copilot.d.ts +29 -20
  126. package/dist/lib/copilot.d.ts.map +1 -1
  127. package/dist/lib/copilot.js +392 -649
  128. package/dist/lib/copilot.js.map +1 -1
  129. package/dist/lib/cursor-detection.d.ts +3 -3
  130. package/dist/lib/cursor-detection.d.ts.map +1 -1
  131. package/dist/lib/cursor-detection.js +44 -88
  132. package/dist/lib/cursor-detection.js.map +1 -1
  133. package/dist/lib/cursor-pricing.d.ts +71 -8
  134. package/dist/lib/cursor-pricing.d.ts.map +1 -1
  135. package/dist/lib/cursor-pricing.js +34 -125
  136. package/dist/lib/cursor-pricing.js.map +1 -1
  137. package/dist/lib/cursor-usage.d.ts +6 -4
  138. package/dist/lib/cursor-usage.d.ts.map +1 -1
  139. package/dist/lib/cursor-usage.js +27 -40
  140. package/dist/lib/cursor-usage.js.map +1 -1
  141. package/dist/lib/deepseek.d.ts +9 -17
  142. package/dist/lib/deepseek.d.ts.map +1 -1
  143. package/dist/lib/deepseek.js +24 -54
  144. package/dist/lib/deepseek.js.map +1 -1
  145. package/dist/lib/display-sanitize.d.ts +0 -8
  146. package/dist/lib/display-sanitize.d.ts.map +1 -1
  147. package/dist/lib/display-sanitize.js +0 -139
  148. package/dist/lib/display-sanitize.js.map +1 -1
  149. package/dist/lib/entries.d.ts +13 -239
  150. package/dist/lib/entries.d.ts.map +1 -1
  151. package/dist/lib/entries.js +1 -46
  152. package/dist/lib/entries.js.map +1 -1
  153. package/dist/lib/file-lock.d.ts +23 -0
  154. package/dist/lib/file-lock.d.ts.map +1 -0
  155. package/dist/lib/file-lock.js +122 -0
  156. package/dist/lib/file-lock.js.map +1 -0
  157. package/dist/lib/format-utils.d.ts +2 -82
  158. package/dist/lib/format-utils.d.ts.map +1 -1
  159. package/dist/lib/format-utils.js +2 -191
  160. package/dist/lib/format-utils.js.map +1 -1
  161. package/dist/lib/glm-coding-plan.d.ts +6 -5
  162. package/dist/lib/glm-coding-plan.d.ts.map +1 -1
  163. package/dist/lib/glm-coding-plan.js +19 -1
  164. package/dist/lib/glm-coding-plan.js.map +1 -1
  165. package/dist/lib/google-agy.d.ts +8 -40
  166. package/dist/lib/google-agy.d.ts.map +1 -1
  167. package/dist/lib/google-agy.js +88 -519
  168. package/dist/lib/google-agy.js.map +1 -1
  169. package/dist/lib/google-companion-credentials.d.ts +9 -40
  170. package/dist/lib/google-companion-credentials.d.ts.map +1 -1
  171. package/dist/lib/google-companion-credentials.js +167 -224
  172. package/dist/lib/google-companion-credentials.js.map +1 -1
  173. package/dist/lib/google-gemini-cli.d.ts +5 -38
  174. package/dist/lib/google-gemini-cli.d.ts.map +1 -1
  175. package/dist/lib/google-gemini-cli.js +71 -442
  176. package/dist/lib/google-gemini-cli.js.map +1 -1
  177. package/dist/lib/google-oauth-quota.d.ts +76 -0
  178. package/dist/lib/google-oauth-quota.d.ts.map +1 -0
  179. package/dist/lib/google-oauth-quota.js +297 -0
  180. package/dist/lib/google-oauth-quota.js.map +1 -0
  181. package/dist/lib/google-token-cache.d.ts +3 -5
  182. package/dist/lib/google-token-cache.d.ts.map +1 -1
  183. package/dist/lib/google-token-cache.js +2 -14
  184. package/dist/lib/google-token-cache.js.map +1 -1
  185. package/dist/lib/home-dir-display.d.ts.map +1 -1
  186. package/dist/lib/home-dir-display.js +21 -39
  187. package/dist/lib/home-dir-display.js.map +1 -1
  188. package/dist/lib/http.d.ts +4 -1
  189. package/dist/lib/http.d.ts.map +1 -1
  190. package/dist/lib/http.js +2 -1
  191. package/dist/lib/http.js.map +1 -1
  192. package/dist/lib/json-guards.d.ts +11 -0
  193. package/dist/lib/json-guards.d.ts.map +1 -0
  194. package/dist/lib/json-guards.js +25 -0
  195. package/dist/lib/json-guards.js.map +1 -0
  196. package/dist/lib/kilo.d.ts +0 -2
  197. package/dist/lib/kilo.d.ts.map +1 -1
  198. package/dist/lib/kilo.js +33 -116
  199. package/dist/lib/kilo.js.map +1 -1
  200. package/dist/lib/kimi-endpoints.d.ts +2 -2
  201. package/dist/lib/kimi-endpoints.d.ts.map +1 -1
  202. package/dist/lib/kimi-endpoints.js +1 -1
  203. package/dist/lib/kimi-endpoints.js.map +1 -1
  204. package/dist/lib/kimi.d.ts.map +1 -1
  205. package/dist/lib/kimi.js +40 -86
  206. package/dist/lib/kimi.js.map +1 -1
  207. package/dist/lib/maintainer-announcements.d.ts +4 -17
  208. package/dist/lib/maintainer-announcements.d.ts.map +1 -1
  209. package/dist/lib/maintainer-announcements.js +7 -44
  210. package/dist/lib/maintainer-announcements.js.map +1 -1
  211. package/dist/lib/maintainer-home-notice.d.ts +19 -0
  212. package/dist/lib/maintainer-home-notice.d.ts.map +1 -0
  213. package/dist/lib/maintainer-home-notice.js +92 -0
  214. package/dist/lib/maintainer-home-notice.js.map +1 -0
  215. package/dist/lib/mimo-config.d.ts +6 -9
  216. package/dist/lib/mimo-config.d.ts.map +1 -1
  217. package/dist/lib/mimo-config.js +43 -74
  218. package/dist/lib/mimo-config.js.map +1 -1
  219. package/dist/lib/mimo.d.ts +2 -5
  220. package/dist/lib/mimo.d.ts.map +1 -1
  221. package/dist/lib/mimo.js +57 -109
  222. package/dist/lib/mimo.js.map +1 -1
  223. package/dist/lib/minimax-endpoints.d.ts +2 -2
  224. package/dist/lib/minimax-endpoints.d.ts.map +1 -1
  225. package/dist/lib/minimax-endpoints.js +1 -1
  226. package/dist/lib/minimax-endpoints.js.map +1 -1
  227. package/dist/lib/modelsdev-pricing.d.ts +22 -16
  228. package/dist/lib/modelsdev-pricing.d.ts.map +1 -1
  229. package/dist/lib/modelsdev-pricing.js +279 -510
  230. package/dist/lib/modelsdev-pricing.js.map +1 -1
  231. package/dist/lib/nanogpt.d.ts +6 -6
  232. package/dist/lib/nanogpt.d.ts.map +1 -1
  233. package/dist/lib/nanogpt.js +19 -72
  234. package/dist/lib/nanogpt.js.map +1 -1
  235. package/dist/lib/ollama-cloud.d.ts +3 -5
  236. package/dist/lib/ollama-cloud.d.ts.map +1 -1
  237. package/dist/lib/ollama-cloud.js +77 -46
  238. package/dist/lib/ollama-cloud.js.map +1 -1
  239. package/dist/lib/openai.d.ts +19 -29
  240. package/dist/lib/openai.d.ts.map +1 -1
  241. package/dist/lib/openai.js +134 -182
  242. package/dist/lib/openai.js.map +1 -1
  243. package/dist/lib/opencode-auth-sqlite.d.ts.map +1 -1
  244. package/dist/lib/opencode-auth-sqlite.js +22 -23
  245. package/dist/lib/opencode-auth-sqlite.js.map +1 -1
  246. package/dist/lib/opencode-auth.d.ts +17 -11
  247. package/dist/lib/opencode-auth.d.ts.map +1 -1
  248. package/dist/lib/opencode-auth.js +39 -46
  249. package/dist/lib/opencode-auth.js.map +1 -1
  250. package/dist/lib/opencode-config-editor.d.ts +3 -34
  251. package/dist/lib/opencode-config-editor.d.ts.map +1 -1
  252. package/dist/lib/opencode-config-editor.js +23 -142
  253. package/dist/lib/opencode-config-editor.js.map +1 -1
  254. package/dist/lib/opencode-config-providers.d.ts +4 -3
  255. package/dist/lib/opencode-config-providers.d.ts.map +1 -1
  256. package/dist/lib/opencode-config-providers.js +7 -11
  257. package/dist/lib/opencode-config-providers.js.map +1 -1
  258. package/dist/lib/opencode-config-read.d.ts +2 -1
  259. package/dist/lib/opencode-config-read.d.ts.map +1 -1
  260. package/dist/lib/opencode-config-read.js +3 -2
  261. package/dist/lib/opencode-config-read.js.map +1 -1
  262. package/dist/lib/opencode-console-auth.d.ts +2 -3
  263. package/dist/lib/opencode-console-auth.d.ts.map +1 -1
  264. package/dist/lib/opencode-console-auth.js +2 -2
  265. package/dist/lib/opencode-console-auth.js.map +1 -1
  266. package/dist/lib/opencode-go.d.ts.map +1 -1
  267. package/dist/lib/opencode-go.js +51 -79
  268. package/dist/lib/opencode-go.js.map +1 -1
  269. package/dist/lib/opencode-storage.d.ts +18 -3
  270. package/dist/lib/opencode-storage.d.ts.map +1 -1
  271. package/dist/lib/opencode-storage.js +134 -2
  272. package/dist/lib/opencode-storage.js.map +1 -1
  273. package/dist/lib/opencode-zen.d.ts +23 -7
  274. package/dist/lib/opencode-zen.d.ts.map +1 -1
  275. package/dist/lib/opencode-zen.js +175 -62
  276. package/dist/lib/opencode-zen.js.map +1 -1
  277. package/dist/lib/openrouter.d.ts.map +1 -1
  278. package/dist/lib/openrouter.js +1 -13
  279. package/dist/lib/openrouter.js.map +1 -1
  280. package/dist/lib/pricing-key.d.ts +48 -0
  281. package/dist/lib/pricing-key.d.ts.map +1 -0
  282. package/dist/lib/pricing-key.js +371 -0
  283. package/dist/lib/pricing-key.js.map +1 -0
  284. package/dist/lib/provider-metadata.d.ts +16 -20
  285. package/dist/lib/provider-metadata.d.ts.map +1 -1
  286. package/dist/lib/provider-metadata.js +69 -69
  287. package/dist/lib/provider-metadata.js.map +1 -1
  288. package/dist/lib/provider-model-matching.d.ts +2 -1
  289. package/dist/lib/provider-model-matching.d.ts.map +1 -1
  290. package/dist/lib/provider-registration.d.ts +1 -177
  291. package/dist/lib/provider-registration.d.ts.map +1 -1
  292. package/dist/lib/provider-registration.js +1 -163
  293. package/dist/lib/provider-registration.js.map +1 -1
  294. package/dist/lib/quota-dialog-commands.d.ts +87 -53
  295. package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
  296. package/dist/lib/quota-dialog-commands.js +259 -519
  297. package/dist/lib/quota-dialog-commands.js.map +1 -1
  298. package/dist/lib/quota-export-types.d.ts +29 -23
  299. package/dist/lib/quota-export-types.d.ts.map +1 -1
  300. package/dist/lib/quota-export.d.ts +16 -26
  301. package/dist/lib/quota-export.d.ts.map +1 -1
  302. package/dist/lib/quota-export.js +105 -147
  303. package/dist/lib/quota-export.js.map +1 -1
  304. package/dist/lib/quota-providers-local.d.ts +12 -8
  305. package/dist/lib/quota-providers-local.d.ts.map +1 -1
  306. package/dist/lib/quota-providers-local.js +150 -223
  307. package/dist/lib/quota-providers-local.js.map +1 -1
  308. package/dist/lib/quota-providers-remote.d.ts +3 -8
  309. package/dist/lib/quota-providers-remote.d.ts.map +1 -1
  310. package/dist/lib/quota-providers-remote.js +309 -449
  311. package/dist/lib/quota-providers-remote.js.map +1 -1
  312. package/dist/lib/quota-providers.d.ts +57 -15
  313. package/dist/lib/quota-providers.d.ts.map +1 -1
  314. package/dist/lib/quota-providers.js +157 -64
  315. package/dist/lib/quota-providers.js.map +1 -1
  316. package/dist/lib/quota-report-message.d.ts +23 -10
  317. package/dist/lib/quota-report-message.d.ts.map +1 -1
  318. package/dist/lib/quota-report-message.js +37 -13
  319. package/dist/lib/quota-report-message.js.map +1 -1
  320. package/dist/lib/quota-retry-wait.d.ts +14 -6
  321. package/dist/lib/quota-retry-wait.d.ts.map +1 -1
  322. package/dist/lib/quota-retry-wait.js +37 -39
  323. package/dist/lib/quota-retry-wait.js.map +1 -1
  324. package/dist/lib/quota-status.d.ts +50 -33
  325. package/dist/lib/quota-status.d.ts.map +1 -1
  326. package/dist/lib/quota-status.js +1113 -772
  327. package/dist/lib/quota-status.js.map +1 -1
  328. package/dist/lib/quota-telemetry.d.ts +7 -14
  329. package/dist/lib/quota-telemetry.d.ts.map +1 -1
  330. package/dist/lib/quota-telemetry.js +46 -97
  331. package/dist/lib/quota-telemetry.js.map +1 -1
  332. package/dist/lib/report-document.d.ts +5 -65
  333. package/dist/lib/report-document.d.ts.map +1 -1
  334. package/dist/lib/report-document.js +14 -167
  335. package/dist/lib/report-document.js.map +1 -1
  336. package/dist/lib/resolved-auth-identity.d.ts +1 -2
  337. package/dist/lib/resolved-auth-identity.d.ts.map +1 -1
  338. package/dist/lib/resolved-auth-identity.js +0 -4
  339. package/dist/lib/resolved-auth-identity.js.map +1 -1
  340. package/dist/lib/session-tokens.d.ts +19 -19
  341. package/dist/lib/session-tokens.d.ts.map +1 -1
  342. package/dist/lib/session-tokens.js +58 -44
  343. package/dist/lib/session-tokens.js.map +1 -1
  344. package/dist/lib/synthetic.d.ts +0 -1
  345. package/dist/lib/synthetic.d.ts.map +1 -1
  346. package/dist/lib/synthetic.js +43 -94
  347. package/dist/lib/synthetic.js.map +1 -1
  348. package/dist/lib/token-buckets.d.ts +0 -1
  349. package/dist/lib/token-buckets.d.ts.map +1 -1
  350. package/dist/lib/token-buckets.js +0 -3
  351. package/dist/lib/token-buckets.js.map +1 -1
  352. package/dist/lib/token-cost.d.ts +2 -1
  353. package/dist/lib/token-cost.d.ts.map +1 -1
  354. package/dist/lib/types.d.ts +46 -340
  355. package/dist/lib/types.d.ts.map +1 -1
  356. package/dist/lib/types.js +2 -69
  357. package/dist/lib/types.js.map +1 -1
  358. package/dist/lib/xai.d.ts +6 -6
  359. package/dist/lib/xai.d.ts.map +1 -1
  360. package/dist/lib/xai.js +51 -90
  361. package/dist/lib/xai.js.map +1 -1
  362. package/dist/plugin.d.ts +6 -3
  363. package/dist/plugin.d.ts.map +1 -1
  364. package/dist/plugin.js +315 -90
  365. package/dist/plugin.js.map +1 -1
  366. package/dist/providers/alibaba-coding-plan.d.ts +4 -0
  367. package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
  368. package/dist/providers/alibaba-coding-plan.js +47 -77
  369. package/dist/providers/alibaba-coding-plan.js.map +1 -1
  370. package/dist/providers/alibaba-token-plan.d.ts.map +1 -1
  371. package/dist/providers/alibaba-token-plan.js +34 -46
  372. package/dist/providers/alibaba-token-plan.js.map +1 -1
  373. package/dist/providers/anthropic.d.ts +2 -4
  374. package/dist/providers/anthropic.d.ts.map +1 -1
  375. package/dist/providers/anthropic.js +80 -162
  376. package/dist/providers/anthropic.js.map +1 -1
  377. package/dist/providers/cache-policies.d.ts +0 -2
  378. package/dist/providers/cache-policies.d.ts.map +1 -1
  379. package/dist/providers/cache-policies.js +45 -91
  380. package/dist/providers/cache-policies.js.map +1 -1
  381. package/dist/providers/chutes.d.ts +0 -3
  382. package/dist/providers/chutes.d.ts.map +1 -1
  383. package/dist/providers/chutes.js +16 -28
  384. package/dist/providers/chutes.js.map +1 -1
  385. package/dist/providers/contract.d.ts +128 -0
  386. package/dist/providers/contract.d.ts.map +1 -0
  387. package/dist/providers/contract.js +101 -0
  388. package/dist/providers/contract.js.map +1 -0
  389. package/dist/providers/copilot.d.ts.map +1 -1
  390. package/dist/providers/copilot.js +171 -175
  391. package/dist/providers/copilot.js.map +1 -1
  392. package/dist/providers/cursor.d.ts.map +1 -1
  393. package/dist/providers/cursor.js +56 -109
  394. package/dist/providers/cursor.js.map +1 -1
  395. package/dist/providers/deepseek.d.ts +1 -6
  396. package/dist/providers/deepseek.d.ts.map +1 -1
  397. package/dist/providers/deepseek.js +46 -81
  398. package/dist/providers/deepseek.js.map +1 -1
  399. package/dist/providers/glm-coding-plan.d.ts +8 -0
  400. package/dist/providers/glm-coding-plan.d.ts.map +1 -0
  401. package/dist/providers/glm-coding-plan.js +106 -0
  402. package/dist/providers/glm-coding-plan.js.map +1 -0
  403. package/dist/providers/google-agy.d.ts.map +1 -1
  404. package/dist/providers/google-agy.js +41 -179
  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 -5
  433. package/dist/providers/ollama-cloud.d.ts.map +1 -1
  434. package/dist/providers/ollama-cloud.js +86 -87
  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 +157 -150
  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 +104 -141
  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 -1083
  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 -26
  719. package/dist/lib/quota-surface-data.d.ts.map +0 -1
  720. package/dist/lib/quota-surface-data.js +0 -299
  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/tui-v2.jsx DELETED
@@ -1,624 +0,0 @@
1
- /** @jsxImportSource @opentui/solid */
2
- import { Plugin } from "@opencode/plugin/tui";
3
- import { TextAttributes } from "@opentui/core";
4
- import { useTerminalDimensions } from "@opentui/solid";
5
- import { createSignal, onCleanup, Show } from "solid-js";
6
- import { loadConfig } from "./lib/config.js";
7
- import { resolveOpenCodeLocationRoots } from "./lib/config-file-utils.js";
8
- import { sanitizeDisplayText } from "./lib/display-sanitize.js";
9
- import { fitTableToWidth } from "./lib/markdown-table.js";
10
- import { layoutQuotaTables } from "./lib/quota-columns.js";
11
- import { parseQuotaSlashCommand, QUOTA_DIALOG_COMMANDS, } from "./lib/quota-dialog-command-specs.js";
12
- import { readQuotaReportMetadata } from "./lib/quota-report-message.js";
13
- import { renderableSections, renderKvRow, } from "./lib/report-document.js";
14
- import { QuotaRpc, } from "./rpc.js";
15
- const REFRESH_INTERVAL_MS = 60_000;
16
- const RPC_TIMEOUT_MS = 60_000;
17
- function getSessionID(event) {
18
- const sessionID = event.data?.sessionID;
19
- return typeof sessionID === "string" && sessionID ? sessionID : undefined;
20
- }
21
- function quotaClient(context) {
22
- return {
23
- config: {
24
- get: async () => ({ data: {} }),
25
- providers: async () => ({
26
- data: {
27
- providers: context.data.location?.provider.list(context.location ?? context.data.location.default()) ?? [],
28
- },
29
- }),
30
- },
31
- };
32
- }
33
- /** Same project roots as the server plugin: the location's Git worktree, else the location directory. */
34
- function quotaRoots(context) {
35
- return resolveOpenCodeLocationRoots(context.location?.directory ?? process.cwd());
36
- }
37
- /**
38
- * The server plugin computes every quota surface; the TUI asks it over the quota RPC. The
39
- * RPC client is made per call, never during setup. Each call names the TUI's location, so
40
- * the server uses that folder's settings, and gives up after a minute.
41
- */
42
- function quotaRpc(context) {
43
- return context.client.rpc(QuotaRpc);
44
- }
45
- function quotaRpcOptions(context) {
46
- return {
47
- location: context.location ?? context.data.location.default(),
48
- signal: AbortSignal.timeout(RPC_TIMEOUT_MS),
49
- };
50
- }
51
- async function getQuotaMessage(context, sessionID, surface) {
52
- const output = await quotaRpc(context).surface({ surface, sessionID }, quotaRpcOptions(context));
53
- return output.quota ?? undefined;
54
- }
55
- /** RPC calls reject with a plain `{ type, message }` object, not an Error. */
56
- function rpcErrorMessage(error) {
57
- if (error instanceof Error)
58
- return error.message;
59
- if (typeof error === "object" &&
60
- error !== null &&
61
- "message" in error &&
62
- typeof error.message === "string") {
63
- return error.message;
64
- }
65
- return String(error);
66
- }
67
- /**
68
- * One view's refresh loop, as in v4 (tui-refresh-lifecycle.ts): a refresh that
69
- * arrives while a load runs is coalesced into one follow-up load, and a result is
70
- * dropped when the view was disposed or a newer load started.
71
- */
72
- function createViewRefresh(load, apply) {
73
- let disposed = false;
74
- let loadVersion = 0;
75
- let inFlight = false;
76
- let queued = false;
77
- const refresh = () => {
78
- if (disposed)
79
- return;
80
- if (inFlight) {
81
- queued = true;
82
- return;
83
- }
84
- inFlight = true;
85
- const currentVersion = ++loadVersion;
86
- void load()
87
- .then((value) => {
88
- if (disposed || currentVersion !== loadVersion)
89
- return;
90
- apply(value);
91
- })
92
- .catch(reportFailure)
93
- .finally(() => {
94
- if (disposed)
95
- return;
96
- inFlight = false;
97
- if (queued) {
98
- queued = false;
99
- refresh();
100
- }
101
- });
102
- };
103
- return {
104
- refresh,
105
- dispose: () => {
106
- disposed = true;
107
- },
108
- };
109
- }
110
- function QuotaFooter(props) {
111
- const [lines, setLines] = createSignal([]);
112
- const view = createViewRefresh(async () => {
113
- const output = await quotaRpc(props.context).footer({ surface: props.surface, sessionID: props.sessionID }, quotaRpcOptions(props.context));
114
- return output.lines;
115
- }, (next) => {
116
- setLines(next);
117
- if (props.surface !== "home")
118
- return;
119
- // Fire-and-forget: the server writes the export file if enabled. A failed write
120
- // must never affect rendering, so log a warning and continue.
121
- void quotaRpc(props.context)
122
- .writeExport({}, quotaRpcOptions(props.context))
123
- .catch((error) => {
124
- console.warn(`[opencode-quota] quota export write failed: ${rpcErrorMessage(error)}`);
125
- });
126
- });
127
- view.refresh();
128
- const interval = setInterval(view.refresh, REFRESH_INTERVAL_MS);
129
- const stop = props.context.data.on("session.step.ended", (event) => {
130
- if (props.surface === "home" || getSessionID(event) === props.sessionID)
131
- view.refresh();
132
- });
133
- onCleanup(() => {
134
- view.dispose();
135
- clearInterval(interval);
136
- stop();
137
- });
138
- return (<Show when={lines().length}>
139
- <box flexDirection="column">
140
- {lines().map((line) => (<text fg={props.context.theme.text.muted}>{line}</text>))}
141
- </box>
142
- </Show>);
143
- }
144
- function reportFailure(error) {
145
- // OpenCode answers rpc.unavailable when no server plugin registered the quota RPC here.
146
- const hint = typeof error === "object" &&
147
- error !== null &&
148
- "type" in error &&
149
- error.type === "rpc.unavailable"
150
- ? " (OpenCode Quota's server plugin is not loaded for this folder)"
151
- : "";
152
- console.warn(`[opencode-quota] failed to load quota: ${rpcErrorMessage(error)}${hint}`);
153
- }
154
- /** OpenCode's dialog widths (dialogWidth in its ui/dialog.tsx). */
155
- const DIALOG_WIDTHS = { medium: 60, large: 88, xlarge: 116 };
156
- function sanitizeQuotaRow(row) {
157
- return {
158
- ...row,
159
- label: sanitizeDisplayText(row.label),
160
- value: sanitizeDisplayText(row.value),
161
- usage: row.usage === undefined ? undefined : sanitizeDisplayText(row.usage),
162
- reset: row.reset === undefined ? undefined : sanitizeDisplayText(row.reset),
163
- notes: row.notes.map(sanitizeDisplayText),
164
- };
165
- }
166
- /** A report's /quota blocks, sanitized, for layoutQuotaTables. */
167
- function quotaBlocks(section) {
168
- return section.blocks.flatMap((block) => block.kind === "quota"
169
- ? [
170
- {
171
- ...block,
172
- provider: sanitizeDisplayText(block.provider),
173
- rows: block.rows.map(sanitizeQuotaRow),
174
- },
175
- ]
176
- : []);
177
- }
178
- /**
179
- * A /quota table (see layoutQuotaTables): its title bold, like a section title, then its
180
- * header bold in OpenCode's primary accent, like the token tables, and its providers bold.
181
- * In the rows, labels, reset times, and notes are muted; bars, percents, and values base.
182
- */
183
- function QuotaTableView(props) {
184
- return (<box flexDirection="column">
185
- <text attributes={TextAttributes.BOLD} fg={props.theme.text.base}>
186
- {props.table.title}
187
- </text>
188
- {props.table.lines.map((line) => line.style === "row" ? (<text fg={props.theme.text.base} wrapMode="none">
189
- {line.segments.map((segment) => (<span style={{ fg: segment.muted ? props.theme.text.muted : props.theme.text.base }}>
190
- {segment.text}
191
- </span>))}
192
- </text>) : (<text attributes={TextAttributes.BOLD} fg={line.style === "header"
193
- ? props.theme.text.action.primary.selected
194
- : props.theme.text.base} wrapMode={line.style === "header" ? "none" : undefined}>
195
- {line.segments.map((segment) => segment.text).join("")}
196
- </text>))}
197
- </box>);
198
- }
199
- /**
200
- * One block of a report. Lines, and the chat lines of /quota rows the dialog's tables do not
201
- * fit, and key-value rows wrap at words. A table keeps each row on one line and spans `width`
202
- * columns when it fits (see fitTableToWidth), with the header row bold in OpenCode's primary
203
- * accent (its text color for a selected tab). Like OpenCode's sidebar, labels are muted and
204
- * values are base.
205
- */
206
- function ReportBlockView(props) {
207
- const block = props.block;
208
- if (block.kind === "lines" || block.kind === "quota") {
209
- return <text fg={props.theme.text.muted}>{sanitizeDisplayText(block.lines.join("\n"))}</text>;
210
- }
211
- if (block.kind === "kv") {
212
- return (<box flexDirection="column">
213
- {block.rows.map(({ value, ...key }) => value === undefined ? (<text fg={props.theme.text.muted}>{sanitizeDisplayText(renderKvRow(key))}</text>) : (<text fg={props.theme.text.muted}>
214
- {sanitizeDisplayText(renderKvRow({ ...key, trailingColon: true }))}
215
- <span style={{ fg: props.theme.text.base }}> {sanitizeDisplayText(value)}</span>
216
- </text>))}
217
- </box>);
218
- }
219
- // Read in the JSX, so the table is laid out again when the terminal is resized.
220
- const table = () => fitTableToWidth({
221
- headers: block.headers.map(sanitizeDisplayText),
222
- fullHeaders: block.fullHeaders?.map(sanitizeDisplayText),
223
- rows: block.rows.map((row) => row.map(sanitizeDisplayText)),
224
- aligns: block.aligns,
225
- width: props.width,
226
- });
227
- return (<box flexDirection="column">
228
- <text attributes={TextAttributes.BOLD} fg={props.theme.text.action.primary.selected} wrapMode="none">
229
- {table().header}
230
- </text>
231
- {table().rows.map((row) => (<text fg={props.theme.text.base} wrapMode="none">
232
- {row}
233
- </text>))}
234
- </box>);
235
- }
236
- /**
237
- * Draws a report document's sections with the same spacing as its plain text: one blank row
238
- * between the sections and between the blocks of a section, and a section title directly
239
- * above its first block. Section titles are bold. A /quota report's provider sections come
240
- * first; when their rows fit the dialog's tables (see layoutQuotaTables), the tables take
241
- * their place. The dialog shows the heading's subtitle under its own title, so the heading
242
- * line is left out.
243
- */
244
- function ReportDocumentView(props) {
245
- const sections = renderableSections(props.document);
246
- const blocks = sections.flatMap(quotaBlocks);
247
- // Read in the JSX, so the tables are laid out again when the terminal is resized.
248
- const tables = () => (blocks.length > 0 ? layoutQuotaTables(blocks, props.width) : undefined);
249
- return (<box flexDirection="column" gap={1}>
250
- {[
251
- ...(tables() ?? []).map((table) => <QuotaTableView table={table} theme={props.theme}/>),
252
- ...sections
253
- .filter((section) => !tables() || !section.blocks.some((block) => block.kind === "quota"))
254
- .map((section) => (<box flexDirection="column">
255
- {section.title ? (<text attributes={TextAttributes.BOLD} fg={props.theme.text.base}>
256
- {sanitizeDisplayText(section.title)}
257
- </text>) : null}
258
- <box flexDirection="column" gap={1}>
259
- {section.blocks.map((block) => (<ReportBlockView block={block} theme={props.theme} width={props.width}/>))}
260
- </box>
261
- </box>)),
262
- ]}
263
- </box>);
264
- }
265
- /**
266
- * Shows command output like OpenCode's alert dialog, but inside a scrollbox so long
267
- * reports (/quota_status, /tokens_*) stay reachable. The mouse wheel scrolls the box;
268
- * arrows, PageUp/PageDown, and Home/End scroll it from the keyboard. Esc is handled by
269
- * the host dialog; Enter and the ok/esc labels close it.
270
- */
271
- function QuotaOutputDialog(props) {
272
- const theme = () => props.context.theme.surface("dialog");
273
- const dimensions = useTerminalDimensions();
274
- // OpenCode's dialog is its size's width, at most the terminal width minus 2. Inside it
275
- // come this box's paddings (2 + 2) and one column for the scrollbox's scrollbar, which
276
- // shows when the report is taller than the box.
277
- const tableWidth = () => Math.min(DIALOG_WIDTHS[props.size], dimensions().width - 2) - 4 - 1;
278
- const subtitle = props.document.heading?.subtitle;
279
- // The host dialog starts a quarter of the way down the terminal. The remaining
280
- // 8 rows cover the title, ok button, paddings, gaps, and one spare row; the subtitle
281
- // takes one more.
282
- const maxHeight = () => Math.max(1, Math.floor(dimensions().height * 0.75) - 8 - (subtitle ? 1 : 0));
283
- let scroll;
284
- const close = () => props.context.ui.dialog.clear();
285
- props.context.keymap.layer(() => ({
286
- mode: "modal",
287
- commands: [
288
- { bind: "return", title: "Close", group: "Dialog", run: close },
289
- { bind: "up", title: "Scroll up", group: "Dialog", run: () => scroll?.scrollBy(-1) },
290
- { bind: "down", title: "Scroll down", group: "Dialog", run: () => scroll?.scrollBy(1) },
291
- {
292
- bind: "pageup",
293
- title: "Scroll up one page",
294
- group: "Dialog",
295
- run: () => scroll?.scrollBy(-maxHeight()),
296
- },
297
- {
298
- bind: "pagedown",
299
- title: "Scroll down one page",
300
- group: "Dialog",
301
- run: () => scroll?.scrollBy(maxHeight()),
302
- },
303
- { bind: "home", title: "Scroll to top", group: "Dialog", run: () => scroll?.scrollTo(0) },
304
- {
305
- bind: "end",
306
- title: "Scroll to bottom",
307
- group: "Dialog",
308
- run: () => scroll?.scrollTo(scroll.scrollHeight),
309
- },
310
- ],
311
- }));
312
- return (<box paddingLeft={2} paddingRight={2} gap={1}>
313
- <box>
314
- <box flexDirection="row" justifyContent="space-between">
315
- <text attributes={TextAttributes.BOLD} fg={theme().text.base}>
316
- {props.title}
317
- </text>
318
- <text fg={theme().text.muted} onMouseUp={close}>
319
- esc
320
- </text>
321
- </box>
322
- {subtitle ? <text fg={theme().text.muted}>{sanitizeDisplayText(subtitle)}</text> : null}
323
- </box>
324
- <box paddingBottom={1}>
325
- <scrollbox ref={(element) => {
326
- scroll = element;
327
- }} maxHeight={maxHeight()}>
328
- <ReportDocumentView document={props.document} theme={theme()} width={tableWidth()}/>
329
- </scrollbox>
330
- </box>
331
- <box flexDirection="row" justifyContent="flex-end" paddingBottom={1}>
332
- <box paddingLeft={3} paddingRight={3} backgroundColor={theme().background.action.primary.focused} onMouseUp={close}>
333
- <text fg={theme().text.action.primary.focused}>ok</text>
334
- </box>
335
- </box>
336
- </box>);
337
- }
338
- function showQuotaOutputDialog(context, output) {
339
- return new Promise((resolve) => {
340
- context.ui.dialog.show(() => (<QuotaOutputDialog context={context} title={output.title} document={output.document} size={output.dialogSize}/>), resolve);
341
- context.ui.dialog.set({ size: output.dialogSize });
342
- });
343
- }
344
- /**
345
- * Runs a quota command from the command palette or the prompt. It opens the dialog and
346
- * posts no message. `typed` holds the arguments typed after the command name in the prompt.
347
- */
348
- async function runQuotaCommand(context, command, sessionID, typed) {
349
- const spec = QUOTA_DIALOG_COMMANDS.find((item) => item.id === command);
350
- let argumentsText = typed?.argumentsText;
351
- // Only /tokens_between needs arguments; the palette asks for them.
352
- if (command === "tokens_between" && !typed) {
353
- const value = await context.ui.dialog.prompt({
354
- title: spec.title,
355
- placeholder: "YYYY-MM-DD YYYY-MM-DD",
356
- });
357
- if (value === undefined)
358
- return;
359
- argumentsText = value.trim() || undefined;
360
- }
361
- try {
362
- const result = await quotaRpc(context).command({ command, arguments: argumentsText, sessionID }, quotaRpcOptions(context));
363
- if (result.state === "noop")
364
- return;
365
- await showQuotaOutputDialog(context, {
366
- title: result.title,
367
- document: result.document,
368
- dialogSize: result.dialogSize,
369
- });
370
- }
371
- catch (error) {
372
- context.ui.toast.show({
373
- variant: "error",
374
- title: "OpenCode Quota",
375
- message: sanitizeDisplayText(rpcErrorMessage(error)),
376
- });
377
- }
378
- }
379
- /**
380
- * Quota slash commands that reach the server (from Web or Desktop, queued in the TUI, or
381
- * typed in "inline" mode) post the report into the chat as a pending inbox item. When a
382
- * report arrives for the session on screen, tuiCommandDisplay decides what the TUI shows: "dialog" opens the report in the dialog and cancels the pending
383
- * item, so no chat message remains; "inline" leaves the report in the chat.
384
- * A command sent from Home creates its session, and OpenCode opens that session before the
385
- * server runs the command, so its report also arrives for the session on screen.
386
- * The TUI cannot tell which client typed the command, so in "dialog" mode it also removes a
387
- * report that Web or Desktop requested for the same session while the TUI shows it.
388
- */
389
- async function showPostedQuotaReport(context, event) {
390
- const sessionID = getSessionID(event);
391
- if (!sessionID || sessionID !== getRouteSessionID(context))
392
- return;
393
- const inboxID = event.data?.inboxID;
394
- const item = event.data?.item;
395
- if (typeof inboxID !== "string")
396
- return;
397
- if (item?.type !== "user" || typeof item.payload?.text !== "string")
398
- return;
399
- const report = readQuotaReportMetadata(item.payload.metadata);
400
- if (!report)
401
- return;
402
- const spec = QUOTA_DIALOG_COMMANDS.find((candidate) => candidate.id === report.command);
403
- if (!spec)
404
- return;
405
- const config = await loadConfig(quotaClient(context), undefined, {
406
- configRootDir: quotaRoots(context).configRoot,
407
- });
408
- if (config.tuiCommandDisplay !== "dialog")
409
- return;
410
- // Cancelling deletes the pending item before it becomes a stored message, the same
411
- // request the TUI sends when the user deletes a pending prompt.
412
- void context.client.session.inbox.cancel({ sessionID, inboxID }).catch((error) => {
413
- const message = error instanceof Error ? error.message : String(error);
414
- console.warn(`[opencode-quota] failed to remove the quota report from the chat: ${message}`);
415
- });
416
- void showQuotaOutputDialog(context, {
417
- title: report.title,
418
- document: report.document,
419
- dialogSize: spec.dialogSize,
420
- });
421
- }
422
- function getRouteSessionID(context) {
423
- const route = context.ui.router.current();
424
- return route.type === "session" ? route.sessionID : undefined;
425
- }
426
- function registerQuotaCommands(context) {
427
- context.keymap.layer(() => ({
428
- mode: "global",
429
- commands: QUOTA_DIALOG_COMMANDS.map((spec) => ({
430
- id: `quota.${spec.id}`,
431
- title: spec.title,
432
- group: "OpenCode Quota",
433
- // No slash entry: the server plugin registers the "/" commands, so each is listed once.
434
- palette: true,
435
- run: () => runQuotaCommand(context, spec.id, getRouteSessionID(context)),
436
- })),
437
- }));
438
- }
439
- /**
440
- * Runs typed quota slash commands in the TUI. On Enter, before OpenCode submits the prompt,
441
- * a prompt that holds exactly a quota command is cleared and the command opens its dialog.
442
- * So the report never shows in the chat, and on Home no session is created for it.
443
- * Everything else, and every command in "inline" mode, goes on to OpenCode's submit, and
444
- * the server command posts the report as before.
445
- * The layer has no mode, so it is off while the "/" list or a dialog is open. tuiCommandDisplay
446
- * must be known when Enter is pressed, so it is read at start and again after each typed
447
- * quota command. Until the first read finishes, typed commands follow the default, "dialog".
448
- */
449
- function registerTypedQuotaCommands(context) {
450
- let commandDisplay;
451
- const readCommandDisplay = () => {
452
- void loadConfig(quotaClient(context), undefined, {
453
- configRootDir: quotaRoots(context).configRoot,
454
- })
455
- .then((config) => {
456
- commandDisplay = config.tuiCommandDisplay;
457
- })
458
- .catch(reportFailure);
459
- };
460
- readCommandDisplay();
461
- context.keymap.layer(() => ({
462
- // Above OpenCode's textarea layer, which submits the prompt on Enter.
463
- priority: 1,
464
- commands: [
465
- {
466
- bind: "return",
467
- // Synchronous on purpose: a returned promise counts as handled.
468
- run: () => {
469
- const editor = context.renderer.currentFocusedEditor;
470
- const typed = editor ? parseQuotaSlashCommand(editor.plainText) : undefined;
471
- if (!editor || !typed)
472
- return false;
473
- const display = commandDisplay;
474
- readCommandDisplay();
475
- if (display === "inline")
476
- return false;
477
- editor.clear();
478
- void runQuotaCommand(context, typed.command, getRouteSessionID(context), typed);
479
- },
480
- },
481
- ],
482
- }));
483
- }
484
- function SidebarQuotaView(props) {
485
- const [open, setOpen] = createSignal(true);
486
- const [quota, setQuota] = createSignal(undefined);
487
- const lines = () => quota()?.message.split("\n") ?? [];
488
- const expandable = () => lines().length > 2;
489
- const view = createViewRefresh(() => getQuotaMessage(props.context, props.sessionID, "sidebar"), setQuota);
490
- view.refresh();
491
- const interval = setInterval(view.refresh, REFRESH_INTERVAL_MS);
492
- const unsubscribe = props.context.data.on("session.step.ended", (event) => {
493
- if (getSessionID(event) === props.sessionID)
494
- view.refresh();
495
- });
496
- onCleanup(() => {
497
- view.dispose();
498
- clearInterval(interval);
499
- unsubscribe();
500
- });
501
- return (<box flexDirection="column">
502
- <box flexDirection="row" gap={1} onMouseDown={() => expandable() && setOpen((value) => !value)}>
503
- <Show when={expandable()}>
504
- <text fg={props.context.theme.text.base}>{open() ? "▼" : "▶"}</text>
505
- </Show>
506
- <text fg={props.context.theme.text.base}>
507
- <b>Quota</b>
508
- <Show when={expandable() && !open() && quota()?.activeProviderCount}>
509
- {(count) => ` (${count()} active)`}
510
- </Show>
511
- </text>
512
- </box>
513
- <Show when={quota()} fallback={<text fg={props.context.theme.text.muted}>No quota data available</text>}>
514
- <Show when={!expandable() || open()}>
515
- {lines().map((line) =>
516
- // Provider headers such as "[Copilot] (individual)" are bold, like section titles.
517
- line.startsWith("[") ? (<text fg={props.context.theme.text.base} wrapMode="none">
518
- <b>{line}</b>
519
- </text>) : (<text fg={props.context.theme.text.muted} wrapMode="none">
520
- {line || " "}
521
- </text>))}
522
- </Show>
523
- </Show>
524
- </box>);
525
- }
526
- const plugin = Plugin.define({
527
- id: "@slkiser/opencode-quota",
528
- setup(context) {
529
- const api = context;
530
- let disposeEvents;
531
- const questionToolCalls = new Set();
532
- const disposeApp = api.ui.slot({
533
- append: "app",
534
- render: () => {
535
- // OpenCode mounts this slot again when it reconnects to its server, which can also
536
- // happen right after it starts. Leaving a mount drops its keymap layers and event
537
- // listeners, so each mount replaces the listeners and registers everything again.
538
- disposeEvents?.();
539
- registerQuotaCommands(api);
540
- registerTypedQuotaCommands(api);
541
- const trigger = (event, reason) => {
542
- const sessionID = getSessionID(event);
543
- if (!sessionID)
544
- return;
545
- // As in v4, subagent (child) sessions never show quota toasts.
546
- if (api.data.session.get(sessionID)?.parentID)
547
- return;
548
- void getQuotaMessage(api, sessionID, reason)
549
- .then((quota) => {
550
- if (!quota)
551
- return;
552
- api.ui.toast.show({
553
- variant: "info",
554
- title: "OpenCode Quota",
555
- message: quota.message,
556
- duration: quota.duration,
557
- });
558
- if (quota.resetNotification) {
559
- api.ui.toast.show({
560
- variant: "success",
561
- title: "Quota available",
562
- message: sanitizeDisplayText(quota.resetNotification),
563
- duration: quota.duration,
564
- });
565
- }
566
- })
567
- .catch(reportFailure);
568
- };
569
- const onExecutionSucceeded = api.data.on("session.execution.succeeded", (event) => trigger(event, "idle"));
570
- const onCompacted = api.data.on("session.compaction.ended", (event) => trigger(event, "compacted"));
571
- const onQuestionStarted = api.data.on("session.tool.input.started", (event) => {
572
- const id = event.data?.id;
573
- if (event.data?.name === "question" && typeof id === "string") {
574
- questionToolCalls.add(id);
575
- }
576
- });
577
- const onQuestionSucceeded = api.data.on("session.tool.success", (event) => {
578
- const id = event.data?.id;
579
- if (typeof id === "string" && questionToolCalls.delete(id))
580
- trigger(event, "question");
581
- });
582
- const onQuestionFailed = api.data.on("session.tool.failed", (event) => {
583
- const id = event.data?.id;
584
- if (typeof id === "string")
585
- questionToolCalls.delete(id);
586
- });
587
- const onInboxEnqueued = api.data.on("session.inbox.enqueued", (event) => {
588
- void showPostedQuotaReport(api, event).catch(reportFailure);
589
- });
590
- disposeEvents = () => {
591
- onExecutionSucceeded();
592
- onCompacted();
593
- onQuestionStarted();
594
- onQuestionSucceeded();
595
- onQuestionFailed();
596
- onInboxEnqueued();
597
- questionToolCalls.clear();
598
- };
599
- return null;
600
- },
601
- });
602
- const disposeSidebar = api.ui.slot({
603
- append: "sidebar.content",
604
- render: (props) => <SidebarQuotaView context={api} sessionID={props.sessionID}/>,
605
- });
606
- const disposePrompt = api.ui.slot({
607
- append: "prompt.footer",
608
- render: (props) => <QuotaFooter context={api} sessionID={props.sessionID} surface="prompt"/>,
609
- });
610
- const disposeHome = api.ui.slot({
611
- append: "home.footer.status",
612
- render: () => <QuotaFooter context={api} surface="home"/>,
613
- });
614
- return () => {
615
- disposeEvents?.();
616
- disposeApp();
617
- disposeSidebar();
618
- disposePrompt();
619
- disposeHome();
620
- };
621
- },
622
- });
623
- export default plugin;
624
- //# sourceMappingURL=tui-v2.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tui-v2.jsx","sourceRoot":"","sources":["../src/tui-v2.tsx"],"names":[],"mappings":"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"}