@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
@@ -1,72 +1,119 @@
1
1
  /**
2
- * Generic API key resolution from env vars, config files, and opencode.db.
2
+ * One API key resolver for every API-key vendor.
3
3
  *
4
- * Used by provider-specific config modules (synthetic-config, chutes-config)
5
- * to resolve API keys with consistent priority and behavior.
4
+ * Order (first wins): environment variables, then the trusted global
5
+ * `opencode.json(c)` (`providers.<id>.settings.apiKey`, or the legacy
6
+ * `provider.<id>.options.apiKey`, with `{env:NAME}` templates), then OpenCode's
7
+ * stored logins. Each vendor is one entry in `API_KEY_VENDORS` or
8
+ * `API_KEY_LOGIN_VENDORS`.
6
9
  */
7
10
  import { existsSync } from "fs";
8
11
  import { sanitizeDisplayText } from "./display-sanitize.js";
9
12
  import { resolveEnvTemplate } from "./env-template.js";
13
+ import { asRecord } from "./json-guards.js";
14
+ import { credentialRowAuthEntry, getCredentialDatabasePaths, readAuthFile, readAuthFileCached, readCredentialRows, } from "./opencode-auth.js";
10
15
  import { buildOpenCodeConfigCandidates, readOpenCodeConfigCandidate, } from "./opencode-config-read.js";
11
16
  import { getOpencodeRuntimeDirs } from "./opencode-runtime-paths.js";
