@slkiser/opencode-quota 4.10.6 → 5.0.0

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 (412) hide show
  1. package/README.md +79 -127
  2. package/dist/bin/opencode-quota.d.ts +6 -0
  3. package/dist/bin/opencode-quota.d.ts.map +1 -1
  4. package/dist/bin/opencode-quota.js +17 -0
  5. package/dist/bin/opencode-quota.js.map +1 -1
  6. package/dist/data/modelsdev-pricing.min.json +83 -2
  7. package/dist/index.d.ts +1 -6
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -13
  10. package/dist/index.js.map +1 -1
  11. package/dist/lib/accounting-format.js +1 -1
  12. package/dist/lib/accounting-format.js.map +1 -1
  13. package/dist/lib/alibaba-auth.d.ts +5 -5
  14. package/dist/lib/alibaba-auth.d.ts.map +1 -1
  15. package/dist/lib/alibaba-auth.js +15 -8
  16. package/dist/lib/alibaba-auth.js.map +1 -1
  17. package/dist/lib/alibaba-token-plan.d.ts +7 -4
  18. package/dist/lib/alibaba-token-plan.d.ts.map +1 -1
  19. package/dist/lib/alibaba-token-plan.js +32 -10
  20. package/dist/lib/alibaba-token-plan.js.map +1 -1
  21. package/dist/lib/anthropic-auth.d.ts +4 -1
  22. package/dist/lib/anthropic-auth.d.ts.map +1 -1
  23. package/dist/lib/anthropic-auth.js +5 -1
  24. package/dist/lib/anthropic-auth.js.map +1 -1
  25. package/dist/lib/anthropic.d.ts +7 -1
  26. package/dist/lib/anthropic.d.ts.map +1 -1
  27. package/dist/lib/anthropic.js +61 -7
  28. package/dist/lib/anthropic.js.map +1 -1
  29. package/dist/lib/api-key-resolver.d.ts +27 -16
  30. package/dist/lib/api-key-resolver.d.ts.map +1 -1
  31. package/dist/lib/api-key-resolver.js +46 -19
  32. package/dist/lib/api-key-resolver.js.map +1 -1
  33. package/dist/lib/chutes-config.d.ts +2 -2
  34. package/dist/lib/chutes-config.d.ts.map +1 -1
  35. package/dist/lib/chutes-config.js +4 -4
  36. package/dist/lib/chutes-config.js.map +1 -1
  37. package/dist/lib/cli-reports.d.ts +30 -0
  38. package/dist/lib/cli-reports.d.ts.map +1 -0
  39. package/dist/lib/cli-reports.js +172 -0
  40. package/dist/lib/cli-reports.js.map +1 -0
  41. package/dist/lib/cli-show.d.ts +14 -1
  42. package/dist/lib/cli-show.d.ts.map +1 -1
  43. package/dist/lib/cli-show.js +40 -138
  44. package/dist/lib/cli-show.js.map +1 -1
  45. package/dist/lib/cli-status.d.ts.map +1 -1
  46. package/dist/lib/cli-status.js +9 -36
  47. package/dist/lib/cli-status.js.map +1 -1
  48. package/dist/lib/config-file-utils.d.ts +10 -13
  49. package/dist/lib/config-file-utils.d.ts.map +1 -1
  50. package/dist/lib/config-file-utils.js +28 -30
  51. package/dist/lib/config-file-utils.js.map +1 -1
  52. package/dist/lib/config.d.ts +2 -2
  53. package/dist/lib/config.d.ts.map +1 -1
  54. package/dist/lib/config.js +6 -17
  55. package/dist/lib/config.js.map +1 -1
  56. package/dist/lib/copilot.d.ts +4 -1
  57. package/dist/lib/copilot.d.ts.map +1 -1
  58. package/dist/lib/copilot.js +17 -19
  59. package/dist/lib/copilot.js.map +1 -1
  60. package/dist/lib/cursor-detection.d.ts +1 -1
  61. package/dist/lib/cursor-detection.d.ts.map +1 -1
  62. package/dist/lib/cursor-detection.js +54 -51
  63. package/dist/lib/cursor-detection.js.map +1 -1
  64. package/dist/lib/cursor-pricing.d.ts +1 -1
  65. package/dist/lib/cursor-pricing.d.ts.map +1 -1
  66. package/dist/lib/cursor-pricing.js +85 -0
  67. package/dist/lib/cursor-pricing.js.map +1 -1
  68. package/dist/lib/deepseek-auth.d.ts +2 -2
  69. package/dist/lib/deepseek-auth.d.ts.map +1 -1
  70. package/dist/lib/deepseek-auth.js +4 -4
  71. package/dist/lib/deepseek-auth.js.map +1 -1
  72. package/dist/lib/display-sanitize.js +1 -1
  73. package/dist/lib/display-sanitize.js.map +1 -1
  74. package/dist/lib/entries.d.ts +7 -2
  75. package/dist/lib/entries.d.ts.map +1 -1
  76. package/dist/lib/format-utils.d.ts +1 -5
  77. package/dist/lib/format-utils.d.ts.map +1 -1
  78. package/dist/lib/format-utils.js +1 -4
  79. package/dist/lib/format-utils.js.map +1 -1
  80. package/dist/lib/glm-coding-plan.d.ts +1 -0
  81. package/dist/lib/glm-coding-plan.d.ts.map +1 -1
  82. package/dist/lib/glm-coding-plan.js +3 -1
  83. package/dist/lib/glm-coding-plan.js.map +1 -1
  84. package/dist/lib/google-agy.d.ts +6 -12
  85. package/dist/lib/google-agy.d.ts.map +1 -1
  86. package/dist/lib/google-agy.js +26 -24
  87. package/dist/lib/google-agy.js.map +1 -1
  88. package/dist/lib/google-companion-credentials.d.ts.map +1 -1
  89. package/dist/lib/google-companion-credentials.js +76 -26
  90. package/dist/lib/google-companion-credentials.js.map +1 -1
  91. package/dist/lib/google-gemini-cli.d.ts +7 -12
  92. package/dist/lib/google-gemini-cli.d.ts.map +1 -1
  93. package/dist/lib/google-gemini-cli.js +42 -31
  94. package/dist/lib/google-gemini-cli.js.map +1 -1
  95. package/dist/lib/init-installer.d.ts +3 -1
  96. package/dist/lib/init-installer.d.ts.map +1 -1
  97. package/dist/lib/init-installer.js +71 -174
  98. package/dist/lib/init-installer.js.map +1 -1
  99. package/dist/lib/kilo-config.d.ts +2 -2
  100. package/dist/lib/kilo-config.d.ts.map +1 -1
  101. package/dist/lib/kilo-config.js +6 -5
  102. package/dist/lib/kilo-config.js.map +1 -1
  103. package/dist/lib/kimi-auth.d.ts +2 -2
  104. package/dist/lib/kimi-auth.d.ts.map +1 -1
  105. package/dist/lib/kimi-auth.js +4 -4
  106. package/dist/lib/kimi-auth.js.map +1 -1
  107. package/dist/lib/maintainer-announcements.d.ts.map +1 -1
  108. package/dist/lib/maintainer-announcements.js +5 -5
  109. package/dist/lib/maintainer-announcements.js.map +1 -1
  110. package/dist/lib/markdown-table.d.ts +36 -0
  111. package/dist/lib/markdown-table.d.ts.map +1 -1
  112. package/dist/lib/markdown-table.js +56 -0
  113. package/dist/lib/markdown-table.js.map +1 -1
  114. package/dist/lib/mimo-config.d.ts.map +1 -1
  115. package/dist/lib/mimo-config.js +2 -3
  116. package/dist/lib/mimo-config.js.map +1 -1
  117. package/dist/lib/minimax-auth.d.ts +6 -6
  118. package/dist/lib/minimax-auth.d.ts.map +1 -1
  119. package/dist/lib/minimax-auth.js +18 -17
  120. package/dist/lib/minimax-auth.js.map +1 -1
  121. package/dist/lib/nanogpt-config.d.ts +2 -2
  122. package/dist/lib/nanogpt-config.d.ts.map +1 -1
  123. package/dist/lib/nanogpt-config.js +4 -4
  124. package/dist/lib/nanogpt-config.js.map +1 -1
  125. package/dist/lib/ollama-cloud-config.d.ts +2 -2
  126. package/dist/lib/ollama-cloud-config.d.ts.map +1 -1
  127. package/dist/lib/ollama-cloud-config.js +6 -5
  128. package/dist/lib/ollama-cloud-config.js.map +1 -1
  129. package/dist/lib/openai.d.ts +7 -2
  130. package/dist/lib/openai.d.ts.map +1 -1
  131. package/dist/lib/openai.js +22 -8
  132. package/dist/lib/openai.js.map +1 -1
  133. package/dist/lib/opencode-auth-sqlite.d.ts +17 -0
  134. package/dist/lib/opencode-auth-sqlite.d.ts.map +1 -0
  135. package/dist/lib/opencode-auth-sqlite.js +105 -0
  136. package/dist/lib/opencode-auth-sqlite.js.map +1 -0
  137. package/dist/lib/opencode-auth.d.ts +127 -14
  138. package/dist/lib/opencode-auth.d.ts.map +1 -1
  139. package/dist/lib/opencode-auth.js +374 -46
  140. package/dist/lib/opencode-auth.js.map +1 -1
  141. package/dist/lib/opencode-config-providers.d.ts.map +1 -1
  142. package/dist/lib/opencode-config-providers.js +17 -18
  143. package/dist/lib/opencode-config-providers.js.map +1 -1
  144. package/dist/lib/opencode-console-auth.d.ts +47 -0
  145. package/dist/lib/opencode-console-auth.d.ts.map +1 -0
  146. package/dist/lib/opencode-console-auth.js +63 -0
  147. package/dist/lib/opencode-console-auth.js.map +1 -0
  148. package/dist/lib/opencode-db-path.d.ts +9 -0
  149. package/dist/lib/opencode-db-path.d.ts.map +1 -0
  150. package/dist/lib/opencode-db-path.js +16 -0
  151. package/dist/lib/opencode-db-path.js.map +1 -0
  152. package/dist/lib/opencode-go-auth.d.ts +4 -2
  153. package/dist/lib/opencode-go-auth.d.ts.map +1 -1
  154. package/dist/lib/opencode-go-auth.js +9 -5
  155. package/dist/lib/opencode-go-auth.js.map +1 -1
  156. package/dist/lib/opencode-go.d.ts +12 -0
  157. package/dist/lib/opencode-go.d.ts.map +1 -1
  158. package/dist/lib/opencode-go.js +113 -0
  159. package/dist/lib/opencode-go.js.map +1 -1
  160. package/dist/lib/opencode-runtime-paths.d.ts +6 -12
  161. package/dist/lib/opencode-runtime-paths.d.ts.map +1 -1
  162. package/dist/lib/opencode-runtime-paths.js +12 -82
  163. package/dist/lib/opencode-runtime-paths.js.map +1 -1
  164. package/dist/lib/opencode-sqlite.d.ts +4 -0
  165. package/dist/lib/opencode-sqlite.d.ts.map +1 -1
  166. package/dist/lib/opencode-sqlite.js +17 -52
  167. package/dist/lib/opencode-sqlite.js.map +1 -1
  168. package/dist/lib/opencode-storage.d.ts +4 -8
  169. package/dist/lib/opencode-storage.d.ts.map +1 -1
  170. package/dist/lib/opencode-storage.js +66 -90
  171. package/dist/lib/opencode-storage.js.map +1 -1
  172. package/dist/lib/opencode-version.d.ts +6 -0
  173. package/dist/lib/opencode-version.d.ts.map +1 -0
  174. package/dist/lib/opencode-version.js +26 -0
  175. package/dist/lib/opencode-version.js.map +1 -0
  176. package/dist/lib/opencode-zen.d.ts +10 -4
  177. package/dist/lib/opencode-zen.d.ts.map +1 -1
  178. package/dist/lib/opencode-zen.js +11 -11
  179. package/dist/lib/opencode-zen.js.map +1 -1
  180. package/dist/lib/provider-registration.d.ts +3 -4
  181. package/dist/lib/provider-registration.d.ts.map +1 -1
  182. package/dist/lib/provider-registration.js +3 -4
  183. package/dist/lib/provider-registration.js.map +1 -1
  184. package/dist/lib/quota-columns.d.ts +38 -0
  185. package/dist/lib/quota-columns.d.ts.map +1 -0
  186. package/dist/lib/quota-columns.js +129 -0
  187. package/dist/lib/quota-columns.js.map +1 -0
  188. package/dist/lib/quota-command-format.d.ts +11 -0
  189. package/dist/lib/quota-command-format.d.ts.map +1 -1
  190. package/dist/lib/quota-command-format.js +80 -27
  191. package/dist/lib/quota-command-format.js.map +1 -1
  192. package/dist/lib/quota-dialog-command-specs.d.ts +63 -0
  193. package/dist/lib/quota-dialog-command-specs.d.ts.map +1 -0
  194. package/dist/lib/quota-dialog-command-specs.js +145 -0
  195. package/dist/lib/quota-dialog-command-specs.js.map +1 -0
  196. package/dist/lib/quota-dialog-commands.d.ts +3 -25
  197. package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
  198. package/dist/lib/quota-dialog-commands.js +125 -231
  199. package/dist/lib/quota-dialog-commands.js.map +1 -1
  200. package/dist/lib/quota-export.d.ts.map +1 -1
  201. package/dist/lib/quota-export.js +1 -0
  202. package/dist/lib/quota-export.js.map +1 -1
  203. package/dist/lib/quota-providers-remote.d.ts +2 -2
  204. package/dist/lib/quota-providers-remote.d.ts.map +1 -1
  205. package/dist/lib/quota-providers-remote.js +6 -4
  206. package/dist/lib/quota-providers-remote.js.map +1 -1
  207. package/dist/lib/quota-render-data.d.ts +3 -0
  208. package/dist/lib/quota-render-data.d.ts.map +1 -1
  209. package/dist/lib/quota-render-data.js +2 -0
  210. package/dist/lib/quota-render-data.js.map +1 -1
  211. package/dist/lib/quota-report-message.d.ts +22 -0
  212. package/dist/lib/quota-report-message.d.ts.map +1 -0
  213. package/dist/lib/quota-report-message.js +36 -0
  214. package/dist/lib/quota-report-message.js.map +1 -0
  215. package/dist/lib/quota-runtime-context.d.ts +1 -0
  216. package/dist/lib/quota-runtime-context.d.ts.map +1 -1
  217. package/dist/lib/quota-runtime-context.js +1 -0
  218. package/dist/lib/quota-runtime-context.js.map +1 -1
  219. package/dist/lib/quota-state-codec.js +5 -5
  220. package/dist/lib/quota-state-codec.js.map +1 -1
  221. package/dist/lib/quota-stats-format.d.ts +8 -3
  222. package/dist/lib/quota-stats-format.d.ts.map +1 -1
  223. package/dist/lib/quota-stats-format.js +36 -37
  224. package/dist/lib/quota-stats-format.js.map +1 -1
  225. package/dist/lib/quota-stats.js +2 -1
  226. package/dist/lib/quota-stats.js.map +1 -1
  227. package/dist/lib/quota-status.d.ts +7 -12
  228. package/dist/lib/quota-status.d.ts.map +1 -1
  229. package/dist/lib/quota-status.js +42 -47
  230. package/dist/lib/quota-status.js.map +1 -1
  231. package/dist/lib/quota-surface-data.d.ts +26 -0
  232. package/dist/lib/quota-surface-data.d.ts.map +1 -0
  233. package/dist/lib/quota-surface-data.js +299 -0
  234. package/dist/lib/quota-surface-data.js.map +1 -0
  235. package/dist/lib/report-document.d.ts +56 -2
  236. package/dist/lib/report-document.d.ts.map +1 -1
  237. package/dist/lib/report-document.js +105 -24
  238. package/dist/lib/report-document.js.map +1 -1
  239. package/dist/lib/scoped-update-migration.d.ts +4 -4
  240. package/dist/lib/scoped-update-migration.d.ts.map +1 -1
  241. package/dist/lib/scoped-update-migration.js +11 -18
  242. package/dist/lib/scoped-update-migration.js.map +1 -1
  243. package/dist/lib/scoped-update.d.ts +5 -1
  244. package/dist/lib/scoped-update.d.ts.map +1 -1
  245. package/dist/lib/scoped-update.js +73 -51
  246. package/dist/lib/scoped-update.js.map +1 -1
  247. package/dist/lib/synthetic-config.d.ts +2 -2
  248. package/dist/lib/synthetic-config.d.ts.map +1 -1
  249. package/dist/lib/synthetic-config.js +4 -4
  250. package/dist/lib/synthetic-config.js.map +1 -1
  251. package/dist/lib/toast-format-grouped.js +1 -1
  252. package/dist/lib/toast-format-grouped.js.map +1 -1
  253. package/dist/lib/tui-panel-state.d.ts +0 -49
  254. package/dist/lib/tui-panel-state.d.ts.map +1 -1
  255. package/dist/lib/tui-panel-state.js +1 -41
  256. package/dist/lib/tui-panel-state.js.map +1 -1
  257. package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
  258. package/dist/lib/tui-sidebar-format.js +8 -1
  259. package/dist/lib/tui-sidebar-format.js.map +1 -1
  260. package/dist/lib/types.d.ts +26 -7
  261. package/dist/lib/types.d.ts.map +1 -1
  262. package/dist/lib/types.js +1 -2
  263. package/dist/lib/types.js.map +1 -1
  264. package/dist/lib/xai.d.ts +5 -1
  265. package/dist/lib/xai.d.ts.map +1 -1
  266. package/dist/lib/xai.js +13 -4
  267. package/dist/lib/xai.js.map +1 -1
  268. package/dist/lib/zai-auth.d.ts +2 -2
  269. package/dist/lib/zai-auth.d.ts.map +1 -1
  270. package/dist/lib/zai-auth.js +4 -4
  271. package/dist/lib/zai-auth.js.map +1 -1
  272. package/dist/lib/zai.d.ts +1 -0
  273. package/dist/lib/zai.d.ts.map +1 -1
  274. package/dist/lib/zai.js.map +1 -1
  275. package/dist/lib/zhipu-auth.d.ts +2 -2
  276. package/dist/lib/zhipu-auth.d.ts.map +1 -1
  277. package/dist/lib/zhipu-auth.js +4 -4
  278. package/dist/lib/zhipu-auth.js.map +1 -1
  279. package/dist/lib/zhipu.d.ts +1 -0
  280. package/dist/lib/zhipu.d.ts.map +1 -1
  281. package/dist/lib/zhipu.js.map +1 -1
  282. package/dist/plugin.d.ts +6 -9
  283. package/dist/plugin.d.ts.map +1 -1
  284. package/dist/plugin.js +217 -259
  285. package/dist/plugin.js.map +1 -1
  286. package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
  287. package/dist/providers/alibaba-coding-plan.js +1 -1
  288. package/dist/providers/alibaba-coding-plan.js.map +1 -1
  289. package/dist/providers/alibaba-token-plan.d.ts.map +1 -1
  290. package/dist/providers/alibaba-token-plan.js +1 -0
  291. package/dist/providers/alibaba-token-plan.js.map +1 -1
  292. package/dist/providers/anthropic.d.ts.map +1 -1
  293. package/dist/providers/anthropic.js +83 -1
  294. package/dist/providers/anthropic.js.map +1 -1
  295. package/dist/providers/cache-policies.d.ts +2 -2
  296. package/dist/providers/cache-policies.d.ts.map +1 -1
  297. package/dist/providers/cache-policies.js +10 -9
  298. package/dist/providers/cache-policies.js.map +1 -1
  299. package/dist/providers/copilot.d.ts.map +1 -1
  300. package/dist/providers/copilot.js +60 -9
  301. package/dist/providers/copilot.js.map +1 -1
  302. package/dist/providers/deepseek.js +1 -1
  303. package/dist/providers/deepseek.js.map +1 -1
  304. package/dist/providers/glm-coding-plan-provider.d.ts +13 -1
  305. package/dist/providers/glm-coding-plan-provider.d.ts.map +1 -1
  306. package/dist/providers/glm-coding-plan-provider.js +53 -0
  307. package/dist/providers/glm-coding-plan-provider.js.map +1 -1
  308. package/dist/providers/google-agy.d.ts.map +1 -1
  309. package/dist/providers/google-agy.js +56 -7
  310. package/dist/providers/google-agy.js.map +1 -1
  311. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  312. package/dist/providers/google-gemini-cli.js +72 -7
  313. package/dist/providers/google-gemini-cli.js.map +1 -1
  314. package/dist/providers/kilo.js +1 -1
  315. package/dist/providers/kilo.js.map +1 -1
  316. package/dist/providers/kimi-code.d.ts.map +1 -1
  317. package/dist/providers/kimi-code.js +60 -1
  318. package/dist/providers/kimi-code.js.map +1 -1
  319. package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
  320. package/dist/providers/minimax-coding-plan.js +52 -1
  321. package/dist/providers/minimax-coding-plan.js.map +1 -1
  322. package/dist/providers/nanogpt.js +1 -1
  323. package/dist/providers/nanogpt.js.map +1 -1
  324. package/dist/providers/ollama-cloud.js +1 -1
  325. package/dist/providers/ollama-cloud.js.map +1 -1
  326. package/dist/providers/openai.d.ts.map +1 -1
  327. package/dist/providers/openai.js +59 -29
  328. package/dist/providers/openai.js.map +1 -1
  329. package/dist/providers/opencode-go.d.ts.map +1 -1
  330. package/dist/providers/opencode-go.js +207 -55
  331. package/dist/providers/opencode-go.js.map +1 -1
  332. package/dist/providers/opencode-zen.d.ts.map +1 -1
  333. package/dist/providers/opencode-zen.js +37 -51
  334. package/dist/providers/opencode-zen.js.map +1 -1
  335. package/dist/providers/openrouter.js +1 -1
  336. package/dist/providers/openrouter.js.map +1 -1
  337. package/dist/providers/quota-providers.js +9 -9
  338. package/dist/providers/quota-providers.js.map +1 -1
  339. package/dist/providers/result-helpers.d.ts +2 -2
  340. package/dist/providers/result-helpers.d.ts.map +1 -1
  341. package/dist/providers/result-helpers.js +2 -2
  342. package/dist/providers/result-helpers.js.map +1 -1
  343. package/dist/providers/xai.d.ts.map +1 -1
  344. package/dist/providers/xai.js +49 -1
  345. package/dist/providers/xai.js.map +1 -1
  346. package/dist/providers/zai.d.ts.map +1 -1
  347. package/dist/providers/zai.js +3 -1
  348. package/dist/providers/zai.js.map +1 -1
  349. package/dist/providers/zhipu.d.ts.map +1 -1
  350. package/dist/providers/zhipu.js +3 -1
  351. package/dist/providers/zhipu.js.map +1 -1
  352. package/dist/rpc.d.ts +72 -0
  353. package/dist/rpc.d.ts.map +1 -0
  354. package/dist/rpc.js +77 -0
  355. package/dist/rpc.js.map +1 -0
  356. package/dist/tui-v2.d.ts +5 -0
  357. package/dist/tui-v2.d.ts.map +1 -0
  358. package/dist/tui-v2.jsx +624 -0
  359. package/dist/tui-v2.jsx.map +1 -0
  360. package/dist/tui.d.ts +4 -6
  361. package/dist/tui.d.ts.map +1 -1
  362. package/dist/tui.js +793 -934
  363. package/package.json +7 -19
  364. package/dist/lib/cache.d.ts +0 -39
  365. package/dist/lib/cache.d.ts.map +0 -1
  366. package/dist/lib/cache.js +0 -124
  367. package/dist/lib/cache.js.map +0 -1
  368. package/dist/lib/command-handled.d.ts +0 -17
  369. package/dist/lib/command-handled.d.ts.map +0 -1
  370. package/dist/lib/command-handled.js +0 -36
  371. package/dist/lib/command-handled.js.map +0 -1
  372. package/dist/lib/command-surfaces.d.ts +0 -10
  373. package/dist/lib/command-surfaces.d.ts.map +0 -1
  374. package/dist/lib/command-surfaces.js +0 -9
  375. package/dist/lib/command-surfaces.js.map +0 -1
  376. package/dist/lib/opencode-zen-config.d.ts +0 -33
  377. package/dist/lib/opencode-zen-config.d.ts.map +0 -1
  378. package/dist/lib/opencode-zen-config.js +0 -158
  379. package/dist/lib/opencode-zen-config.js.map +0 -1
  380. package/dist/lib/path-pick.d.ts +0 -2
  381. package/dist/lib/path-pick.d.ts.map +0 -1
  382. package/dist/lib/path-pick.js +0 -15
  383. package/dist/lib/path-pick.js.map +0 -1
  384. package/dist/lib/quota-toast-runtime.d.ts +0 -60
  385. package/dist/lib/quota-toast-runtime.d.ts.map +0 -1
  386. package/dist/lib/quota-toast-runtime.js +0 -766
  387. package/dist/lib/quota-toast-runtime.js.map +0 -1
  388. package/dist/lib/tui-config-diagnostics.d.ts +0 -17
  389. package/dist/lib/tui-config-diagnostics.d.ts.map +0 -1
  390. package/dist/lib/tui-config-diagnostics.js +0 -72
  391. package/dist/lib/tui-config-diagnostics.js.map +0 -1
  392. package/dist/lib/tui-line-style.d.ts +0 -3
  393. package/dist/lib/tui-line-style.d.ts.map +0 -1
  394. package/dist/lib/tui-line-style.js +0 -7
  395. package/dist/lib/tui-line-style.js.map +0 -1
  396. package/dist/lib/tui-native-provider-quota.d.ts +0 -7
  397. package/dist/lib/tui-native-provider-quota.d.ts.map +0 -1
  398. package/dist/lib/tui-native-provider-quota.js +0 -25
  399. package/dist/lib/tui-native-provider-quota.js.map +0 -1
  400. package/dist/lib/tui-refresh-lifecycle.d.ts +0 -17
  401. package/dist/lib/tui-refresh-lifecycle.d.ts.map +0 -1
  402. package/dist/lib/tui-refresh-lifecycle.js +0 -82
  403. package/dist/lib/tui-refresh-lifecycle.js.map +0 -1
  404. package/dist/lib/tui-runtime.d.ts +0 -84
  405. package/dist/lib/tui-runtime.d.ts.map +0 -1
  406. package/dist/lib/tui-runtime.js +0 -527
  407. package/dist/lib/tui-runtime.js.map +0 -1
  408. package/dist/lib/tui-sidebar-content.d.ts +0 -32
  409. package/dist/lib/tui-sidebar-content.d.ts.map +0 -1
  410. package/dist/lib/tui-sidebar-content.js +0 -52
  411. package/dist/lib/tui-sidebar-content.js.map +0 -1
  412. package/dist/tui.tsx +0 -1030
