@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
@@ -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
+ }