12
- function buildOpencodeConfigCandidates(directories) {
13
- return buildOpenCodeConfigCandidates({
14
- directories,
15
- formatOrder: ["jsonc", "json"],
16
- }).map((candidate) => ({
17
- path: candidate.path,
18
- isJsonc: candidate.format === "jsonc",
19
- }));
20
- }
17
+ /** Vendors whose stored login is used only when it is a usable API key. */
18
+ export const API_KEY_VENDORS = {
19
+ chutes: { envVars: ["CHUTES_API_KEY"], providerKeys: ["chutes"] },
20
+ deepseek: { envVars: ["DEEPSEEK_API_KEY"], providerKeys: ["deepseek"] },
21
+ kilo: { envVars: ["KILO_API_KEY"], providerKeys: ["kilo"] },
22
+ nanogpt: {
23
+ envVars: ["NANOGPT_API_KEY", "NANO_GPT_API_KEY"],
24
+ providerKeys: ["nanogpt", "nano-gpt"],
25
+ },
26
+ "ollama-cloud": { envVars: ["OLLAMA_API_KEY"], providerKeys: ["ollama-cloud"] },
27
+ synthetic: { envVars: ["SYNTHETIC_API_KEY"], providerKeys: ["synthetic"] },
28
+ };
29
+ /** Vendors that report a broken stored login (wrong type, empty key, unreadable) as an error. */
30
+ export const API_KEY_LOGIN_VENDORS = {
31
+ zai: {
32
+ displayName: "Z.ai",
33
+ envVars: ["ZAI_API_KEY", "ZAI_CODING_PLAN_API_KEY"],
34
+ providerKeys: ["zai", "zai-coding-plan", "glm"],
35
+ authKeys: ["zai-coding-plan"],
36
+ },
37
+ zhipu: {
38
+ displayName: "Zhipu",
39
+ envVars: ["ZHIPU_API_KEY", "ZHIPU_CODING_PLAN_API_KEY"],
40
+ providerKeys: ["zhipu", "zhipu-coding-plan", "zhipuai-coding-plan", "glm-coding-plan"],
41
+ authKeys: ["zhipu-coding-plan", "zhipuai-coding-plan"],
42
+ },
43
+ // `opencode-go` is what `opencode auth login opencode-go` writes; `opencode` stays as a
44
+ // fallback alias for older manual setups. Key logins only: the active `opencode` login is
45
+ // usually the OpenCode Console sign-in, and resolving it could refresh its token for nothing.
46
+ "opencode-go": {
47
+ displayName: "OpenCode Go",
48
+ envVars: ["OPENCODE_API_KEY"],
49
+ providerKeys: ["opencode-go", "opencode"],
50
+ authKeys: ["opencode-go", "opencode"],
51
+ keyLoginsOnly: true,
52
+ unsupportedTypeError: "OpenCode Go auth entry has unsupported type",
53
+ },
54
+ "kimi-code-plan-global": {
55
+ displayName: "Kimi",
56
+ envVars: ["KIMI_GLOBAL_API_KEY"],
57
+ providerKeys: ["kimi-code-plan-global"],
58
+ authKeys: ["kimi-code-plan-global"],
59
+ },
60
+ "kimi-code-plan-cn": {
61
+ displayName: "Kimi",
62
+ envVars: ["KIMI_CN_API_KEY", "KIMI_API_KEY", "KIMI_CODE_API_KEY"],
63
+ providerKeys: ["kimi-code-plan-cn", "kimi-for-coding", "kimi-code", "kimi"],
64
+ authKeys: ["kimi-code-plan-cn", "kimi-for-coding", "kimi-code", "kimi"],
65
+ },
66
+ "minimax-coding-plan": {
67
+ displayName: "MiniMax",
68
+ envVars: ["MINIMAX_CODING_PLAN_API_KEY", "MINIMAX_API_KEY"],
69
+ providerKeys: ["minimax-coding-plan", "minimax"],
70
+ authKeys: ["minimax-coding-plan"],
71
+ },
72
+ "minimax-china-coding-plan": {
73
+ displayName: "MiniMax",
74
+ envVars: ["MINIMAX_CHINA_CODING_PLAN_API_KEY"],
75
+ providerKeys: [
76
+ "minimax-china-coding-plan",
77
+ "minimax-cn-coding-plan",
78
+ "minimax-cn",
79
+ "minimax-china",
80
+ ],
81
+ authKeys: ["minimax-china-coding-plan", "minimax-cn-coding-plan"],
82
+ },
83
+ "alibaba-coding-plan": {
84
+ displayName: "Alibaba Coding Plan",
85
+ envVars: ["ALIBABA_CODING_PLAN_API_KEY", "ALIBABA_API_KEY"],
86
+ providerKeys: ["alibaba-coding-plan", "alibaba"],
87
+ authKeys: ["alibaba-coding-plan", "alibaba"],
88
+ },
89
+ };
90
+ /** How long a stored login read stays cached, unless the caller asks for another age. */
91
+ const API_KEY_LOGIN_CACHE_MAX_AGE_MS = 5_000;
21
92
  /**
22
- * Get candidate paths for opencode.json/opencode.jsonc files.
23
- *
24
- * Order: local (cwd) first, then global (~/.config/opencode).
25
- * Within each location, .jsonc takes precedence over .json.
26
- */
27
- export function getOpencodeConfigCandidatePaths() {
28
- const cwd = process.cwd();
29
- const { configDir } = getOpencodeRuntimeDirs();
30
- return [...buildOpencodeConfigCandidates([cwd]), ...buildOpencodeConfigCandidates([configDir])];
31
- }
32
- /**
33
- * Get trusted global-only candidate paths for opencode.json/opencode.jsonc files.
34
- *
35
- * Provider secrets must not be sourced from repo-local config because the
36
- * current workspace may be untrusted.
93
+ * Trusted global-only `opencode.jsonc` / `opencode.json` paths. Provider secrets
94
+ * are never read from repo-local config: the current workspace may be untrusted.
37
95
  */
38
96
  export function getGlobalOpencodeConfigCandidatePaths() {
39
97
  const { configDir } = getOpencodeRuntimeDirs();
40
- return buildOpencodeConfigCandidates([configDir]);
98
+ return buildOpenCodeConfigCandidates({
99
+ directories: [configDir],
100
+ formatOrder: ["jsonc", "json"],
101
+ }).map((candidate) => ({ path: candidate.path, isJsonc: candidate.format === "jsonc" }));
41
102
  }