@@ -1,17 +1,18 @@
1
1
  import { createProviderApiKeyResolver, getGlobalOpencodeConfigCandidatePaths, } from "./api-key-resolver.js";
2
- import { getAuthPaths, readAuthFile } from "./opencode-auth.js";
2
+ import { getCredentialDatabasePaths, readAuthFile } from "./opencode-auth.js";
3
+ const OLLAMA_CLOUD_PROVIDER_KEYS = ["ollama-cloud"];
3
4
  export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
4
5
  const ollamaCloudApiKeyResolver = createProviderApiKeyResolver({
5
6
  envVars: [{ name: "OLLAMA_API_KEY", source: "env:OLLAMA_API_KEY" }],
6
- providerKeys: ["ollama-cloud"],
7
+ providerKeys: OLLAMA_CLOUD_PROVIDER_KEYS,
7
8
  allowedEnvVars: ["OLLAMA_API_KEY"],
8
9
  configJsonSource: "opencode.json",
9
10
  configJsoncSource: "opencode.jsonc",
10
11
  getConfigCandidates: getGlobalOpencodeConfigCandidatePaths,
11
12
  auth: {
12
- readAuth: readAuthFile,
13
- getAuthPaths,
14
- authSource: "auth.json",
13
+ readAuth: () => readAuthFile({ integrationIds: OLLAMA_CLOUD_PROVIDER_KEYS }),
14
+ getCredentialDatabasePaths,
15
+ authSource: "opencode.db",
15
16
  },
16
17
  });
