@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
@@ -0,0 +1,148 @@
1
+ import { createTextNode as _$createTextNode } from "@opentui/solid";
2
+ import { createComponent as _$createComponent } from "@opentui/solid";
3
+ import { insertNode as _$insertNode } from "@opentui/solid";
4
+ import { effect as _$effect } from "@opentui/solid";
5
+ import { insert as _$insert } from "@opentui/solid";
6
+ import { memo as _$memo } from "@opentui/solid";
7
+ import { setProp as _$setProp } from "@opentui/solid";
8
+ import { createElement as _$createElement } from "@opentui/solid";
9
+ /** @jsxImportSource @opentui/solid */
10
+ /**
11
+ * The Quota panel in the session sidebar (§4.1) and its collapsed form (§4.2). Click the
12
+ * title to collapse or expand it; OpenCode's plugin storage remembers the choice. The lines
13
+ * come from `view/text.ts`; this file only colors them, and marks the line the quota window's
14
+ * Settings tabs have selected.
15
+ */
16
+
17
+ import { createSignal, onCleanup, Show } from "solid-js";
18
+ import { DEFAULT_WORDS } from "../view/format.js";
19
+ import { visibleGroups } from "../view/select.js";
20
+ import { collapsedLines, collapsedTitle, sidebarLines, sidebarTitle } from "../view/text.js";
21
+ import { roleColor, segmentColor } from "./theme.js";
22
+
23
+ /** What the quota window's Settings tabs tell the surfaces while you edit them. */
24
+
25
+ /** What every always-on surface reads. */
26
+
27
+ /** Columns the panel uses until it knows its real width. */
28
+ const DEFAULT_SIDEBAR_WIDTH = 36;
29
+
30
+ /** The names of a marked line take the accent color; bars and numbers keep theirs. */
31
+ const MARKED_ROLES = new Set(["provider", "label", "statusName"]);
32
+
33
+ /** One line of a surface, each segment in its color. A marked line has a soft background. */
34
+ export function LineText(props) {
35
+ const theme = () => props.host.theme();
36
+ const color = segment => props.marked && MARKED_ROLES.has(segment.role) ? theme().text.action.primary.selected : segmentColor(theme(), props.host.display(), segment);
37
+ return (() => {
38
+ var _el$ = _$createElement("text");
39
+ _$setProp(_el$, "wrapMode", "none");
40
+ _$setProp(_el$, "selectable", false);
41
+ _$setProp(_el$, "flexShrink", 0);
42
+ _$insert(_el$, () => props.line.segments.length === 0 ? " " : null, null);
43
+ _$insert(_el$, () => props.line.segments.map(segment => (() => {
44
+ var _el$2 = _$createElement("span");
45
+ _$insert(_el$2, () => segment.text);
46
+ _$effect(_$p => _$setProp(_el$2, "style", {
47
+ fg: color(segment),
48
+ bold: segment.bold === true
49
+ }, _$p));
50
+ return _el$2;
51
+ })()), null);
52
+ _$effect(_$p => _$setProp(_el$, "bg", props.marked ? theme().background.raised.high : undefined, _$p));
53
+ return _el$;
54
+ })();
55
+ }
56
+ export function SidebarPanel(props) {
57
+ const host = props.host;
58
+ const stop = host.quota.watch(props.sessionID);
59
+ onCleanup(stop);
60
+ onCleanup(host.editing.sidebarShown());
61
+ const open = () => host.editing.panelOpen() ?? props.open();
62
+ const [width, setWidth] = createSignal(DEFAULT_SIDEBAR_WIDTH);
63
+ const [nowMs, setNowMs] = createSignal(Date.now());
64
+ // Reset times count down between snapshots.
65
+ const clock = setInterval(() => setNowMs(Date.now()), 60_000);
66
+ onCleanup(() => clearInterval(clock));
67
+ const display = () => host.display();
68
+ const snapshot = () => host.quota.snapshot(props.sessionID);
69
+ const words = () => snapshot()?.words ?? DEFAULT_WORDS;
70
+ const groups = surface => {
71
+ const current = snapshot();
72
+ return current ? visibleGroups(current, display(), surface, words()) : [];
73
+ };
74
+ const lines = () => {
75
+ const current = snapshot();
76
+ if (!current) return [];
77
+ if (!open()) {
78
+ if (!display().surfaces.collapsed.enabled) return [];
79
+ return collapsedLines({
80
+ groups: groups("collapsed"),
81
+ layout: display().layout,
82
+ words: words(),
83
+ nowMs: nowMs(),
84
+ width: width(),
85
+ window: display().window,
86
+ runsOut: display().runsOut.collapsed
87
+ });
88
+ }
89
+ return sidebarLines({
90
+ groups: groups("sidebar"),
91
+ layout: display().layout,
92
+ words: words(),
93
+ nowMs: nowMs(),
94
+ width: width(),
95
+ runsOut: display().runsOut.sidebar,
96
+ ...(display().sidebar.sessionTokens && current.sessionTokens ? {
97
+ sessionTokens: current.sessionTokens
98
+ } : {})
99
+ });
100
+ };
101
+ const title = () => open() ? sidebarTitle(words()) : collapsedTitle(groups("collapsed"));
102
+ const marked = () => host.editing.marked(open() ? "sidebar" : "collapsed");
103
+ return _$createComponent(Show, {
104
+ get when() {
105
+ return display().surfaces.sidebar.enabled;
106
+ },
107
+ get children() {
108
+ var _el$3 = _$createElement("box"),
109
+ _el$4 = _$createElement("text"),
110
+ _el$5 = _$createElement("b");
111
+ _$insertNode(_el$3, _el$4);
112
+ _$setProp(_el$3, "flexDirection", "column");
113
+ _$setProp(_el$3, "onSizeChange", function () {
114
+ const measured = this.width;
115
+ if (measured > 0) queueMicrotask(() => setWidth(measured));
116
+ });
117
+ _$insertNode(_el$4, _el$5);
118
+ _$setProp(_el$4, "wrapMode", "none");
119
+ _$setProp(_el$4, "selectable", false);
120
+ _$setProp(_el$4, "onMouseDown", () => props.setOpen(!open()));
121
+ _$insert(_el$5, title);
122
+ _$insert(_el$3, _$createComponent(Show, {
123
+ get when() {
124
+ return snapshot();
125
+ },
126
+ get fallback() {
127
+ return (() => {
128
+ var _el$6 = _$createElement("text");
129
+ _$insertNode(_el$6, _$createTextNode(`Loading quota…`));
130
+ _$effect(_$p => _$setProp(_el$6, "fg", host.theme().text.muted, _$p));
131
+ return _el$6;
132
+ })();
133
+ },
134
+ get children() {
135
+ return lines().map(line => _$createComponent(LineText, {
136
+ line: line,
137
+ host: host,
138
+ get marked() {
139
+ return _$memo(() => line.id !== "")() && line.id === marked();
140
+ }
141
+ }));
142
+ }
143
+ }), null);
144
+ _$effect(_$p => _$setProp(_el$4, "fg", roleColor(host.theme(), display(), "title"), _$p));
145
+ return _el$3;
146
+ }
147
+ });
148
+ }
@@ -0,0 +1,14 @@
1
+ import type { JSX } from "@opentui/solid";
2
+ import { type SurfaceHost } from "./sidebar.js";
3
+ export declare function StatusLine(props: {
4
+ host: SurfaceHost;
5
+ sessionID?: string;
6
+ }): JSX.Element;
7
+ /**
8
+ * The bottom of Home: the maintainer notice line, then the status line when it is on for Home.
9
+ * Home has its own switch (`statusLine.home`); the one for sessions does not hide it.
10
+ */
11
+ export declare function HomeFooter(props: {
12
+ host: SurfaceHost;
13
+ }): JSX.Element;
14
+ //# sourceMappingURL=status-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-line.d.ts","sourceRoot":"","sources":["../../src/tui/status-line.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAW1C,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAG1D,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA+HxF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAyBpE"}
@@ -0,0 +1,225 @@
1
+ import { createTextNode as _$createTextNode } from "@opentui/solid";
2
+ import { insertNode as _$insertNode } from "@opentui/solid";
3
+ import { effect as _$effect } from "@opentui/solid";
4
+ import { insert as _$insert } from "@opentui/solid";
5
+ import { createComponent as _$createComponent } from "@opentui/solid";
6
+ import { memo as _$memo } from "@opentui/solid";
7
+ import { setProp as _$setProp } from "@opentui/solid";
8
+ import { createElement as _$createElement } from "@opentui/solid";
9
+ /** @jsxImportSource @opentui/solid */
10
+ /**
11
+ * The quota status line under the message box (§4.3) and at the bottom of Home. It takes only
12
+ * the room OpenCode's footer leaves free (flexBasis 0), so it never squeezes the folder name or
13
+ * other plugins, shows the most detail that fits every provider, and scrolls when even "% only"
14
+ * does not fit: mouse wheel, or click "‹" / "+N ›".
15
+ */
16
+
17
+ import { createEffect, createSignal, onCleanup, Show } from "solid-js";
18
+ import { DEFAULT_WORDS } from "../view/format.js";
19
+ import { visibleGroups } from "../view/select.js";
20
+ import { bigStatusLine, statusLayout } from "../view/text.js";
21
+ import { LineText } from "./sidebar.js";
22
+ import { roleColor } from "./theme.js";
23
+ export function StatusLine(props) {
24
+ const host = props.host;
25
+ onCleanup(host.quota.watch(props.sessionID));
26
+ const [room, setRoom] = createSignal(0);
27
+ const [start, setStart] = createSignal(0);
28
+ const [nowMs, setNowMs] = createSignal(Date.now());
29
+ const clock = setInterval(() => setNowMs(Date.now()), 60_000);
30
+ onCleanup(() => clearInterval(clock));
31
+ const display = () => host.display();
32
+ const input = () => {
33
+ const snapshot = host.quota.snapshot(props.sessionID);
34
+ if (!snapshot) return undefined;
35
+ const words = snapshot.words ?? DEFAULT_WORDS;
36
+ return {
37
+ groups: visibleGroups(snapshot, display(), "statusLine", words),
38
+ layout: display().layout,
39
+ words,
40
+ nowMs: nowMs(),
41
+ window: display().statusLine.window,
42
+ runsOut: display().runsOut.statusLine
43
+ };
44
+ };
45
+ const big = () => display().statusLine.detail === "one";
46
+ const layout = () => {
47
+ const current = input();
48
+ if (!current || big()) return undefined;
49
+ const detail = display().statusLine.detail;
50
+ return statusLayout(current, room(), start(), detail === "one" ? "auto" : detail);
51
+ };
52
+ const count = () => input()?.groups.length ?? 0;
53
+ const step = delta => setStart(Math.max(0, Math.min(count() - 1, start() + delta)));
54
+ const color = role => roleColor(host.theme(), display(), role);
55
+ const marked = () => host.editing.marked("statusLine");
56
+ // The provider selected on the Settings tab scrolls into view.
57
+ createEffect(() => {
58
+ const index = input()?.groups.findIndex(group => group.providerId === marked()) ?? -1;
59
+ const current = layout();
60
+ if (index < 0 || !current || room() === 0) return;
61
+ if (index < current.start || index >= current.start + current.shown.length) setStart(index);
62
+ });
63
+
64
+ // Optional: page through by itself every few seconds.
65
+ createEffect(() => {
66
+ const seconds = display().statusLine.autoScrollSeconds;
67
+ if (!seconds) return;
68
+ const timer = setInterval(() => {
69
+ const current = layout();
70
+ if (!current) return;
71
+ setStart(current.hiddenAfter > 0 ? current.start + current.shown.length : 0);
72
+ }, seconds * 1000);
73
+ onCleanup(() => clearInterval(timer));
74
+ });
75
+ return (() => {
76
+ var _el$ = _$createElement("box");
77
+ _$setProp(_el$, "flexDirection", "row");
78
+ _$setProp(_el$, "justifyContent", "flex-end");
79
+ _$setProp(_el$, "flexGrow", 1000);
80
+ _$setProp(_el$, "flexShrink", 1);
81
+ _$setProp(_el$, "flexBasis", 0);
82
+ _$setProp(_el$, "minWidth", 0);
83
+ _$setProp(_el$, "overflow", "hidden");
84
+ _$setProp(_el$, "onSizeChange", function () {
85
+ // In OpenCode's footer the box can end up one column narrower than measured here
86
+ // (seen at 200 columns), which cut the first letter; one spare column avoids it.
87
+ const width = Math.max(0, this.width - 1);
88
+ queueMicrotask(() => setRoom(width));
89
+ });
90
+ _$setProp(_el$, "onMouseScroll", event => {
91
+ const direction = event.scroll?.direction;
92
+ if (direction === "down" || direction === "right") step(1);
93
+ if (direction === "up" || direction === "left") step(-1);
94
+ });
95
+ _$insert(_el$, _$createComponent(Show, {
96
+ get when() {
97
+ return _$memo(() => !!big())() ? input() : undefined;
98
+ },
99
+ children: current => // The room is 0 until OpenCode measures the box; until then the line is drawn whole.
100
+ _$createComponent(Show, {
101
+ get when() {
102
+ return bigStatusLine(current(), room() || undefined);
103
+ },
104
+ children: line => _$createComponent(LineText, {
105
+ get line() {
106
+ return line();
107
+ },
108
+ host: host,
109
+ get marked() {
110
+ return line().id === marked();
111
+ }
112
+ })
113
+ })
114
+ }), null);
115
+ _$insert(_el$, _$createComponent(Show, {
116
+ get when() {
117
+ return layout();
118
+ },
119
+ children: current => [_$createComponent(Show, {
120
+ get when() {
121
+ return _$memo(() => current().start > 0)() && current().shown.length > 0;
122
+ },
123
+ get children() {
124
+ var _el$2 = _$createElement("text");
125
+ _$insertNode(_el$2, _$createTextNode(`‹ `));
126
+ _$setProp(_el$2, "wrapMode", "none");
127
+ _$setProp(_el$2, "flexShrink", 0);
128
+ _$setProp(_el$2, "selectable", false);
129
+ _$setProp(_el$2, "onMouseUp", () => step(-1));
130
+ _$effect(_$p => _$setProp(_el$2, "fg", color("arrows"), _$p));
131
+ return _el$2;
132
+ }
133
+ }), _$memo(() => current().shown.map((line, index) => [_$createComponent(Show, {
134
+ when: index > 0,
135
+ get children() {
136
+ var _el$5 = _$createElement("text");
137
+ _$setProp(_el$5, "wrapMode", "none");
138
+ _$setProp(_el$5, "flexShrink", 0);
139
+ _$setProp(_el$5, "selectable", false);
140
+ _$insert(_el$5, () => display().layout.separator);
141
+ _$effect(_$p => _$setProp(_el$5, "fg", color("separator"), _$p));
142
+ return _el$5;
143
+ }
144
+ }), _$createComponent(LineText, {
145
+ line: line,
146
+ host: host,
147
+ get marked() {
148
+ return line.id === marked();
149
+ }
150
+ })])), _$createComponent(Show, {
151
+ get when() {
152
+ return _$memo(() => current().hiddenAfter > 0)() && current().shown.length > 0;
153
+ },
154
+ get children() {
155
+ var _el$4 = _$createElement("text");
156
+ _$setProp(_el$4, "wrapMode", "none");
157
+ _$setProp(_el$4, "flexShrink", 0);
158
+ _$setProp(_el$4, "selectable", false);
159
+ _$setProp(_el$4, "onMouseUp", () => step(1));
160
+ _$insert(_el$4, () => ` +${current().hiddenAfter} ›`);
161
+ _$effect(_$p => _$setProp(_el$4, "fg", color("arrows"), _$p));
162
+ return _el$4;
163
+ }
164
+ })]
165
+ }), null);
166
+ _$effect(_$p => _$setProp(_el$, "maxWidth", display().statusLine.width || undefined, _$p));
167
+ return _el$;
168
+ })();
169
+ }
170
+
171
+ /**
172
+ * The bottom of Home: the maintainer notice line, then the status line when it is on for Home.
173
+ * Home has its own switch (`statusLine.home`); the one for sessions does not hide it.
174
+ */
175
+ export function HomeFooter(props) {
176
+ const host = props.host;
177
+ onCleanup(host.quota.watchHome());
178
+ const showStatus = () => host.display().statusLine.home;
179
+ return _$createComponent(Show, {
180
+ get when() {
181
+ return host.quota.homeLine() || showStatus();
182
+ },
183
+ get children() {
184
+ var _el$6 = _$createElement("box");
185
+ _$setProp(_el$6, "flexDirection", "row");
186
+ _$setProp(_el$6, "gap", 2);
187
+ _$setProp(_el$6, "flexShrink", 1);
188
+ _$setProp(_el$6, "minWidth", 0);
189
+ _$insert(_el$6, _$createComponent(Show, {
190
+ get when() {
191
+ return host.quota.homeLine();
192
+ },
193
+ get children() {
194
+ var _el$7 = _$createElement("text");
195
+ _$setProp(_el$7, "wrapMode", "none");
196
+ _$setProp(_el$7, "flexShrink", 0);
197
+ _$insert(_el$7, () => host.quota.homeLine());
198
+ _$effect(_$p => _$setProp(_el$7, "fg", host.theme().text.muted, _$p));
199
+ return _el$7;
200
+ }
201
+ }), null);
202
+ _$insert(_el$6, _$createComponent(Show, {
203
+ get when() {
204
+ return showStatus();
205
+ },
206
+ get children() {
207
+ return _$createComponent(StatusLine, {
208
+ host: host
209
+ });
210
+ }
211
+ }), null);
212
+ _$effect(_p$ => {
213
+ var _v$ = showStatus() ? 1000 : 0,
214
+ _v$2 = showStatus() ? 0 : "auto";
215
+ _v$ !== _p$.e && (_p$.e = _$setProp(_el$6, "flexGrow", _v$, _p$.e));
216
+ _v$2 !== _p$.t && (_p$.t = _$setProp(_el$6, "flexBasis", _v$2, _p$.t));
217
+ return _p$;
218
+ }, {
219
+ e: undefined,
220
+ t: undefined
221
+ });
222
+ return _el$6;
223
+ }
224
+ });
225
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Quota's colors from the user's OpenCode theme. Every color role follows a named theme color
3
+ * unless the display settings pick another one or a fixed "#rrggbb". The theme is read on every
4
+ * call, so a surface that colors inside its JSX follows a theme or light/dark switch at once.
5
+ */
6
+ import { RGBA } from "@opentui/core";
7
+ import type { ColorRole, Segment } from "../view/text.js";
8
+ import { type ColorName, type DisplaySettings } from "./display.js";
9
+ /** The theme tokens quota reads (OpenCode's `ResolvedTheme`). */
10
+ export type Theme = {
11
+ text: {
12
+ base: RGBA;
13
+ muted: RGBA;
14
+ /** The label of the line the Settings tabs have selected, on a surface. */
15
+ action: {
16
+ primary: {
17
+ selected: RGBA;
18
+ };
19
+ };
20
+ feedback: Record<"success" | "warning" | "error" | "info", {
21
+ base: RGBA;
22
+ }>;
23
+ };
24
+ /** Behind the line the Settings tabs have selected, on a surface. */
25
+ background: {
26
+ raised: {
27
+ high: RGBA;
28
+ };
29
+ };
30
+ hue: {
31
+ accent: Record<number, RGBA>;
32
+ };
33
+ };
34
+ export declare function namedColor(theme: Theme, name: ColorName): RGBA;
35
+ /** The bar color for a percent left: plenty left, getting low, or almost out. */
36
+ export declare function levelColor(theme: Theme, display: DisplaySettings, percent: number): RGBA;
37
+ /** A role's color. A role set to "bar" takes the level color of the row's percent. */
38
+ export declare function roleColor(theme: Theme, display: DisplaySettings, role: ColorRole, percent?: number): RGBA;
39
+ /** The color of one line segment. */
40
+ export declare function segmentColor(theme: Theme, display: DisplaySettings, segment: Segment): RGBA;
41
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,eAAe,EAAgB,MAAM,cAAc,CAAC;AAEpG,iEAAiE;AACjE,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,IAAI,CAAC;QACZ,2EAA2E;QAC3E,MAAM,EAAE;YAAE,OAAO,EAAE;gBAAE,QAAQ,EAAE,IAAI,CAAA;aAAE,CAAA;SAAE,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,EAAE;YAAE,IAAI,EAAE,IAAI,CAAA;SAAE,CAAC,CAAC;KAC5E,CAAC;IACF,qEAAqE;IACrE,UAAU,EAAE;QAAE,MAAM,EAAE;YAAE,IAAI,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CAAC;IACvC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;KAAE,CAAC;CACvC,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAiB9D;AAYD,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGxF;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,SAAS,EACf,OAAO,SAAM,GACZ,IAAI,CAGN;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAI3F"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Quota's colors from the user's OpenCode theme. Every color role follows a named theme color
3
+ * unless the display settings pick another one or a fixed "#rrggbb". The theme is read on every
4
+ * call, so a surface that colors inside its JSX follows a theme or light/dark switch at once.
5
+ */
6
+ import { RGBA } from "@opentui/core";
7
+ import { levelOf } from "../view/format.js";
8
+ import { THEME_COLORS } from "./display.js";
9
+ export function namedColor(theme, name) {
10
+ switch (name) {
11
+ case "text":
12
+ return theme.text.base;
13
+ case "muted":
14
+ return theme.text.muted;
15
+ case "accent":
16
+ return theme.hue.accent[500] ?? theme.text.base;
17
+ case "green":
18
+ return theme.text.feedback.success.base;
19
+ case "yellow":
20
+ return theme.text.feedback.warning.base;
21
+ case "red":
22
+ return theme.text.feedback.error.base;
23
+ case "blue":
24
+ return theme.text.feedback.info.base;
25
+ }
26
+ }
27
+ /** A fixed choice ("bar" is not one: the level roles can't follow themselves). */
28
+ function fixedColor(theme, choice, fallback) {
29
+ if (choice === "bar")
30
+ return namedColor(theme, fallback);
31
+ return choice.startsWith("#") ? RGBA.fromHex(choice) : namedColor(theme, choice);
32
+ }
33
+ function choiceFor(display, role) {
34
+ return display.colors[role] ?? THEME_COLORS[role];
35
+ }
36
+ /** The bar color for a percent left: plenty left, getting low, or almost out. */
37
+ export function levelColor(theme, display, percent) {
38
+ const role = levelOf(percent, display.thresholds);
39
+ return fixedColor(theme, choiceFor(display, role), THEME_COLORS[role]);
40
+ }
41
+ /** A role's color. A role set to "bar" takes the level color of the row's percent. */
42
+ export function roleColor(theme, display, role, percent = 100) {
43
+ const choice = choiceFor(display, role);
44
+ return choice === "bar" ? levelColor(theme, display, percent) : fixedColor(theme, choice, "text");
45
+ }
46
+ /** The color of one line segment. */
47
+ export function segmentColor(theme, display, segment) {
48
+ return segment.role === "bar"
49
+ ? levelColor(theme, display, segment.percent ?? 100)
50
+ : roleColor(theme, display, segment.role, segment.percent);
51
+ }
52
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAA0D,YAAY,EAAE,MAAM,cAAc,CAAC;AAgBpG,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,IAAe;IACtD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1C,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1C,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IACzC,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CAAC,KAAY,EAAE,MAAmB,EAAE,QAAmB;IACxE,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,MAAmB,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,SAAS,CAAC,OAAwB,EAAE,IAAe;IAC1D,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,OAAwB,EAAE,OAAe;IAChF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAc,CAAC,CAAC;AACtF,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CACvB,KAAY,EACZ,OAAwB,EACxB,IAAe,EACf,OAAO,GAAG,GAAG;IAEb,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACpG,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,YAAY,CAAC,KAAY,EAAE,OAAwB,EAAE,OAAgB;IACnF,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK;QAC3B,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC;QACpD,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,37 @@
1
+ /** @jsxImportSource @opentui/solid */
2
+ /**
3
+ * Quota toasts in the sidebar's colors, through a trick OpenCode does not promise to keep.
4
+ * OpenCode's plugin API types a toast's message as a string and draws a string in one color.
5
+ * OpenCode's toast (checked on 2.0.26 to 2.0.28) passes the message on unchanged and puts it
6
+ * inside its <text>, and plugins share OpenCode's @opentui/solid and solid-js, so a message of
7
+ * <span>s draws each span in its own color.
8
+ *
9
+ * Quota sends the spans on every OpenCode version, once the TUI has drawn (the spans are made
10
+ * under its renderer). Any error while making or showing the spans shows the plain message: the
11
+ * same characters.
12
+ */
13
+ import type { JSX } from "@opentui/solid";
14
+ import { type Owner } from "solid-js";
15
+ import type { Line } from "../view/text.js";
16
+ import type { DisplaySettings } from "./display.js";
17
+ import { type Theme } from "./theme.js";
18
+ import type { ToastOptions } from "./toasts.js";
19
+ export type ColoredToastHost = {
20
+ /** OpenCode's own toast. */
21
+ show: (toast: ToastOptions) => void;
22
+ theme: () => Theme;
23
+ display: () => DisplaySettings;
24
+ /** A Solid owner inside OpenCode's renderer, where spans can be made; none before it draws. */
25
+ owner: () => Owner | undefined;
26
+ };
27
+ /**
28
+ * The children of OpenCode's toast <text>: each segment a <span> in its color, "\n" between
29
+ * lines. A span reads bold from its style's `bold` key; it ignores an `attributes` key there.
30
+ */
31
+ export declare function coloredMessage(lines: Line[], theme: Theme, display: DisplaySettings): JSX.Element;
32
+ /**
33
+ * Shows a toast. A quota toast's `lines` show in their colors once the TUI has drawn (see
34
+ * above); before that, and when that fails, the toast's plain message shows.
35
+ */
36
+ export declare function createToastShow(host: ColoredToastHost): (toast: ToastOptions, lines?: Line[]) => void;
37
+ //# sourceMappingURL=toast-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast-colors.d.ts","sourceRoot":"","sources":["../../src/tui/toast-colors.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAA0B,KAAK,KAAK,EAAgB,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4BAA4B;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,MAAM,KAAK,CAAC;IACnB,OAAO,EAAE,MAAM,eAAe,CAAC;IAC/B,+FAA+F;IAC/F,KAAK,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CASjG;AAwBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,WACrC,YAAY,UAAU,IAAI,EAAE,KAAG,IAAI,CAgBnD"}
@@ -0,0 +1,77 @@
1
+ import { setProp as _$setProp } from "@opentui/solid";
2
+ import { effect as _$effect } from "@opentui/solid";
3
+ import { insert as _$insert } from "@opentui/solid";
4
+ import { createElement as _$createElement } from "@opentui/solid";
5
+ /** @jsxImportSource @opentui/solid */
6
+ /**
7
+ * Quota toasts in the sidebar's colors, through a trick OpenCode does not promise to keep.
8
+ * OpenCode's plugin API types a toast's message as a string and draws a string in one color.
9
+ * OpenCode's toast (checked on 2.0.26 to 2.0.28) passes the message on unchanged and puts it
10
+ * inside its <text>, and plugins share OpenCode's @opentui/solid and solid-js, so a message of
11
+ * <span>s draws each span in its own color.
12
+ *
13
+ * Quota sends the spans on every OpenCode version, once the TUI has drawn (the spans are made
14
+ * under its renderer). Any error while making or showing the spans shows the plain message: the
15
+ * same characters.
16
+ */
17
+
18
+ import { catchError, createRoot, runWithOwner } from "solid-js";
19
+ import { segmentColor } from "./theme.js";
20
+ /**
21
+ * The children of OpenCode's toast <text>: each segment a <span> in its color, "\n" between
22
+ * lines. A span reads bold from its style's `bold` key; it ignores an `attributes` key there.
23
+ */
24
+ export function coloredMessage(lines, theme, display) {
25
+ return lines.flatMap((line, index) => [...(index > 0 ? ["\n"] : []), ...line.segments.map(segment => (() => {
26
+ var _el$ = _$createElement("span");
27
+ _$insert(_el$, () => segment.text);
28
+ _$effect(_$p => _$setProp(_el$, "style", {
29
+ fg: segmentColor(theme, display, segment),
30
+ bold: segment.bold === true
31
+ }, _$p));
32
+ return _el$;
33
+ })())]);
34
+ }
35
+
36
+ /**
37
+ * The spans of `lines`, made under `owner`; undefined when making them failed. Errors go to
38
+ * this function, never to OpenCode's error screen. The root is gone once the spans have their
39
+ * colors: nothing in them changes later.
40
+ */
41
+ function spansOf(owner, lines, host) {
42
+ let failed = false;
43
+ const spans = runWithOwner(owner, () => createRoot(dispose => {
44
+ const made = catchError(() => coloredMessage(lines, host.theme(), host.display()), () => {
45
+ failed = true;
46
+ });
47
+ dispose();
48
+ return made;
49
+ }));
50
+ return failed ? undefined : spans;
51
+ }
52
+
53
+ /**
54
+ * Shows a toast. A quota toast's `lines` show in their colors once the TUI has drawn (see
55
+ * above); before that, and when that fails, the toast's plain message shows.
56
+ */
57
+ export function createToastShow(host) {
58
+ return (toast, lines) => {
59
+ if (lines !== undefined) {
60
+ try {
61
+ const owner = host.owner();
62
+ const spans = owner === undefined ? undefined : spansOf(owner, lines, host);
63
+ if (spans !== undefined) {
64
+ // The API types the message as a string; OpenCode's toast draws the spans as they are.
65
+ host.show({
66
+ ...toast,
67
+ message: spans
68
+ });
69
+ return;
70
+ }
71
+ } catch {
72
+ // The plain message below.
73
+ }
74
+ }
75
+ host.show(toast);
76
+ };
77
+ }