@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,473 @@
1
+ /**
2
+ * The one-time move from v5 settings. A frozen copy of how v5 read its GLOBAL settings (which
3
+ * files, the authoritative-sidecar rule, each key's check), and where each v5 key goes in settings.jsonc.
4
+ * The same files in the older folders v4 also read are converted when OpenCode's global folder
5
+ * has none. This file only reads; `convertV5` in file.ts writes the result.
6
+ */
7
+ import { existsSync } from "node:fs";
8
+ import { readFile } from "node:fs/promises";
9
+ import { homedir } from "node:os";
10
+ import { join } from "node:path";
11
+ import { parse } from "jsonc-parser";
12
+ import { isRecord } from "../lib/json-guards.js";
13
+ import { checkSetting, PROVIDER_IDS, SETTINGS_SCHEMA, settingsFrom, } from "./schema.js";
14
+ const SIDECAR_NAMES = ["quota-toast.jsonc", "quota-toast.json"];
15
+ /** v5 applied opencode.json first, so opencode.jsonc won per key. */
16
+ const HOST_FILE_NAMES = ["opencode.json", "opencode.jsonc"];
17
+ const NO_FORMAT_STYLE = "no v6 equivalent: the sidebar shows every row and the collapsed sidebar one per provider";
18
+ /** v5 keys v6 does not keep, and why. */
19
+ const DROPPED = new Map(Object.entries({
20
+ enabled: "v6 has no switch of its own; turn the plugin off in OpenCode's plugin list",
21
+ tuiCommandDisplay: "the TUI shows /quota, /quota_usage and /quota_status in its quota window",
22
+ formatStyle: NO_FORMAT_STYLE,
23
+ toastStyle: 'toasts use the grouped layout; `toast.layout: "detailed"` is the 5.x look',
24
+ "tuiSidebarPanel.formatStyle": NO_FORMAT_STYLE,
25
+ "tuiCompactStatus.formatStyle": NO_FORMAT_STYLE,
26
+ debug: "/quota_status shows the diagnostics",
27
+ "maintainerAnnouncements.enabled": "notices have no settings in v6",
28
+ "maintainerAnnouncements.home": "notices have no settings in v6",
29
+ "maintainerAnnouncements.homeFrequency": "notices have no settings in v6",
30
+ "layout.maxWidth": "OpenCode sizes toasts",
31
+ "layout.narrowAt": "OpenCode sizes toasts",
32
+ "layout.tinyAt": "OpenCode sizes toasts",
33
+ "tuiCompactStatus.maxWidth": "the status line uses the room the footer leaves free",
34
+ alibabaCodingPlanTier: 'removed in v4; tune Alibaba through "providers.custom"',
35
+ customSources: 'removed in v4; use "providers.custom"',
36
+ }));
37
+ /** 4.x leftovers v5 already ignored without a word. */
38
+ const SILENT = new Set(["tuiCompactStatus.suppressWhenNativeProviderQuota"]);
39
+ const isBoolean = (value) => typeof value === "boolean";
40
+ const oneOf = (...values) => (value) => values.includes(value);
41
+ const isListOf = (check) => (value) => Array.isArray(value) && value.length > 0 && value.every(check);
42
+ /**
43
+ * Every v5 key v6 reads (5.x src/lib/config.ts): the settings.jsonc key it moved to unchanged,
44
+ * checked by that key's rule, or v5's own check when the value changes on the way.
45
+ */
46
+ const V5_KEYS = new Map(Object.entries({
47
+ enabledProviders: (value) => value === "auto" || Array.isArray(value),
48
+ quotaProviders: "providers.custom",
49
+ anthropicBinaryPath: "providers.anthropic.binaryPath",
50
+ cursorPlan: "providers.cursor.plan",
51
+ cursorIncludedApiUsd: "providers.cursor.includedApiUsd",
52
+ cursorBillingCycleStartDay: "providers.cursor.billingCycleStartDay",
53
+ opencodeMonthlyLimit: "providers.opencode.monthlyLimitUsd",
54
+ minIntervalMs: "providers.checking.minIntervalMs",
55
+ requestTimeoutMs: "providers.checking.requestTimeoutMs",
56
+ waitForQuotaReset: "providers.checking.waitForQuotaReset",
57
+ accountingDetail: "words.detail",
58
+ onlyCurrentModel: "words.onlyCurrentModel",
59
+ sessionTokenScope: "words.sessionTokens",
60
+ "pricingSnapshot.source": "providers.pricing.source",
61
+ "pricingSnapshot.autoRefresh": "providers.pricing.autoRefreshDays",
62
+ "export.enabled": "system.exportFile",
63
+ "export.path": "system.exportPath",
64
+ "telemetry.enabled": "system.telemetry",
65
+ percentDisplayMode: oneOf("remaining", "used"),
66
+ percentLabelStyle: oneOf("full", "bare"),
67
+ quotaProjection: oneOf("runway"),
68
+ resetTimeDecimals: (value) => checkSetting("words.resetDecimals", value).issues.length === 0,
69
+ resetTimeSpaced: isBoolean,
70
+ // Removed in v5 but still translated (the rule lived in `update`, which v6 removed).
71
+ opencodeZenDisplay: () => true,
72
+ "resetNotifications.enabled": isBoolean,
73
+ "resetNotifications.windows": isListOf(oneOf("fiveHour", "hourly", "daily", "weekly", "monthly", "yearly")),
74
+ enableToast: isBoolean,
75
+ showOnIdle: isBoolean,
76
+ showOnQuestion: isBoolean,
77
+ showOnCompact: isBoolean,
78
+ showOnBothFail: isBoolean,
79
+ toastDurationMs: (value) => typeof value === "number" && Number.isFinite(value) && value > 0,
80
+ showSessionTokens: isBoolean,
81
+ opencodeGoWindows: isListOf(oneOf("rolling", "weekly", "monthly")),
82
+ "tuiSidebarPanel.enabled": isBoolean,
83
+ "tuiSidebarPanel.opencodeGoPreferredWindow": oneOf("rolling", "weekly", "monthly"),
84
+ "tuiCompactStatus.enabled": isBoolean,
85
+ "tuiCompactStatus.homeBottom": isBoolean,
86
+ "tuiCompactStatus.sessionPrompt": isBoolean,
87
+ "tuiPromptBar.enabled": isBoolean,
88
+ }));
89
+ /** v5's nested groups, e.g. "tuiSidebarPanel". */
90
+ const V5_GROUPS = new Set([...V5_KEYS.keys(), ...DROPPED.keys(), ...SILENT].flatMap((key) => key.includes(".") ? [key.split(".")[0]] : []));
91
+ /** v5 display keys that moved as they are (or through `map`) to the tab sections. */
92
+ const DISPLAY_MOVES = [
93
+ ["enableToast", ["toast.show"]],
94
+ ["showOnIdle", ["toast.afterReply"], (value) => (value ? "always" : "off")],
95
+ ["showOnQuestion", ["toast.afterQuestion"]],
96
+ ["showOnCompact", ["toast.afterCompaction"]],
97
+ ["showOnBothFail", ["toast.whenAllFail"]],
98
+ ["toastDurationMs", ["toast.seconds"], (ms) => Math.max(1, Math.round(Number(ms) / 1000))],
99
+ ["showSessionTokens", ["sidebar.sessionTokens", "toast.sessionTokens"]],
100
+ ["tuiSidebarPanel.enabled", ["sidebar.show"]],
101
+ ];
102
+ /** v5's OpenCode Go window names → v6 row ids and collapsed-sidebar windows. */
103
+ const GO_WINDOWS = [
104
+ { v5: "rolling", row: "opencode-go.five_hour", window: "five_hour" },
105
+ { v5: "weekly", row: "opencode-go.weekly", window: "week" },
106
+ { v5: "monthly", row: "opencode-go.monthly", window: "month" },
107
+ ];
108
+ const SURFACES = ["sidebar", "collapsed", "statusLine", "toast"];
109
+ /** v5 read `.json` and `.jsonc` alike: comments and trailing commas allowed. */
110
+ async function readJsonFile(path) {
111
+ if (!existsSync(path))
112
+ return { state: "missing" };
113
+ const text = await readFile(path, "utf8").catch(() => undefined);
114
+ if (text === undefined)
115
+ return { state: "invalid" };
116
+ const errors = [];
117
+ const value = parse(text, errors, { allowTrailingComma: true });
118
+ return errors.length > 0 ? { state: "invalid" } : { state: "parsed", value };
119
+ }
120
+ function quotaToastBlock(value) {
121
+ const block = isRecord(value) && isRecord(value.experimental) && value.experimental.quotaToast;
122
+ return isRecord(block) ? block : undefined;
123
+ }
124
+ /**
125
+ * v5's global files: the first sidecar that parses is authoritative (the other sidecar and
126
+ * `experimental.quotaToast` are ignored); without one, `experimental.quotaToast` from
127
+ * opencode.json, then opencode.jsonc.
128
+ */
129
+ async function readV5GlobalFiles(configDir) {
130
+ const sidecars = SIDECAR_NAMES.map((name) => join(configDir, "opencode-quota", name));
131
+ const hostFiles = HOST_FILE_NAMES.map((name) => join(configDir, name));
132
+ const notes = [];
133
+ let malformed = false;
134
+ let sidecarSeen = false;
135
+ for (const path of sidecars) {
136
+ const file = await readJsonFile(path);
137
+ if (file.state === "missing")
138
+ continue;
139
+ sidecarSeen = true;
140
+ if (file.state === "invalid" || !isRecord(file.value)) {
141
+ malformed = true;
142
+ notes.push(`${path} does not parse as a JSON object, so it was not converted`);
143
+ continue;
144
+ }
145
+ if (path === sidecars[0] && existsSync(sidecars[1])) {
146
+ notes.push(`${sidecars[1]} was not converted: v5 used ${path} when both exist`);
147
+ }
148
+ for (const hostPath of hostFiles) {
149
+ const host = await readJsonFile(hostPath);
150
+ if (host.state === "parsed" && quotaToastBlock(host.value)) {
151
+ notes.push(`experimental.quotaToast in ${hostPath} was not converted: v5 ignored it while ${path} exists`);
152
+ }
153
+ }
154
+ return { sources: [{ path, raw: file.value }], notes, malformed, sidecarSeen };
155
+ }
156
+ const sources = [];
157
+ for (const path of hostFiles) {
158
+ const file = await readJsonFile(path);
159
+ if (file.state === "missing")
160
+ continue;
161
+ if (file.state === "invalid") {
162
+ malformed = true;
163
+ notes.push(`${path} does not parse, so its experimental.quotaToast was not converted`);
164
+ continue;
165
+ }
166
+ const block = quotaToastBlock(file.value);
167
+ if (block)
168
+ sources.push({ path: `${path} (experimental.quotaToast)`, raw: block });
169
+ }
170
+ return { sources, notes, malformed, sidecarSeen };
171
+ }
172
+ /**
173
+ * The folders that can hold old global settings, in the order v4 read them: OpenCode's global
174
+ * folder, then macOS's ~/.config and ~/Library/Application Support, Windows's %APPDATA% and
175
+ * %LOCALAPPDATA%, or ~/.config elsewhere. OPENCODE_CONFIG_DIR replaces them all, as in OpenCode 2.
176
+ */
177
+ export function oldSettingsFolders(configDir, params = {}) {
178
+ const env = params.env ?? process.env;
179
+ if (env.OPENCODE_CONFIG_DIR?.trim())
180
+ return [configDir];
181
+ const home = params.homeDir ?? homedir();
182
+ const platform = params.platform ?? process.platform;
183
+ const older = platform === "win32"
184
+ ? [
185
+ join(env.APPDATA?.trim() || join(home, "AppData", "Roaming"), "opencode"),
186
+ join(env.LOCALAPPDATA?.trim() || join(home, "AppData", "Local"), "opencode"),
187
+ ]
188
+ : platform === "darwin"
189
+ ? [
190
+ join(home, ".config", "opencode"),
191
+ join(home, "Library", "Application Support", "opencode"),
192
+ ]
193
+ : [join(home, ".config", "opencode")];
194
+ return [...new Set([configDir, ...older])];
195
+ }
196
+ /** True when a folder has quota settings: a quotaToast block, or a sidecar (even a broken one). */
197
+ function hasQuotaSettings(files) {
198
+ return files.sources.length > 0 || files.sidecarSeen;
199
+ }
200
+ /** A v5 object as dotted keys; v5's nested groups are opened one level deep. */
201
+ function flattenV5(raw) {
202
+ return Object.entries(raw).flatMap(([key, value]) => V5_GROUPS.has(key) && isRecord(value)
203
+ ? Object.entries(value).map(([name, child]) => [`${key}.${name}`, child])
204
+ : [[key, value]]);
205
+ }
206
+ /**
207
+ * The valid v5 values in the order v5 applied them. Each file is checked before it layers, so a
208
+ * bad later value never replaces a good one.
209
+ */
210
+ function readV5Values(sources) {
211
+ const values = new Map();
212
+ const dropped = [];
213
+ const invalid = [];
214
+ for (const source of sources) {
215
+ for (const [key, value] of flattenV5(source.raw)) {
216
+ const check = V5_KEYS.get(key);
217
+ const droppedReason = DROPPED.get(key);
218
+ if (SILENT.has(key))
219
+ continue;
220
+ if (droppedReason) {
221
+ dropped.push({ key, reason: droppedReason });
222
+ }
223
+ else if (V5_GROUPS.has(key)) {
224
+ invalid.push({ key, reason: "expected an object" });
225
+ }
226
+ else if (!check) {
227
+ dropped.push({ key, reason: "not a v5 setting" });
228
+ }
229
+ else if (typeof check === "function") {
230
+ if (check(value)) {
231
+ if (key === "enabledProviders" && value !== "auto") {
232
+ const checked = checkSetting("providers.off", value);
233
+ for (const issue of checked.issues)
234
+ invalid.push({ key, reason: issue.message });
235
+ if (checked.value !== undefined)
236
+ values.set(key, checked.value);
237
+ else if (!values.has(key))
238
+ values.set(key, []);
239
+ }
240
+ else
241
+ values.set(key, value);
242
+ }
243
+ else
244
+ invalid.push({ key, reason: `${JSON.stringify(value)} was not valid in v5 either` });
245
+ }
246
+ else {
247
+ // v5 took no null; v6 reads null as "unset", which would erase an earlier file's value.
248
+ const v5Rejects = { issues: [{ key: check, message: "null was not valid in v5 either" }] };
249
+ const checked = value === null ? v5Rejects : checkSetting(check, value);
250
+ for (const issue of checked.issues) {
251
+ invalid.push({ key: issue.key.replace(check, key), reason: issue.message });
252
+ }
253
+ // A valid value is written as the user wrote it (a normalized custom provider fails a
254
+ // second check); a partly valid one as checked.
255
+ if (checked.issues.length === 0)
256
+ values.set(key, value);
257
+ else if (checked.value !== undefined)
258
+ values.set(key, checked.value);
259
+ // v5: a list of only unknown ids showed nothing, unless an earlier file set a list.
260
+ else if (key === "enabledProviders" && !values.has(key))
261
+ values.set(key, []);
262
+ }
263
+ }
264
+ }
265
+ return { values, dropped, invalid };
266
+ }
267
+ /** Where every valid v5 value goes. */
268
+ function mapV5Values(values) {
269
+ const server = {};
270
+ const converted = [];
271
+ const dropped = [];
272
+ const has = (key) => values.has(key);
273
+ const chosen = (key, fallback) => values.has(key) ? values.get(key) : fallback;
274
+ const toServer = (key, to, value, note) => {
275
+ server[to] = value;
276
+ converted.push({ key, to, where: "server", ...(note ? { note } : {}) });
277
+ };
278
+ for (const [key, to] of V5_KEYS) {
279
+ if (typeof to === "string" && has(key))
280
+ toServer(key, to, values.get(key));
281
+ }
282
+ if (has("enabledProviders")) {
283
+ const enabled = values.get("enabledProviders");
284
+ const off = enabled === "auto" ? [] : PROVIDER_IDS.filter((id) => !enabled.includes(id));
285
+ toServer("enabledProviders", "providers.off", off);
286
+ }
287
+ const percentKeys = ["percentDisplayMode", "percentLabelStyle"].filter(has);
288
+ if (percentKeys.length > 0) {
289
+ const used = chosen("percentDisplayMode", "remaining") === "used";
290
+ const bare = chosen("percentLabelStyle", "full") === "bare";
291
+ const note = used && bare ? 'v6 has no bare "used" percent; it shows "42% used"' : undefined;
292
+ for (const key of percentKeys) {
293
+ toServer(key, "words.percent", used ? "used" : bare ? "bare" : "left", note);
294
+ }
295
+ }
296
+ const resetKeys = ["resetTimeDecimals", "resetTimeSpaced"].filter(has);
297
+ if (resetKeys.length > 0) {
298
+ const decimals = values.get("resetTimeDecimals");
299
+ const spaced = chosen("resetTimeSpaced", true);
300
+ const reset = decimals !== undefined ? "decimal" : spaced ? "exact" : "compact";
301
+ for (const key of resetKeys)
302
+ toServer(key, "words.reset", reset);
303
+ if (decimals !== undefined)
304
+ server["words.resetDecimals"] = decimals;
305
+ }
306
+ // The TUI switches retain the v5 pace choice; text reports always show pace.
307
+ if (has("quotaProjection")) {
308
+ for (const name of SURFACES)
309
+ toServer("quotaProjection", `${name}.runsOut`, true);
310
+ }
311
+ if (has("opencodeZenDisplay")) {
312
+ const zen = values.get("opencodeZenDisplay");
313
+ if (has("accountingDetail")) {
314
+ dropped.push({ key: "opencodeZenDisplay", reason: "accountingDetail is set and wins" });
315
+ }
316
+ else if (zen === "default" || zen === "detailed") {
317
+ toServer("opencodeZenDisplay", "words.detail", zen === "default" ? "summary" : "detailed");
318
+ }
319
+ else {
320
+ dropped.push({ key: "opencodeZenDisplay", reason: 'expected "default" or "detailed"' });
321
+ }
322
+ }
323
+ for (const [key, targets, map] of DISPLAY_MOVES) {
324
+ if (!has(key))
325
+ continue;
326
+ for (const to of targets)
327
+ toServer(key, to, map ? map(values.get(key)) : values.get(key));
328
+ }
329
+ const resetNoticeKeys = ["resetNotifications.enabled", "resetNotifications.windows"].filter(has);
330
+ if (resetNoticeKeys.length > 0) {
331
+ const enabled = chosen("resetNotifications.enabled", false);
332
+ const windows = chosen("resetNotifications.windows", ["weekly"]);
333
+ const onlyWeekly = windows.length === 1 && windows[0] === "weekly";
334
+ server["toast.resetNotice"] = !enabled ? "off" : onlyWeekly ? "weekly" : "all";
335
+ const note = enabled && !onlyWeekly
336
+ ? `v6 notifies for weekly limits or for every limit; ${windows.join(", ")} became every limit`
337
+ : undefined;
338
+ for (const key of resetNoticeKeys)
339
+ toServer(key, "toast.resetNotice", server["toast.resetNotice"], note);
340
+ }
341
+ if (has("tuiSidebarPanel.opencodeGoPreferredWindow")) {
342
+ const v5Window = values.get("tuiSidebarPanel.opencodeGoPreferredWindow");
343
+ const go = GO_WINDOWS.find((entry) => entry.v5 === v5Window);
344
+ if (go)
345
+ server["collapsed.window"] = { "opencode-go": go.window };
346
+ toServer("tuiSidebarPanel.opencodeGoPreferredWindow", "collapsed.window", server["collapsed.window"], "v5 ignored this setting; the collapsed sidebar uses it now");
347
+ }
348
+ const statusKeys = [
349
+ "tuiCompactStatus.enabled",
350
+ "tuiCompactStatus.homeBottom",
351
+ "tuiCompactStatus.sessionPrompt",
352
+ "tuiPromptBar.enabled",
353
+ ].filter(has);
354
+ if (statusKeys.length > 0) {
355
+ // What v5 showed, with v5's defaults for the keys the user did not set.
356
+ const compact = chosen("tuiCompactStatus.enabled", false);
357
+ const promptBar = chosen("tuiPromptBar.enabled", false);
358
+ const sessionPrompt = chosen("tuiCompactStatus.sessionPrompt", true);
359
+ server["statusLine.show"] = promptBar || (compact && sessionPrompt);
360
+ // v5 showed its status line next to the sidebar panel.
361
+ if (server["statusLine.show"])
362
+ server["statusLine.withSidebar"] = true;
363
+ server["statusLine.home"] = compact && chosen("tuiCompactStatus.homeBottom", true);
364
+ if (promptBar)
365
+ server["statusLine.detail"] = "one";
366
+ for (const key of statusKeys) {
367
+ for (const to of [
368
+ "statusLine.show",
369
+ ...(server["statusLine.show"] ? ["statusLine.withSidebar"] : []),
370
+ "statusLine.home",
371
+ ...(promptBar ? ["statusLine.detail"] : []),
372
+ ]) {
373
+ toServer(key, to, server[to]);
374
+ }
375
+ }
376
+ }
377
+ if (has("opencodeGoWindows")) {
378
+ const kept = chosen("opencodeGoWindows", []);
379
+ const hidden = GO_WINDOWS.filter((go) => !kept.includes(go.v5)).map((go) => go.row);
380
+ for (const name of SURFACES)
381
+ toServer("opencodeGoWindows", `${name}.hidden`, hidden, "the other OpenCode Go windows are hidden now, not removed: export and the quota window's Limits tab still list them");
382
+ }
383
+ return { server, converted, dropped };
384
+ }
385
+ function firstPerKey(list) {
386
+ const seen = new Set();
387
+ return list.filter((item) => !seen.has(item.key) && seen.add(item.key));
388
+ }
389
+ /**
390
+ * The old global settings converted in memory (nothing is written), or undefined when none: those
391
+ * of the first of `folders` that has quota settings. Old settings in a later folder are named in a
392
+ * note. An OpenCode config that does not parse is named too; with no quota settings anywhere, its
393
+ * folder is the one converted, so nothing is written until it is fixed.
394
+ */
395
+ export async function planV5Conversion(configDir, folders = oldSettingsFolders(configDir)) {
396
+ let files;
397
+ let from = "";
398
+ /** The first folder whose OpenCode config does not parse and has no other quota settings. */
399
+ let unparsed;
400
+ const skipped = [];
401
+ for (const folder of folders) {
402
+ const found = await readV5GlobalFiles(folder);
403
+ if (!hasQuotaSettings(found)) {
404
+ if (found.malformed)
405
+ unparsed ??= found;
406
+ continue;
407
+ }
408
+ if (files)
409
+ skipped.push(folder);
410
+ else
411
+ [files, from] = [found, folder];
412
+ }
413
+ if (!files)
414
+ files = unparsed;
415
+ else if (unparsed)
416
+ files.notes.push(...unparsed.notes);
417
+ if (!files)
418
+ return undefined;
419
+ for (const folder of skipped) {
420
+ files.notes.push(`the old settings in ${folder} were not converted: ${from} has some too`);
421
+ }
422
+ const read = readV5Values(files.sources);
423
+ const mapped = mapV5Values(read.values);
424
+ const values = Object.fromEntries(Object.keys(SETTINGS_SCHEMA)
425
+ .filter((key) => Object.hasOwn(mapped.server, key))
426
+ .map((key) => [key, mapped.server[key]]));
427
+ const checked = settingsFrom(Object.entries(values).map(([key, value]) => ({ key, value })));
428
+ return {
429
+ sources: files.sources.map((source) => source.path),
430
+ malformed: files.malformed,
431
+ written: false,
432
+ values,
433
+ settings: checked.settings,
434
+ fromFile: checked.fromFile,
435
+ converted: mapped.converted,
436
+ dropped: firstPerKey([...read.dropped, ...mapped.dropped]),
437
+ invalid: firstPerKey(read.invalid),
438
+ notes: files.notes,
439
+ };
440
+ }
441
+ /** True for a key v5 had: one v6 converts, drops, ignores, or a v5 group ("tuiSidebarPanel"). */
442
+ export function isV5SettingKey(key) {
443
+ return V5_KEYS.has(key) || DROPPED.has(key) || SILENT.has(key) || V5_GROUPS.has(key);
444
+ }
445
+ /**
446
+ * v5 settings files that exist but v6 does not read: the global sidecars (also in the older
447
+ * folders) once settings.jsonc exists, and every project-scope file (v6 has no project settings).
448
+ * A project in the global folder or an older one has no project files of its own.
449
+ */
450
+ export async function findUnreadV5Files(configDir, options) {
451
+ const globalFolders = oldSettingsFolders(configDir);
452
+ const globalSidecars = globalFolders.flatMap((folder) => SIDECAR_NAMES.map((name) => join(folder, "opencode-quota", name)));
453
+ const unread = options.includeGlobal ? globalSidecars.filter((path) => existsSync(path)) : [];
454
+ const projectDir = options.projectDir;
455
+ if (!projectDir)
456
+ return unread;
457
+ const projectSidecars = SIDECAR_NAMES.map((name) => join(projectDir, "opencode-quota", name));
458
+ for (const path of projectSidecars) {
459
+ if (!globalSidecars.includes(path) && existsSync(path))
460
+ unread.push(path);
461
+ }
462
+ for (const name of HOST_FILE_NAMES) {
463
+ const path = join(projectDir, name);
464
+ if (globalFolders.some((folder) => path === join(folder, name)))
465
+ continue;
466
+ const file = await readJsonFile(path);
467
+ if (file.state === "parsed" && quotaToastBlock(file.value)) {
468
+ unread.push(`${path} (experimental.quotaToast)`);
469
+ }
470
+ }
471
+ return unread;
472
+ }
473
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/settings/convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { type V5Conversion } from "./convert.js";
2
+ import { type Settings, type SettingsIssue, type SettingsPatch } from "./schema.js";
3
+ export declare function settingsPath(): string;
4
+ export type LoadedSettings = {
5
+ path: string;
6
+ /** False while settings.jsonc does not exist. */
7
+ exists: boolean;
8
+ settings: Settings;
9
+ issues: SettingsIssue[];
10
+ /** The keys the user set (in the file, or in the v5 file converted in memory); the rest are defaults. */
11
+ fromFile: string[];
12
+ /** Only while settings.jsonc is missing: the v5 settings, converted in memory. */
13
+ conversion?: V5Conversion;
14
+ /** v5 settings files that exist but are not read. */
15
+ notRead: string[];
16
+ };
17
+ export type SettingsChange = {
18
+ key: string;
19
+ before: unknown;
20
+ after: unknown;
21
+ };
22
+ export type SaveResult = {
23
+ ok: boolean;
24
+ issues: SettingsIssue[];
25
+ diff: SettingsChange[];
26
+ };
27
+ export type SettingsWatch = {
28
+ close(): void;
29
+ };
30
+ /**
31
+ * The settings now. Without settings.jsonc: the v5 settings converted in memory when there are
32
+ * any (this never writes; `convertV5` does), else the defaults.
33
+ */
34
+ export declare function loadSettings(options?: {
35
+ projectDir?: string;
36
+ }): Promise<LoadedSettings>;
37
+ /** One change at a JSONC path; a number is a list index (-1 appends). */
38
+ export type SettingsFileEdit = {
39
+ path: Array<string | number>;
40
+ value: unknown;
41
+ };
42
+ type SettingsEdit = (current: Settings) => SettingsPatch | undefined;
43
+ /** A custom provider switch: on or off, for the definition with this fingerprint. */
44
+ export type CustomSwitch = {
45
+ enabled: boolean;
46
+ fingerprint: string;
47
+ };
48
+ /**
49
+ * Merges a patch into settings.jsonc (JSON merge patch: objects merge, null resets). One unknown
50
+ * key or bad value and nothing is saved. Comments stay; a symlink keeps its link; the file is 0600.
51
+ * `customEnabled` switches custom providers on or off by id; only the quota window's own switch
52
+ * sends it (the agent tools never call this).
53
+ */
54
+ export declare function saveSettings(patch: unknown, options?: {
55
+ allowFileOnly?: boolean;
56
+ customEnabled?: Readonly<Record<string, CustomSwitch>>;
57
+ }): Promise<SaveResult>;
58
+ /**
59
+ * Like `saveSettings` (without switches), with the patch built from the settings it saves over:
60
+ * read, `edit`, check and write all hold the lock, so an edit made from the current value never
61
+ * loses a concurrent one. `edit` returns undefined to change nothing.
62
+ */
63
+ export declare function editSettings(edit: SettingsEdit, options?: {
64
+ allowFileOnly?: boolean;
65
+ }): Promise<SaveResult>;
66
+ /**
67
+ * Like `editSettings`, for a change a patch cannot make, such as one entry of a list (the other
68
+ * entries keep their comments). `edit` gets the settings and the problems read under the lock,
69
+ * and returns JSONC edits; file-only keys are allowed. Nothing is saved when the result has a
70
+ * problem the file did not have.
71
+ */
72
+ export declare function editSettingsFile(edit: (current: Settings, issues: readonly SettingsIssue[]) => SettingsFileEdit[] | undefined): Promise<SaveResult>;
73
+ /**
74
+ * Writes the v5 global settings into a missing settings.jsonc once (undefined: nothing to do).
75
+ * While an old file does not parse (maybe mid-edit) or the folder is read-only, nothing is
76
+ * written: the result says why, and `loadSettings` keeps converting in memory.
77
+ */
78
+ export declare function convertV5(): Promise<V5Conversion | undefined>;
79
+ /**
80
+ * Calls `onChange` once per change of settings.jsonc (v5 files are not watched), debounced, also
81
+ * for an atomic replace. A folder watch reacts at once; a stat poll catches what it misses (busy
82
+ * FSEvents, network drives, a symlink's target). Only changes after this resolves count.
83
+ */
84
+ export declare function watchSettings(onChange: (loaded: LoadedSettings) => void, options?: {
85
+ projectDir?: string;
86
+ debounceMs?: number;
87
+ }): Promise<SettingsWatch>;
88
+ export {};
89
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/settings/file.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAcL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAEnB,MAAM,aAAa,CAAC;AAErB,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,yGAAyG;IACzG,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kFAAkF;IAClF,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,qDAAqD;IACrD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC;AAC1F,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,IAAI,IAAI,CAAA;CAAE,CAAC;AA6B9C;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAsBjG;AAED,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAmLhF,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,aAAa,GAAG,SAAS,CAAC;AAOrE,qFAAqF;AACrF,MAAM,MAAM,YAAY,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AA8BrE;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;CAAO,GAChG,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,KAAK,gBAAgB,EAAE,GAAG,SAAS,GAC5F,OAAO,CAAC,UAAU,CAAC,CAWrB;AA2DD;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAmBnE;AAID;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,EAC1C,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACzD,OAAO,CAAC,aAAa,CAAC,CAwDxB"}