17
18
  export async function resolveOllamaCloudApiKey() {
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-cloud-config.js","sourceRoot":"","sources":["../../src/lib/ollama-cloud-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAahE,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAEjH,MAAM,yBAAyB,GAAG,4BAA4B,CAAuB;IACnF,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACnE,YAAY,EAAE,CAAC,cAAc,CAAC;IAC9B,cAAc,EAAE,CAAC,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,eAAe;IACjC,iBAAiB,EAAE,gBAAgB;IACnC,mBAAmB,EAAE,qCAAqC;IAC1D,IAAI,EAAE;QACJ,QAAQ,EAAE,YAAY;QACtB,YAAY;QACZ,UAAU,EAAE,WAAW;KACxB;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,OAAO,yBAAyB,CAAC,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAMhD,OAAO,yBAAyB,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"ollama-cloud-config.js","sourceRoot":"","sources":["../../src/lib/ollama-cloud-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAO9E,MAAM,0BAA0B,GAAG,CAAC,cAAc,CAAU,CAAC;AAQ7D,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAEjH,MAAM,yBAAyB,GAAG,4BAA4B,CAAuB;IACnF,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACnE,YAAY,EAAE,0BAA0B;IACxC,cAAc,EAAE,CAAC,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,eAAe;IACjC,iBAAiB,EAAE,gBAAgB;IACnC,mBAAmB,EAAE,qCAAqC;IAC1D,IAAI,EAAE;QACJ,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC;QAC5E,0BAA0B;QAC1B,UAAU,EAAE,aAAa;KAC1B;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,OAAO,yBAAyB,CAAC,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAMhD,OAAO,yBAAyB,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * OpenAI (ChatGPT) quota fetcher
3
3
  *
4
- * Uses OpenCode's auth.json native OpenCode OAuth entries and queries:
4
+ * Uses OpenCode's opencode.db native OpenCode OAuth entries and queries:
5
5
  * https://chatgpt.com/backend-api/wham/usage
6
6
  */
7
7
  import type { FixedWindowProjectionEvidence } from "./entries.js";
@@ -13,7 +13,7 @@ type OpenAIWindowValue = {
13
13
  fixedWindow?: FixedWindowProjectionEvidence;
14
14
  };
15
15
  export declare const DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS = 5000;
16
- export declare const OPENAI_AUTH_SOURCE_KEYS: readonly ["openai", "codex", "chatgpt", "opencode"];
16
+ export declare const OPENAI_AUTH_SOURCE_KEYS: readonly ["openai", "codex", "chatgpt"];
17
17
  export type OpenAIAuthSourceKey = (typeof OPENAI_AUTH_SOURCE_KEYS)[number];
18
18
  export type OpenAIResult = {
19
19
  success: true;
@@ -33,6 +33,10 @@ export type OpenAIResult = {
33
33
  } | QuotaError | null;
34
34
  export type ResolvedOpenAIOAuth = {
35
35
  state: "none";
36
+ } | {
37
+ state: "failed";
38
+ sourceKey: OpenAIAuthSourceKey;
39
+ error: string;
36
40
  } | {
37
41
  state: "configured";
38
42
  sourceKey: OpenAIAuthSourceKey;
@@ -52,6 +56,7 @@ export declare function hasOpenAIOAuthCached(params?: {
52
56
  }): Promise<boolean>;
53
57
  export declare function queryOpenAIQuota(options?: {
54
58
  requestTimeoutMs?: number;
59
+ auth?: ResolvedOpenAIOAuth;
55
60
  }): Promise<OpenAIResult>;
56
61
  export {};
57
62
  //# sourceMappingURL=openai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/lib/openai.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAIlE,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAC;AA0DxE,KAAK,iBAAiB,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,6BAA6B,CAAC;CAC7C,CAAC;AAyGF,eAAO,MAAM,oCAAoC,OAAQ,CAAC;AAC1D,eAAO,MAAM,uBAAuB,YAAI,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAE3F,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,MAAM,YAAY,GACpB;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,UAAU,CAAC,EAAE,iBAAiB,CAAC;KAChC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;CACH,GACD,UAAU,GACV,IAAI,CAAC;AAET,MAAM,MAAM,mBAAmB,GAC3B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IACE,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoBN,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,CAsBzF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEzE;AAED,wBAAsB,yBAAyB,CAAC,MAAM,CAAC,EAAE;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAkBvC;AAED,wBAAsB,oBAAoB,CAAC,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAK3F;AAED,wBAAsB,gBAAgB,CACpC,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,YAAY,CAAC,CAgGvB"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/lib/openai.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAIlE,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAC;AA0DxE,KAAK,iBAAiB,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,6BAA6B,CAAC;CAC7C,CAAC;AAyGF,eAAO,MAAM,oCAAoC,OAAQ,CAAC;AAG1D,eAAO,MAAM,uBAAuB,YAAI,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAE/E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,MAAM,YAAY,GACpB;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,UAAU,CAAC,EAAE,iBAAiB,CAAC;KAChC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;CACH,GACD,UAAU,GACV,IAAI,CAAC;AAET,MAAM,MAAM,mBAAmB,GAC3B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClE;IACE,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoBN,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,CAyBzF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEzE;AAED,wBAAsB,yBAAyB,CAAC,MAAM,CAAC,EAAE;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAmBvC;AAED,wBAAsB,oBAAoB,CAAC,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAM3F;AAED,wBAAsB,gBAAgB,CACpC,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAAO,GACtE,OAAO,CAAC,YAAY,CAAC,CA0GvB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * OpenAI (ChatGPT) quota fetcher
3
3
  *
4
- * Uses OpenCode's auth.json native OpenCode OAuth entries and queries:
4
+ * Uses OpenCode's opencode.db native OpenCode OAuth entries and queries:
5
5
  * https://chatgpt.com/backend-api/wham/usage
6
6
  */
7
7
  import { sanitizeDisplayText } from "./display-sanitize.js";
@@ -121,7 +121,9 @@ function derivePlanLabel(planType) {
121
121
  }
122
122
  const OPENAI_USAGE_URL = "https://chatgpt.com/backend-api/wham/usage";
123
123
  export const DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS = 5_000;
124
- export const OPENAI_AUTH_SOURCE_KEYS = ["openai", "codex", "chatgpt", "opencode"];
124
+ // Not `opencode`: in OpenCode 2 its OAuth entry is the Console login, which
125
+ // authorizes Console APIs, not OpenAI.
126
+ export const OPENAI_AUTH_SOURCE_KEYS = ["openai", "codex", "chatgpt"];
125
127
  function getOpenAIOAuthEntry(auth) {
126
128
  for (const sourceKey of OPENAI_AUTH_SOURCE_KEYS) {
127
129
  const entry = auth?.[sourceKey];
@@ -129,7 +131,7 @@ function getOpenAIOAuthEntry(auth) {
129
131
  continue;
130
132
  }
131
133
  const accessToken = typeof entry.access === "string" ? entry.access.trim() : "";
132
- if (accessToken) {
134
+ if (accessToken || entry.resolveError !== undefined) {
133
135
  return { sourceKey, entry, accessToken };
134
136
  }
135
137
  }
@@ -140,6 +142,9 @@ export function resolveOpenAIOAuth(auth) {
140
142
  if (!resolved) {
141
143
  return { state: "none" };
142
144
  }
145
+ if (resolved.entry.resolveError !== undefined) {
146
+ return { state: "failed", sourceKey: resolved.sourceKey, error: resolved.entry.resolveError };
147
+ }
143
148
  const email = getEmailFromJwt(resolved.accessToken) ?? undefined;
144
149
  const accountId = getAccountIdFromJwt(resolved.accessToken) ?? resolved.entry.accountId ?? undefined;
145
150
  return {
@@ -155,11 +160,12 @@ export function resolveOpenAIOAuth(auth) {
155
160
  };
156
161
  }
157
162
  export function hasOpenAIOAuth(auth) {
158
- return resolveOpenAIOAuth(auth).state === "configured";
163
+ return resolveOpenAIOAuth(auth).state !== "none";
159
164
  }
160
165
  export async function resolveOpenAIAuthIdentity(params) {
161
166
  const auth = await readAuthFileCached({
162
167
  maxAgeMs: Math.max(0, params?.maxAgeMs ?? DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS),
168
+ integrationIds: OPENAI_AUTH_SOURCE_KEYS,
163
169
  });
164
170
  const resolved = resolveOpenAIOAuth(auth);
165
171
  if (resolved.state !== "configured")
@@ -179,14 +185,22 @@ export async function resolveOpenAIAuthIdentity(params) {
179
185
  export async function hasOpenAIOAuthCached(params) {
180
186
  const auth = await readAuthFileCached({
181
187
  maxAgeMs: Math.max(0, params?.maxAgeMs ?? DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS),
188
+ integrationIds: OPENAI_AUTH_SOURCE_KEYS,
182
189
  });
183
190
  return hasOpenAIOAuth(auth);
184
191
  }
185
192
  export async function queryOpenAIQuota(options = {}) {
186
- const auth = await readAuthFileCached({
187
- maxAgeMs: DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS,
188
- });
189
- const resolvedAuth = resolveOpenAIOAuth(auth);
193
+ const resolvedAuth = options.auth ??
194
+ resolveOpenAIOAuth(await readAuthFileCached({
195
+ maxAgeMs: DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS,
196
+ integrationIds: OPENAI_AUTH_SOURCE_KEYS,
197
+ }));
198
+ if (resolvedAuth.state === "failed") {
199
+ return {
200
+ success: false,
201
+ error: `OpenAI sign-in could not be refreshed: ${resolvedAuth.error}. Run \`opencode auth login openai\`.`,
202
+ };
203
+ }
190
204
  if (resolvedAuth.state !== "configured")
191
205
  return null;
192
206
  if (resolvedAuth.expiresAt && resolvedAuth.expiresAt < Date.now()) {
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/lib/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/lib/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The terminal command's read-only login reader
3
+ *
4
+ * `opencode-quota show` and `status` bind this source while one report runs, so they work
5
+ * with OpenCode closed. It is the only code that queries OpenCode's `credential` table. It
6
+ * never refreshes or writes a login: a sign-in whose token expired stays expired here until
7
+ * OpenCode refreshes it. The server plugin and the TUI must never import this file
8
+ * (`tests/tui-dist-import-graph.test.ts`).
9
+ */
10
+ import { type CredentialSource } from "./opencode-auth.js";
11
+ /**
12
+ * Logins from OpenCode's database, in database order (active first, then most recently
13
+ * updated), not in request order. The database path is resolved on every read, so
14
+ * `OPENCODE_DB` and `XDG_DATA_HOME` apply. Any read error means no logins.
15
+ */
16
+ export declare function createSqliteCredentialSource(): CredentialSource;
17
+ //# sourceMappingURL=opencode-auth-sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-auth-sqlite.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-auth-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,oBAAoB,CAAC;AAoE5B;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,gBAAgB,CAwB/D"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * The terminal command's read-only login reader
3
+ *
4
+ * `opencode-quota show` and `status` bind this source while one report runs, so they work
5
+ * with OpenCode closed. It is the only code that queries OpenCode's `credential` table. It
6
+ * never refreshes or writes a login: a sign-in whose token expired stays expired here until
7
+ * OpenCode refreshes it. The server plugin and the TUI must never import this file
8
+ * (`tests/tui-dist-import-graph.test.ts`).
9
+ */
10
+ import { existsSync } from "fs";
11
+ import { getCredentialDatabasePaths, } from "./opencode-auth.js";
12
+ import { openOpenCodeSqliteReadOnly } from "./opencode-sqlite.js";
13
+ /** The OpenCode 2 method of a parsed credential value (the reader maps a stored `key` to `api`). */
14
+ function credentialMethod(value) {
15
+ if (value.type === "oauth")
16
+ return "oauth";
17
+ if (value.type === "api" || value.type === "key")
18
+ return "key";
19
+ return undefined;
20
+ }
21
+ async function readCredentialDatabase(path) {
22
+ if (!existsSync(path))
23
+ return [];
24
+ let database;
25
+ try {
26
+ database = await openOpenCodeSqliteReadOnly(path);
27
+ const rows = database.all("SELECT id, integration_id, label, active, value FROM credential WHERE integration_id IS NOT NULL ORDER BY active DESC, time_updated DESC, id DESC");
28
+ const credentials = [];
29
+ for (const row of rows) {
30
+ if (typeof row.id !== "string" ||
31
+ typeof row.integration_id !== "string" ||
32
+ typeof row.label !== "string" ||
33
+ typeof row.value !== "string")
34
+ continue;
35
+ const value = parseCredentialValue(row.value);
36
+ if (value) {
37
+ credentials.push({
38
+ id: row.id,
39
+ integrationId: row.integration_id,
40
+ label: row.label,
41
+ active: row.active === 1,
42
+ value,
43
+ });
44
+ }
45
+ }
46
+ return credentials;
47
+ }
48
+ catch {
49
+ return [];
50
+ }
51
+ finally {
52
+ database?.close();
53
+ }
54
+ }
55
+ function parseCredentialValue(value) {
56
+ try {
57
+ const parsed = JSON.parse(value);
58
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
59
+ return null;
60
+ const credential = parsed;
61
+ const metadata = credential.metadata;
62
+ const authEntry = {
63
+ ...(metadata && typeof metadata === "object" && !Array.isArray(metadata) ? metadata : {}),
64
+ ...credential,
65
+ };
66
+ if (authEntry.type === "key" && typeof authEntry.key === "string") {
67
+ authEntry.type = "api";
68
+ }
69
+ return authEntry;
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ }
75
+ /**
76
+ * Logins from OpenCode's database, in database order (active first, then most recently
77
+ * updated), not in request order. The database path is resolved on every read, so
78
+ * `OPENCODE_DB` and `XDG_DATA_HOME` apply. Any read error means no logins.
79
+ */
80
+ export function createSqliteCredentialSource() {
81
+ return {
82
+ kind: "sqlite",
83
+ async readRows(request) {
84
+ const [path] = getCredentialDatabasePaths();
85
+ const rows = (path ? await readCredentialDatabase(path) : []).filter((row) => request.integrationIds.includes(row.integrationId));
86
+ const seenIntegrationIds = new Set();
87
+ const firstRows = request.firstOnly
88
+ ? rows.filter((row) => {
89
+ if (seenIntegrationIds.has(row.integrationId))
90
+ return false;
91
+ seenIntegrationIds.add(row.integrationId);
92
+ return true;
93
+ })
94
+ : rows;
95
+ const methods = request.methods;
96
+ if (!methods)
97
+ return firstRows;
98
+ return firstRows.filter((row) => {
99
+ const method = credentialMethod(row.value);
100
+ return method !== undefined && methods.includes(method);
101
+ });
102
+ },
103
+ };
104
+ }
105
+ //# sourceMappingURL=opencode-auth-sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-auth-sqlite.js","sourceRoot":"","sources":["../../src/lib/opencode-auth-sqlite.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,140 @@
1
1
  /**
2
- * OpenCode auth.json reader
2
+ * OpenCode login reader
3
3
  *
4
- * Shared helper to read auth from ~/.local/share/opencode/auth.json
5
- * (or platform equivalent). Providers should prefer this to duplicating
6
- * file/path parsing.
4
+ * Reads OpenCode 2 logins through the bound credential source. The server
5
+ * plugin binds its integration API (`ctx.integration`) in `setup`; the terminal
6
+ * command binds the read-only database reader in `opencode-auth-sqlite.ts`
7
+ * while one report runs; the TUI binds nothing, so a read there finds no login.
8
+ * Every read names the integration ids it needs, so OpenCode resolves (and may
9
+ * refresh) only those logins.
7
10
  */
11
+ import type { Plugin } from "@opencode/plugin";
8
12
  import type { AuthData } from "./types.js";
13
+ export type CredentialRow = {
14
+ id: string;
15
+ integrationId: string;
16
+ label: string;
17
+ active: boolean;
18
+ value: Record<string, unknown>;
19
+ /**
20
+ * Why OpenCode could not return this login (for example a failed token
21
+ * refresh), as `<category>: <scrubbed detail>`. A failed row keeps its id,
22
+ * label and position, but its `value` is only `{ type: "api" | "oauth" }`;
23
+ * consumers show `resolveError` as a per-account error.
24
+ */
25
+ resolveError?: string;
26
+ };
27
+ /** OpenCode 2 connection methods: a stored API key or an OAuth sign-in. */
28
+ export type CredentialMethod = "key" | "oauth";
29
+ export type ReadCredentialRowsOptions = {
30
+ /** Keep only connections using one of these methods; checked before OpenCode resolves them. */
31
+ methods?: readonly CredentialMethod[];
32
+ /** Read only the active connection of each integration id. */
33
+ firstOnly?: boolean;
34
+ };
35
+ export type CredentialReadRequest = ReadCredentialRowsOptions & {
36
+ integrationIds: readonly string[];
37
+ };
38
+ export type CredentialSourceKind = "opencode-integration-api" | "sqlite";
9
39
  /**
10
- * Get candidate auth.json paths in priority order.
11
- * Some OpenCode installations use Linux-style paths even on macOS,
12
- * so we check multiple locations.
40
+ * Where logins come from. The two production sources: `ctx.integration` in the
41
+ * server plugin, and the terminal command's read-only reader of OpenCode's database.
13
42
  */
14
- export declare function getAuthPaths(): string[];
15
- /** Returns OpenCode's primary auth.json path (for display/logging) */
16
- export declare function getAuthPath(): string;
17
- export declare function readAuthFile(): Promise<AuthData | null>;
43
+ export type CredentialSource = {
44
+ kind: CredentialSourceKind;
45
+ readRows(request: CredentialReadRequest): Promise<CredentialRow[]>;
46
+ };
47
+ /** The parts of the server plugin's `ctx.integration` the reader uses. */
48
+ export type CredentialIntegration = Pick<Plugin.Context["integration"], "list" | "connection">;
49
+ type CredentialFailureCategory = "refresh_failed" | "resolve_empty" | "active_failed";
50
+ export type CredentialSourceDiagnostics = ({
51
+ state: "bound";
52
+ kind: CredentialSourceKind;
53
+ } | {
54
+ state: "unbound";
55
+ }) & {
56
+ lastListError?: {
57
+ at: number;
58
+ detail: string;
59
+ };
60
+ failures: Array<{
61
+ integrationId: string;
62
+ connectionId: string;
63
+ label: string;
64
+ category: CredentialFailureCategory;
65
+ detail: string;
66
+ at: number;
67
+ }>;
68
+ };
69
+ export declare function formatCredentialDisplayNames(providerName: string, credentials: ReadonlyArray<{
70
+ row: CredentialRow;
71
+ fallbackName: string;
72
+ }>): string[];
73
+ /**
74
+ * The database OpenCode keeps its logins in: the one resolved path, or none
75
+ * when `OPENCODE_DB` is `:memory:`. Inside OpenCode it is for diagnostics only
76
+ * (logins are read through OpenCode); the terminal command reads its logins
77
+ * from this file.
78
+ */
79
+ export declare function getCredentialDatabasePaths(): string[];
80
+ /**
81
+ * Makes `source` the one reads use until the returned function unbinds it.
82
+ * Unbinding removes only this binding; the last binding still bound wins.
83
+ */
84
+ export declare function bindCredentialSource(source: CredentialSource): () => void;
85
+ /** Drops cached logins, failed-login entries and the last `list()` error. */
86
+ export declare function notifyCredentialsChanged(): void;
87
+ export declare function getCredentialSourceDiagnostics(): CredentialSourceDiagnostics;
88
+ /**
89
+ * Error text that is safe to show and to store: one sanitized line with
90
+ * JWT-shaped and long opaque strings (tokens) replaced, at most 120 characters.
91
+ */
92
+ export declare function scrubCredentialErrorText(message: string): string;
93
+ /** The credential source backed by the server plugin's `ctx.integration`. */
94
+ export declare function createIntegrationCredentialSource(integration: CredentialIntegration): CredentialSource;
95
+ /**
96
+ * The auth entry resolvers read for a row: its value, plus `resolveError`
97
+ * when OpenCode could not return the login.
98
+ */
99
+ export declare function credentialRowAuthEntry(row: CredentialRow): Record<string, unknown>;
100
+ /**
101
+ * Map of the first (active) login per requested integration id. With `methods`,
102
+ * an active login using another method is left out without OpenCode resolving it.
103
+ */
104
+ export declare function readAuthFile(params: {
105
+ integrationIds: readonly string[];
106
+ methods?: readonly CredentialMethod[];
107
+ }): Promise<AuthData | null>;
108
+ /**
109
+ * Credential rows of the requested integration ids from the last bound source.
110
+ * Row order depends on the source: the integration API returns request-id
111
+ * order, then OpenCode's connection order (active first, then newest); the
112
+ * database reader returns database order. With no bound source (the TUI) there
113
+ * are none.
114
+ */
115
+ export declare function readCredentialRows(integrationIds: readonly string[], options?: ReadCredentialRowsOptions): Promise<CredentialRow[]>;
116
+ /**
117
+ * Collapse credential rows that represent the same upstream connection.
118
+ *
119
+ * Rows holding identical credential values are the same connection (e.g. the
120
+ * same workspace key stored under the `opencode-go` integration and its legacy
121
+ * `opencode` alias), and rows under `primaryIntegrationId` take precedence over
122
+ * alias rows so a real credential for another integration that shares the key
123
+ * is not reported as an additional connection. A failed row holds only
124
+ * `{ type }`, so its connection id keeps each failed login a row of its own.
125
+ * Input order is preserved otherwise.
126
+ */
127
+ export declare function selectConnectionCredentialRows(rows: readonly CredentialRow[], primaryIntegrationId: string): CredentialRow[];
18
128
  /**
19
129
  * Cached auth reader for frequently triggered code paths (e.g. per-question hooks).
20
- * This avoids repeated filesystem reads while keeping auth updates visible quickly.
130
+ * This avoids asking OpenCode on every call while keeping login changes visible quickly.
21
131
  */
22
- export declare function readAuthFileCached(params?: {
23
- maxAgeMs?: number;
132
+ export declare function readAuthFileCached(params: {
133
+ maxAgeMs: number;
134
+ integrationIds: readonly string[];
135
+ methods?: readonly CredentialMethod[];
24
136
  }): Promise<AuthData | null>;
25
137
  /** Test helper to clear cached auth state between test cases. */
26
138
  export declare function clearReadAuthFileCacheForTests(): void;
139
+ export {};
27
140
  //# sourceMappingURL=opencode-auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-auth.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAY3C;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAMvC;AAED,sEAAsE;AACtE,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAa7D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA+BjG;AAED,iEAAiE;AACjE,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
1
+ {"version":3,"file":"opencode-auth.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-auth.ts"],"names":[],"mappings":"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"}