42
- /**
43
- * Read and parse an opencode config file.
44
- *
45
- * @returns Parsed config with metadata, or null if file doesn't exist or is invalid
46
- */
47
- export async function readOpencodeConfig(filePath, isJsonc) {
103
+ /** The parsed config of one candidate; undefined when it is missing or does not parse. */
104
+ export async function readConfigCandidate(candidate) {
48
105
  const result = await readOpenCodeConfigCandidate({
49
- path: filePath,
50
- format: isJsonc ? "jsonc" : "json",
106
+ path: candidate.path,
107
+ format: candidate.isJsonc ? "jsonc" : "json",
51
108
  });
52
- return result.state === "parsed" ? { config: result.value, path: filePath, isJsonc } : null;
53
- }
54
- function asRecord(value) {
55
- return value && typeof value === "object" ? value : null;
109
+ return result.state === "parsed" ? result.value : undefined;
56
110
  }
57
111
  export function getFirstAuthEntryValue(auth, authKeys) {
58
112
  const root = asRecord(auth);
59
113
  if (!root)
60
114
  return undefined;
61
- for (const authKey of authKeys) {
62
- if (Object.hasOwn(root, authKey)) {
63
- return root[authKey];
64
- }
65
- }
66
- return undefined;
67
- }
68
- export function getFirstAuthEntryRecord(auth, authKeys) {
69
- return asRecord(getFirstAuthEntryValue(auth, authKeys));
115
+ const authKey = authKeys.find((key) => Object.hasOwn(root, key));
116
+ return authKey === undefined ? undefined : root[authKey];
70
117
  }
71
118
  /**
72
119
  * Read one provider's settings the way OpenCode 2 normalizes its config.
@@ -76,9 +123,11 @@ export function getFirstAuthEntryRecord(auth, authKeys) {
76
123
  */
77
124
  export function getProviderConfigSettings(config, providerKey) {
78
125
  const root = asRecord(config);
79
- const nativeProvider = asRecord(asRecord(root?.providers)?.[providerKey]);
80
- if (nativeProvider)
126
+ const nativeProvider = asRecord(root?.providers)?.[providerKey];
127
+ // Any object here, even a malformed array, replaces the legacy entry.
128
+ if (typeof nativeProvider === "object" && nativeProvider !== null) {
81
129
  return asRecord(nativeProvider.settings);
130
+ }
82
131
  return asRecord(asRecord(asRecord(root?.provider)?.[providerKey])?.options);
83
132
  }
84
133
  /**
@@ -87,30 +136,59 @@ export function getProviderConfigSettings(config, providerKey) {
87
136
  */
88
137
  export async function readGlobalProviderConfigString(providerKey, settingKey) {
89
138
  for (const candidate of getGlobalOpencodeConfigCandidatePaths()) {
90
- const result = await readOpencodeConfig(candidate.path, candidate.isJsonc);
91
- const value = getProviderConfigSettings(result?.config, providerKey)?.[settingKey];
139
+ const value = getProviderConfigSettings(await readConfigCandidate(candidate), providerKey)?.[settingKey];
92
140
  if (typeof value === "string" && value.trim().length > 0)
93
141
  return value.trim();
94
142
  }
95
143
  return undefined;
96
144
  }
97
- export function extractProviderOptionsApiKey(config, params) {
98
- for (const providerKey of params.providerKeys) {
145
+ function extractConfigApiKey(config, spec) {
146
+ for (const providerKey of spec.providerKeys) {
99
147
  const apiKey = getProviderConfigSettings(config, providerKey)?.apiKey;
100
148
  if (typeof apiKey !== "string" || apiKey.trim().length === 0)
101
149
  continue;
102
- const trimmed = apiKey.trim();
103
- if (!params.allowedEnvVars)
104
- return trimmed;
105
- const resolved = resolveEnvTemplate(trimmed, params.allowedEnvVars);
150
+ const resolved = resolveEnvTemplate(apiKey.trim(), spec.envVars);
106
151
  if (resolved)
107
152
  return resolved;
108
153
  }
109
154
  return null;
110
155
  }
111
- export function extractAuthApiKeyEntry(auth, authKeys) {
156
+ /** Environment variables, then the trusted global config. */
157
+ export async function resolveApiKeyFromEnvAndConfig(spec) {
158
+ for (const name of spec.envVars) {
159
+ const value = process.env[name]?.trim();
160
+ if (value)
161
+ return { key: value, source: `env:${name}` };
162
+ }
163
+ for (const candidate of getGlobalOpencodeConfigCandidatePaths()) {
164
+ const config = await readConfigCandidate(candidate);
165
+ if (config === undefined)
166
+ continue;
167
+ const key = extractConfigApiKey(config, spec);
168
+ if (key)
169
+ return { key, source: candidate.isJsonc ? "opencode.jsonc" : "opencode.json" };
170
+ }
171
+ return null;
172
+ }
173
+ /** Env vars that are set and trusted config files that exist (no values). */
174
+ export function getApiKeyCheckedPaths(spec) {
175
+ return [
176
+ ...spec.envVars.filter((name) => process.env[name] !== undefined).map((name) => `env:${name}`),
177
+ ...getGlobalOpencodeConfigCandidatePaths()
178
+ .map((candidate) => candidate.path)
179
+ .filter((path) => existsSync(path)),
180
+ ];
181
+ }
182
+ function loginReadOptions(spec) {
183
+ return {
184
+ integrationIds: spec.authKeys ?? spec.providerKeys,
185
+ ...(spec.keyLoginsOnly ? { methods: ["key"] } : {}),
186
+ };
187
+ }
188
+ /** The first stored login among `authKeys` that is a usable API key; others are skipped. */
189
+ function extractStoredApiKey(auth, authKeys) {
112
190
  for (const authKey of authKeys) {
113
- const record = getFirstAuthEntryRecord(auth, [authKey]);
191
+ const record = asRecord(getFirstAuthEntryValue(auth, [authKey]));
114
192
  const key = record?.key;
115
193
  if (record?.type === "api" && typeof key === "string" && key.trim().length > 0) {
116
194
  return key.trim();
@@ -118,24 +196,41 @@ export function extractAuthApiKeyEntry(auth, authKeys) {
118
196
  }
119
197
  return null;
120
198
  }
121
- function buildProviderEnvAndConfig(config) {
199
+ export async function resolveApiKey(spec) {
200
+ const fromEnvOrConfig = await resolveApiKeyFromEnvAndConfig(spec);
201
+ if (fromEnvOrConfig)
202
+ return fromEnvOrConfig;
203
+ const auth = await readAuthFile(loginReadOptions(spec));
204
+ const key = extractStoredApiKey(auth, spec.authKeys ?? spec.providerKeys);
205
+ return key ? { key, source: "opencode.db" } : null;
206
+ }
207
+ export async function hasApiKey(spec) {
208
+ return (await resolveApiKey(spec)) !== null;
209
+ }
210
+ export async function getApiKeyDiagnostics(spec) {
211
+ const checkedPaths = getApiKeyCheckedPaths(spec);
212
+ const result = await resolveApiKey(spec);
122
213
  return {
123
- envVars: config.envVars,
124
- extractFromConfig: (candidate) => extractProviderOptionsApiKey(candidate, {
125
- providerKeys: config.providerKeys,
126
- allowedEnvVars: config.allowedEnvVars,
127
- }),
128
- configJsonSource: config.configJsonSource,
129
- configJsoncSource: config.configJsoncSource,
130
- getConfigCandidates: config.getConfigCandidates,
214
+ configured: result !== null,
215
+ source: result?.source ?? null,
216
+ checkedPaths,
217
+ credentialDatabasePaths: getCredentialDatabasePaths(),
131
218
  };
132
219
  }
133
- function parseInvalidAwareAuth(auth, config) {
134
- const entry = getFirstAuthEntryValue(auth, config.authKeys);
220
+ /** Read the vendor's stored logins (cached for 5 seconds). */
221
+ export async function readApiKeyLoginAuth(spec) {
222
+ return readAuthFileCached({
223
+ maxAgeMs: API_KEY_LOGIN_CACHE_MAX_AGE_MS,
224
+ ...loginReadOptions(spec),
225
+ });
226
+ }
227
+ /** The first stored login among `authKeys` decides: a broken one is `invalid`, not skipped. */
228
+ export function parseApiKeyLogin(spec, auth) {
229
+ const entry = getFirstAuthEntryValue(auth, spec.authKeys);
135
230
  if (entry === null || entry === undefined)
136
231
  return { state: "none" };
137
232
  if (typeof entry !== "object") {
138
- return { state: "invalid", error: `${config.displayName} auth entry has invalid shape` };
233
+ return { state: "invalid", error: `${spec.displayName} auth entry has invalid shape` };
139
234
  }
140
235
  const record = entry;
141
236
  if (typeof record.resolveError === "string") {
@@ -147,190 +242,69 @@ function parseInvalidAwareAuth(auth, config) {
147
242
  if (typeof record.type !== "string") {
148
243
  return {
149
244
  state: "invalid",
150
- error: `${config.displayName} auth entry present but type is missing or invalid`,
245
+ error: `${spec.displayName} auth entry present but type is missing or invalid`,
151
246
  };
152
247
  }
153
248
  if (record.type !== "api") {
154
249
  const sanitized = sanitizeDisplayText(record.type).replace(/\s+/g, " ").trim();
155
250
  return {
156
251
  state: "invalid",
157
- error: config.unsupportedTypeError ??
158
- `Unsupported ${config.displayName} auth type: "${(sanitized || "unknown").slice(0, 120)}"`,
252
+ error: spec.unsupportedTypeError ??
253
+ `Unsupported ${spec.displayName} auth type: "${(sanitized || "unknown").slice(0, 120)}"`,
159
254
  };
160
255
  }
161
256
  const apiKey = typeof record.key === "string" ? record.key.trim() : "";
162
257
  return apiKey
163
258
  ? { state: "configured", apiKey }
164
- : {
165
- state: "invalid",
166
- error: `${config.displayName} auth entry present but key is empty`,
167
- };
259
+ : { state: "invalid", error: `${spec.displayName} auth entry present but key is empty` };
168
260
  }
169
- function createInvalidAwareProviderApiKeyResolver(config) {
170
- const parseAuth = (auth) => parseInvalidAwareAuth(auth, config.auth);
171
- const resolveWithSource = async (params) => {
172
- const envOrConfig = await resolveApiKeyFromEnvAndConfig(buildProviderEnvAndConfig(config));
173
- if (envOrConfig) {
174
- return {
175
- auth: { state: "configured", apiKey: envOrConfig.key },
176
- source: envOrConfig.source,
177
- };
178
- }
179
- const maxAgeMs = Math.max(0, params?.maxAgeMs ?? config.auth.defaultMaxAgeMs);
180
- const auth = parseAuth(await config.auth.readAuth(maxAgeMs));
181
- return {
182
- auth,
183
- source: auth.state === "none" ? null : config.auth.authSource,
184
- };
261
+ export async function resolveApiKeyLoginWithDiagnostics(spec) {
262
+ const fromEnvOrConfig = await resolveApiKeyFromEnvAndConfig(spec);
263
+ const auth = fromEnvOrConfig
264
+ ? { state: "configured", apiKey: fromEnvOrConfig.key }
265
+ : parseApiKeyLogin(spec, await readApiKeyLoginAuth(spec));
266
+ const paths = {
267
+ checkedPaths: getApiKeyCheckedPaths(spec),
268
+ credentialDatabasePaths: getCredentialDatabasePaths(),
185
269
  };
186
- const resolveWithDiagnostics = async (params) => {
187
- const { auth, source } = await resolveWithSource(params);
188
- const paths = {
189
- checkedPaths: getApiKeyCheckedPaths({
190
- envVarNames: config.envVars.map((envVar) => envVar.name),
191
- getConfigCandidates: config.getConfigCandidates,
192
- }),
193
- credentialDatabasePaths: config.auth.getCredentialDatabasePaths(),
194
- };
195
- if (auth.state === "none")
196
- return { auth, diagnostics: { state: "none", source: null, ...paths } };
197
- if (auth.state === "invalid") {
198
- return {
199
- auth,
200
- diagnostics: {
201
- state: "invalid",
202
- source: config.auth.authSource,
203
- error: auth.error,
204
- ...paths,
205
- },
206
- };
207
- }
270
+ if (auth.state === "none")
271
+ return { auth, diagnostics: { state: "none", source: null, ...paths } };
272
+ if (auth.state === "invalid") {
208
273
  return {
209
274
  auth,
210
- diagnostics: {
211
- state: "configured",
212
- source: source ?? config.auth.authSource,
213
- ...paths,
214
- },
275
+ diagnostics: { state: "invalid", source: "opencode.db", error: auth.error, ...paths },
215
276
  };
216
- };
217
- return {
218
- parseAuth,
219
- resolve: async (params) => (await resolveWithSource(params)).auth,
220
- resolveWithDiagnostics,
221
- diagnostics: async (params) => (await resolveWithDiagnostics(params)).diagnostics,
222
- };
223
- }
224
- export function createProviderApiKeyResolver(config) {
225
- if (config.auth?.policy === "invalid-aware-api-key") {
226
- return createInvalidAwareProviderApiKeyResolver(config);
227
277
  }
228
- const simpleConfig = config;
229
- const resolve = () => resolveProviderApiKey(simpleConfig);
230
278
  return {
231
- resolve,
232
- has: async () => (await resolve()) !== null,
233
- diagnostics: async () => ({
234
- ...(await getApiKeyDiagnostics({
235
- envVarNames: simpleConfig.envVars.map((envVar) => envVar.name),
236
- resolve,
237
- getConfigCandidates: simpleConfig.getConfigCandidates,
238
- })),
239
- credentialDatabasePaths: simpleConfig.auth?.getCredentialDatabasePaths?.() ?? [],
240
- }),
279
+ auth,
280
+ diagnostics: {
281
+ state: "configured",
282
+ source: fromEnvOrConfig?.source ?? "opencode.db",
283
+ ...paths,
284
+ },
241
285
  };
242
286
  }
243
- /**
244
- * Resolve an API key from trusted env vars and config files.
245
- *
246
- * Priority (first wins):
247
- * 1. Environment variables (in order specified)
248
- * 2. Trusted user/global opencode.json/opencode.jsonc candidates
249
- */
250
- export async function resolveApiKeyFromEnvAndConfig(config) {
251
- for (const envVar of config.envVars) {
252
- const value = process.env[envVar.name]?.trim();
253
- if (value && value.length > 0) {
254
- return { key: value, source: envVar.source };
255
- }
256
- }
257
- const candidates = config.getConfigCandidates?.() ?? getGlobalOpencodeConfigCandidatePaths();
258
- for (const candidate of candidates) {
259
- const result = await readOpencodeConfig(candidate.path, candidate.isJsonc);
260
- if (!result)
261
- continue;
262
- const key = config.extractFromConfig(result.config);
263
- if (key) {
264
- return {
265
- key,
266
- source: result.isJsonc ? config.configJsoncSource : config.configJsonSource,
267
- };
268
- }
269
- }
270
- return null;
287
+ export async function resolveApiKeyLogin(spec) {
288
+ const fromEnvOrConfig = await resolveApiKeyFromEnvAndConfig(spec);
289
+ if (fromEnvOrConfig)
290
+ return { state: "configured", apiKey: fromEnvOrConfig.key };
291
+ return parseApiKeyLogin(spec, await readApiKeyLoginAuth(spec));
271
292
  }
272
- export function getApiKeyCheckedPaths(config) {
273
- const checkedPaths = [];
274
- for (const envVarName of config.envVarNames) {
275
- if (process.env[envVarName] !== undefined) {
276
- checkedPaths.push(`env:${envVarName}`);
277
- }
278
- }
279
- const candidates = config.getConfigCandidates?.() ?? getGlobalOpencodeConfigCandidatePaths();
280
- for (const candidate of candidates) {
281
- if (existsSync(candidate.path)) {
282
- checkedPaths.push(candidate.path);
283
- }
284
- }
285
- return checkedPaths;
286
- }
287
- /**
288
- * Resolve an API key from multiple sources with consistent priority.
289
- *
290
- * Priority (first wins):
291
- * 1. Environment variables (in order specified)
292
- * 2. Trusted user/global opencode.json/opencode.jsonc
293
- * 3. opencode.db
294
- *
295
- * @returns API key and source, or null if not found
296
- */
297
- export async function resolveApiKey(config, readAuth) {
298
- const resolvedFromEnvOrConfig = await resolveApiKeyFromEnvAndConfig(config);
299
- if (resolvedFromEnvOrConfig) {
300
- return resolvedFromEnvOrConfig;
301
- }
302
- // 3. Fallback to opencode.db
303
- const auth = await readAuth();
304
- const key = config.extractFromAuth(auth);
305
- if (key) {
306
- return { key, source: config.authSource };
307
- }
308
- return null;
309
- }
310
- export async function resolveProviderApiKey(config) {
311
- const envAndConfig = buildProviderEnvAndConfig(config);
312
- if (!config.auth) {
313
- return resolveApiKeyFromEnvAndConfig(envAndConfig);
314
- }
315
- return resolveApiKey({
316
- ...envAndConfig,
317
- extractFromAuth: (auth) => extractAuthApiKeyEntry(auth, config.auth?.authKeys ?? config.providerKeys),
318
- authSource: config.auth.authSource,
319
- }, config.auth.readAuth);
293
+ export async function getApiKeyLoginDiagnostics(spec) {
294
+ return (await resolveApiKeyLoginWithDiagnostics(spec)).diagnostics;
320
295
  }
321
296
  /**
322
- * Get diagnostic info about API key configuration.
323
- *
324
- * Reports which sources were checked (env vars that exist, config files that exist)
325
- * and whether a key was found.
297
+ * Every key login of the vendor stored in OpenCode, in OpenCode's order, with what each one
298
+ * holds. `selectRows` narrows the logins further, for example to drop alias duplicates.
326
299
  */
327
- export async function getApiKeyDiagnostics(config) {
328
- const checkedPaths = getApiKeyCheckedPaths(config);
329
- const result = await config.resolve();
330
- return {
331
- configured: result !== null,
332
- source: result?.source ?? null,
333
- checkedPaths,
334
- };
300
+ export async function readKeyLogins(spec, options = {}) {
301
+ const vendorRows = (await readCredentialRows(spec.authKeys, { methods: ["key"] })).filter((row) => spec.authKeys.includes(row.integrationId));
302
+ const rows = options.selectRows ? options.selectRows(vendorRows) : vendorRows;
303
+ return rows.flatMap((row) => {
304
+ const auth = parseApiKeyLogin(spec, {
305
+ [row.integrationId]: credentialRowAuthEntry(row),
306
+ });
307
+ return auth.state === "none" ? [] : [{ row, auth }];
308
+ });
335
309
  }
336
310
  //# sourceMappingURL=api-key-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-key-resolver.js","sourceRoot":"","sources":["../../src/lib/api-key-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-key-resolver.js","sourceRoot":"","sources":["../../src/lib/api-key-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- export type AtomicWritePolicy = "ordinary" | "configuration";
1
+ type AtomicWritePolicy = "ordinary" | "configuration";
2
2
  export interface WriteJsonAtomicOptions {
3
3
  trailingNewline?: boolean;
4
4
  directoryMode?: number;
5
5
  fileMode?: number;
6
6
  /** Default ordinary. Configuration never deletes the destination; it only removes the temp file. */
7
7
  policy?: AtomicWritePolicy;
8
+ /** Runs after the temp file is written, right before it replaces `path`; throwing writes nothing. */
9
+ beforeCommit?: () => Promise<void>;
8
10
  }
9
11
  export declare function writeJsonAtomic(path: string, data: unknown, opts?: WriteJsonAtomicOptions): Promise<void>;
10
12
  export declare function writeTextAtomic(path: string, content: string, opts?: Omit<WriteJsonAtomicOptions, "trailingNewline">): Promise<void>;
13
+ export {};
11
14
  //# sourceMappingURL=atomic-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"atomic-json.d.ts","sourceRoot":"","sources":["../../src/lib/atomic-json.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,eAAe,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAiBD,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,CAAM,GACzD,OAAO,CAAC,IAAI,CAAC,CAmDf"}
1
+ {"version":3,"file":"atomic-json.d.ts","sourceRoot":"","sources":["../../src/lib/atomic-json.ts"],"names":[],"mappings":"AAGA,KAAK,iBAAiB,GAAG,UAAU,GAAG,eAAe,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,qGAAqG;IACrG,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAiBD,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,CAAM,GACzD,OAAO,CAAC,IAAI,CAAC,CAoDf"}
@@ -1,6 +1,5 @@
1
1
  import { chmod, mkdir, rename, rm, writeFile } from "fs/promises";
2
2
  import { dirname } from "path";
3
- import { stringifyWithComments } from "./jsonc.js";
4
3
  async function safeRm(target) {
5
4
  try {
6
5
  await rm(target, { force: true });
@@ -16,8 +15,7 @@ function renameErrorCode(error) {
16
15
  return "";
17
16
  }
18
17
  export async function writeJsonAtomic(path, data, opts = {}) {
19
- // Use the comment-preserving stringifier here instead of JSON.stringify.
20
- const content = stringifyWithComments(data) + (opts.trailingNewline ? "\n" : "");
18
+ const content = JSON.stringify(data, null, 2) + (opts.trailingNewline ? "\n" : "");
21
19
  await writeTextAtomic(path, content, opts);
22
20
  }
23
21
  export async function writeTextAtomic(path, content, opts = {}) {
@@ -32,6 +30,7 @@ export async function writeTextAtomic(path, content, opts = {}) {
32
30
  if (policy === "configuration" && opts.fileMode !== undefined && process.platform !== "win32") {
33
31
  await chmod(tmp, opts.fileMode);
34
32
  }
33
+ await opts.beforeCommit?.();
35
34
  }
36
35
  catch (writeError) {
37
36
  await safeRm(tmp);
@@ -1 +1 @@
1
- {"version":3,"file":"atomic-json.js","sourceRoot":"","sources":["../../src/lib/atomic-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atomic-json.js","sourceRoot":"","sources":["../../src/lib/atomic-json.ts"],"names":[],"mappings":"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"}