@slkiser/opencode-quota 3.11.2 → 4.0.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 (202) hide show
  1. package/README.md +92 -62
  2. package/dist/bin/opencode-quota.d.ts.map +1 -1
  3. package/dist/bin/opencode-quota.js +16 -7
  4. package/dist/bin/opencode-quota.js.map +1 -1
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/cli-show.d.ts.map +1 -1
  10. package/dist/lib/cli-show.js +11 -7
  11. package/dist/lib/cli-show.js.map +1 -1
  12. package/dist/lib/command-surfaces.d.ts +10 -0
  13. package/dist/lib/command-surfaces.d.ts.map +1 -0
  14. package/dist/lib/command-surfaces.js +9 -0
  15. package/dist/lib/command-surfaces.js.map +1 -0
  16. package/dist/lib/config-file-utils.d.ts +5 -0
  17. package/dist/lib/config-file-utils.d.ts.map +1 -1
  18. package/dist/lib/config-file-utils.js +20 -3
  19. package/dist/lib/config-file-utils.js.map +1 -1
  20. package/dist/lib/config.d.ts +5 -3
  21. package/dist/lib/config.d.ts.map +1 -1
  22. package/dist/lib/config.js +124 -32
  23. package/dist/lib/config.js.map +1 -1
  24. package/dist/lib/copilot.d.ts +19 -12
  25. package/dist/lib/copilot.d.ts.map +1 -1
  26. package/dist/lib/copilot.js +462 -566
  27. package/dist/lib/copilot.js.map +1 -1
  28. package/dist/lib/display-sanitize.d.ts.map +1 -1
  29. package/dist/lib/display-sanitize.js +13 -0
  30. package/dist/lib/display-sanitize.js.map +1 -1
  31. package/dist/lib/entries.d.ts +55 -4
  32. package/dist/lib/entries.d.ts.map +1 -1
  33. package/dist/lib/entries.js.map +1 -1
  34. package/dist/lib/init-installer.d.ts +11 -1
  35. package/dist/lib/init-installer.d.ts.map +1 -1
  36. package/dist/lib/init-installer.js +524 -158
  37. package/dist/lib/init-installer.js.map +1 -1
  38. package/dist/lib/maintainer-announcements.d.ts.map +1 -1
  39. package/dist/lib/maintainer-announcements.js +7 -15
  40. package/dist/lib/maintainer-announcements.js.map +1 -1
  41. package/dist/lib/openai.d.ts.map +1 -1
  42. package/dist/lib/openai.js +15 -0
  43. package/dist/lib/openai.js.map +1 -1
  44. package/dist/lib/opencode-config-editor.d.ts +59 -0
  45. package/dist/lib/opencode-config-editor.d.ts.map +1 -0
  46. package/dist/lib/opencode-config-editor.js +320 -0
  47. package/dist/lib/opencode-config-editor.js.map +1 -0
  48. package/dist/lib/opencode-config-providers.d.ts +18 -0
  49. package/dist/lib/opencode-config-providers.d.ts.map +1 -1
  50. package/dist/lib/opencode-config-providers.js +75 -4
  51. package/dist/lib/opencode-config-providers.js.map +1 -1
  52. package/dist/lib/opencode-runtime-paths.d.ts.map +1 -1
  53. package/dist/lib/opencode-runtime-paths.js +10 -3
  54. package/dist/lib/opencode-runtime-paths.js.map +1 -1
  55. package/dist/lib/opencode-storage.d.ts +10 -0
  56. package/dist/lib/opencode-storage.d.ts.map +1 -1
  57. package/dist/lib/opencode-storage.js +75 -0
  58. package/dist/lib/opencode-storage.js.map +1 -1
  59. package/dist/lib/provider-add-command.d.ts +35 -0
  60. package/dist/lib/provider-add-command.d.ts.map +1 -0
  61. package/dist/lib/provider-add-command.js +212 -0
  62. package/dist/lib/provider-add-command.js.map +1 -0
  63. package/dist/lib/provider-add.d.ts +21 -0
  64. package/dist/lib/provider-add.d.ts.map +1 -0
  65. package/dist/lib/provider-add.js +219 -0
  66. package/dist/lib/provider-add.js.map +1 -0
  67. package/dist/lib/provider-metadata.d.ts +1 -1
  68. package/dist/lib/provider-metadata.d.ts.map +1 -1
  69. package/dist/lib/provider-metadata.js +11 -5
  70. package/dist/lib/provider-metadata.js.map +1 -1
  71. package/dist/lib/quota-command-format.d.ts +2 -0
  72. package/dist/lib/quota-command-format.d.ts.map +1 -1
  73. package/dist/lib/quota-command-format.js +94 -26
  74. package/dist/lib/quota-command-format.js.map +1 -1
  75. package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
  76. package/dist/lib/quota-dialog-commands.js +8 -4
  77. package/dist/lib/quota-dialog-commands.js.map +1 -1
  78. package/dist/lib/quota-export-types.d.ts +48 -27
  79. package/dist/lib/quota-export-types.d.ts.map +1 -1
  80. package/dist/lib/quota-export-types.js +0 -7
  81. package/dist/lib/quota-export-types.js.map +1 -1
  82. package/dist/lib/quota-export.d.ts.map +1 -1
  83. package/dist/lib/quota-export.js +63 -16
  84. package/dist/lib/quota-export.js.map +1 -1
  85. package/dist/lib/quota-providers-local.d.ts +55 -0
  86. package/dist/lib/quota-providers-local.d.ts.map +1 -0
  87. package/dist/lib/quota-providers-local.js +313 -0
  88. package/dist/lib/quota-providers-local.js.map +1 -0
  89. package/dist/lib/quota-providers-remote.d.ts +28 -0
  90. package/dist/lib/quota-providers-remote.d.ts.map +1 -0
  91. package/dist/lib/quota-providers-remote.js +682 -0
  92. package/dist/lib/quota-providers-remote.js.map +1 -0
  93. package/dist/lib/quota-providers.d.ts +158 -0
  94. package/dist/lib/quota-providers.d.ts.map +1 -0
  95. package/dist/lib/quota-providers.js +1167 -0
  96. package/dist/lib/quota-providers.js.map +1 -0
  97. package/dist/lib/quota-render-data.d.ts +1 -0
  98. package/dist/lib/quota-render-data.d.ts.map +1 -1
  99. package/dist/lib/quota-render-data.js +35 -16
  100. package/dist/lib/quota-render-data.js.map +1 -1
  101. package/dist/lib/quota-runtime-context.d.ts.map +1 -1
  102. package/dist/lib/quota-runtime-context.js +3 -4
  103. package/dist/lib/quota-runtime-context.js.map +1 -1
  104. package/dist/lib/quota-state.d.ts +5 -2
  105. package/dist/lib/quota-state.d.ts.map +1 -1
  106. package/dist/lib/quota-state.js +268 -51
  107. package/dist/lib/quota-state.js.map +1 -1
  108. package/dist/lib/quota-status.d.ts +2 -1
  109. package/dist/lib/quota-status.d.ts.map +1 -1
  110. package/dist/lib/quota-status.js +247 -69
  111. package/dist/lib/quota-status.js.map +1 -1
  112. package/dist/lib/qwen-local-quota.d.ts +12 -11
  113. package/dist/lib/qwen-local-quota.d.ts.map +1 -1
  114. package/dist/lib/qwen-local-quota.js +82 -87
  115. package/dist/lib/qwen-local-quota.js.map +1 -1
  116. package/dist/lib/scoped-update.d.ts.map +1 -1
  117. package/dist/lib/scoped-update.js +32 -22
  118. package/dist/lib/scoped-update.js.map +1 -1
  119. package/dist/lib/tui-runtime.d.ts +2 -0
  120. package/dist/lib/tui-runtime.d.ts.map +1 -1
  121. package/dist/lib/tui-runtime.js +33 -9
  122. package/dist/lib/tui-runtime.js.map +1 -1
  123. package/dist/lib/types.d.ts +51 -15
  124. package/dist/lib/types.d.ts.map +1 -1
  125. package/dist/lib/types.js +2 -1
  126. package/dist/lib/types.js.map +1 -1
  127. package/dist/plugin.d.ts.map +1 -1
  128. package/dist/plugin.js +90 -111
  129. package/dist/plugin.js.map +1 -1
  130. package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
  131. package/dist/providers/alibaba-coding-plan.js +35 -4
  132. package/dist/providers/alibaba-coding-plan.js.map +1 -1
  133. package/dist/providers/anthropic.d.ts.map +1 -1
  134. package/dist/providers/anthropic.js +13 -1
  135. package/dist/providers/anthropic.js.map +1 -1
  136. package/dist/providers/chutes.d.ts.map +1 -1
  137. package/dist/providers/chutes.js +6 -0
  138. package/dist/providers/chutes.js.map +1 -1
  139. package/dist/providers/copilot.d.ts +2 -1
  140. package/dist/providers/copilot.d.ts.map +1 -1
  141. package/dist/providers/copilot.js +143 -60
  142. package/dist/providers/copilot.js.map +1 -1
  143. package/dist/providers/cursor.d.ts.map +1 -1
  144. package/dist/providers/cursor.js +30 -1
  145. package/dist/providers/cursor.js.map +1 -1
  146. package/dist/providers/deepseek.d.ts.map +1 -1
  147. package/dist/providers/deepseek.js +13 -1
  148. package/dist/providers/deepseek.js.map +1 -1
  149. package/dist/providers/google-agy.d.ts.map +1 -1
  150. package/dist/providers/google-agy.js +7 -1
  151. package/dist/providers/google-agy.js.map +1 -1
  152. package/dist/providers/google-antigravity.d.ts.map +1 -1
  153. package/dist/providers/google-antigravity.js +10 -2
  154. package/dist/providers/google-antigravity.js.map +1 -1
  155. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  156. package/dist/providers/google-gemini-cli.js +8 -2
  157. package/dist/providers/google-gemini-cli.js.map +1 -1
  158. package/dist/providers/kimi-code.d.ts.map +1 -1
  159. package/dist/providers/kimi-code.js +6 -0
  160. package/dist/providers/kimi-code.js.map +1 -1
  161. package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
  162. package/dist/providers/minimax-coding-plan.js +41 -15
  163. package/dist/providers/minimax-coding-plan.js.map +1 -1
  164. package/dist/providers/nanogpt.d.ts.map +1 -1
  165. package/dist/providers/nanogpt.js +19 -1
  166. package/dist/providers/nanogpt.js.map +1 -1
  167. package/dist/providers/ollama-cloud.d.ts.map +1 -1
  168. package/dist/providers/ollama-cloud.js +12 -0
  169. package/dist/providers/ollama-cloud.js.map +1 -1
  170. package/dist/providers/openai.d.ts.map +1 -1
  171. package/dist/providers/openai.js +6 -0
  172. package/dist/providers/openai.js.map +1 -1
  173. package/dist/providers/opencode-go.d.ts.map +1 -1
  174. package/dist/providers/opencode-go.js +9 -1
  175. package/dist/providers/opencode-go.js.map +1 -1
  176. package/dist/providers/quota-providers.d.ts +6 -0
  177. package/dist/providers/quota-providers.d.ts.map +1 -0
  178. package/dist/providers/quota-providers.js +279 -0
  179. package/dist/providers/quota-providers.js.map +1 -0
  180. package/dist/providers/qwen-code.d.ts.map +1 -1
  181. package/dist/providers/qwen-code.js +29 -3
  182. package/dist/providers/qwen-code.js.map +1 -1
  183. package/dist/providers/registry.d.ts.map +1 -1
  184. package/dist/providers/registry.js +2 -0
  185. package/dist/providers/registry.js.map +1 -1
  186. package/dist/providers/result-helpers.d.ts +2 -1
  187. package/dist/providers/result-helpers.d.ts.map +1 -1
  188. package/dist/providers/result-helpers.js +6 -1
  189. package/dist/providers/result-helpers.js.map +1 -1
  190. package/dist/providers/synthetic.d.ts.map +1 -1
  191. package/dist/providers/synthetic.js +7 -1
  192. package/dist/providers/synthetic.js.map +1 -1
  193. package/dist/providers/zai.d.ts.map +1 -1
  194. package/dist/providers/zai.js +7 -1
  195. package/dist/providers/zai.js.map +1 -1
  196. package/dist/providers/zhipu.d.ts.map +1 -1
  197. package/dist/providers/zhipu.js +7 -1
  198. package/dist/providers/zhipu.js.map +1 -1
  199. package/dist/tui.d.ts.map +1 -1
  200. package/dist/tui.js +345 -41
  201. package/dist/tui.tsx +267 -18
  202. package/package.json +28 -21
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  </picture>
8
8
  </a>
9
9
  </p>
10
- <p align="center">Quota, usage, and token visibility for OpenCode and CLI.</p>
10
+ <p align="center">Quota, usage, and token visibility in OpenCode and your terminal.</p>
11
11
  <p align="center">
12
12
  <a href="https://www.npmjs.com/package/@slkiser/opencode-quota"><img alt="npm" src="https://img.shields.io/npm/v/%40slkiser%2Fopencode-quota?style=flat-square" /></a>
13
13
  <a href="https://www.npmjs.com/package/@slkiser/opencode-quota"><img alt="npm downloads" src="https://img.shields.io/npm/dm/%40slkiser%2Fopencode-quota?style=flat-square" /></a>
@@ -26,15 +26,19 @@ npx @slkiser/opencode-quota init
26
26
  ```
27
27
 
28
28
  > [!IMPORTANT]
29
- > OpenCode `>= 1.4.3` and Node.js `>= 20` are required.
29
+ > Node.js `>= 22` is required.
30
+
31
+ Upgrading from v3? Read the [v4 migration guide](docs/readme/v4-migration.md).
32
+
33
+ After installation:
30
34
 
31
35
  1. Restart OpenCode.
32
- 2. Run `/quota` in OpenCode, or use `opencode-quota show` from your terminal.
33
- 3. If you enabled the Sidebar panel, open the session sidebar and look for `Quota`.
34
- 4. If you enabled Compact status line, look for the home-bottom quota line and the chat/session prompt quota line.
36
+ 2. Run a slash command in OpenCode, or use `opencode-quota show` from your terminal.
37
+ 3. If you enabled the sidebar, open the session sidebar and look for `Quota`.
38
+ 4. If you enabled the compact status line, look at the bottom of Home or below the message input.
35
39
  5. If something looks wrong, run `/quota_status` in OpenCode or see [Troubleshooting](docs/readme/troubleshooting.md).
36
40
 
37
- ## Update OpenCode Quota safely
41
+ ## Updating
38
42
 
39
43
  1. Close OpenCode.
40
44
  2. Run:
@@ -46,7 +50,7 @@ npx @slkiser/opencode-quota init
46
50
  3. Review the exact config edits and cache directories, then confirm.
47
51
  4. Restart OpenCode.
48
52
 
49
- Use `--dry-run` to preview without changing anything. Use `--yes` only for explicit noninteractive confirmation. The update command changes only canonical OpenCode Quota plugin entries and removes only verified OpenCode Quota cache directories; it preserves settings, JSONC comments, tuple options, and other plugins.
53
+ Use `--dry-run` to preview without changing anything. Otherwise, `update` shows the OpenCode Quota config and cache changes and asks before applying them. It leaves your other plugins and settings alone. Use `--yes` only when you intentionally need a noninteractive run.
50
54
 
51
55
  ## What you get
52
56
 
@@ -61,7 +65,7 @@ Use `--dry-run` to preview without changing anything. Use `--yes` only for expli
61
65
  </tr>
62
66
  <tr>
63
67
  <td width="50%" align="center"><strong>Sidebar panel</strong><br />A full quota view in OpenCode's session sidebar.</td>
64
- <td width="50%" align="center"><strong>Toast</strong><br />Popup quota checks after idle, question, or compact events.</td>
68
+ <td width="50%" align="center"><strong>TUI toast</strong><br />Quota checks can appear automatically while you work.</td>
65
69
  </tr>
66
70
  <tr>
67
71
  <td width="50%">
@@ -72,17 +76,17 @@ Use `--dry-run` to preview without changing anything. Use `--yes` only for expli
72
76
  </td>
73
77
  </tr>
74
78
  <tr>
75
- <td width="50%" align="center"><strong>Compact status line</strong><br />Short quota text on home and chat/session prompt surfaces.</td>
79
+ <td width="50%" align="center"><strong>Compact status line</strong><br />Short quota text on Home and below the message input.</td>
76
80
  <td width="50%" align="center"><strong>Token reports</strong><br /><code>/tokens_today</code>, <code>/tokens_weekly</code>, session reports, and more.</td>
77
81
  </tr>
78
82
  </table>
79
83
 
80
84
  More ways to use it:
81
85
 
82
- - Terminal checks with `opencode-quota show` before or without opening OpenCode
83
- - JSON output for scripts, status bars, CI checks, and external tools
84
- - Deterministic inline slash-command output shared by TUI and Desktop/server
85
- - Provider diagnostics for auth, quota sources, pricing, and bundled maintainer announcements
86
+ - Check quota from a terminal with `opencode-quota show`
87
+ - Use JSON output in scripts, status bars, CI checks, and other tools
88
+ - Run the same slash commands in the TUI, Web, and Desktop
89
+ - Diagnose authentication, quota sources, pricing, and maintainer notices
86
90
 
87
91
  See [Configuration](docs/readme/configuration.md) for UI options and [Manual install](docs/readme/manual-install.md) for setup details.
88
92
 
@@ -90,66 +94,81 @@ See [Configuration](docs/readme/configuration.md) for UI options and [Manual ins
90
94
 
91
95
  ### Core slash commands
92
96
 
93
- The server plugin registers each command once for TUI and Desktop/server. Each command injects one ignored, no-reply inline message, does not call the model, and does not add output to model context. `/tokens_between` requires both dates inline and does not open a prompt dialog.
94
-
95
- | Command | Use when |
96
- | --------------------------------------- | -------------------------------------------------------------------- |
97
- | `/quota` | Show your quota and usage details |
98
- | `/quota_status` | Diagnose setup, auth, provider detection, pricing, and announcements |
99
- | `/quota_announcements` | Read active bundled maintainer notices |
100
- | `/pricing_refresh` | Refresh local runtime pricing from `models.dev` |
101
- | `/tokens_today` | Show tokens used today |
102
- | `/tokens_daily` | Show tokens used in the last 24 hours |
103
- | `/tokens_weekly` | Show tokens used in the last 7 days |
104
- | `/tokens_monthly` | Show tokens used in the last 30 days, including pricing |
105
- | `/tokens_all` | Show tokens used across all local history |
106
- | `/tokens_session` | Show tokens used in the current session |
107
- | `/tokens_session_all` | Show current session plus descendant sessions |
108
- | `/tokens_between YYYY-MM-DD YYYY-MM-DD` | Show tokens used between two dates |
97
+ | Command | Use when |
98
+ | --------------------------------------- | --------------------------------------------------------------- |
99
+ | `/quota` | Show current quota |
100
+ | `/quota_status` | Diagnose setup, authentication, providers, pricing, and notices |
101
+ | `/quota_announcements` | Read active bundled maintainer notices |
102
+ | `/pricing_refresh` | Refresh local runtime pricing from `models.dev` |
103
+ | `/tokens_today` | Show tokens used today |
104
+ | `/tokens_daily` | Show tokens used in the last 24 hours |
105
+ | `/tokens_weekly` | Show tokens used in the last 7 days |
106
+ | `/tokens_monthly` | Show tokens used in the last 30 days, including pricing |
107
+ | `/tokens_all` | Show tokens used across all local history |
108
+ | `/tokens_session` | Show tokens used in the current session |
109
+ | `/tokens_session_all` | Show current session plus descendant sessions |
110
+ | `/tokens_between YYYY-MM-DD YYYY-MM-DD` | Show tokens used between two dates |
109
111
 
110
112
  ### CLI commands
111
113
 
112
- | Command | Use when |
113
- | ---------------------------------------------- | --------------------------------------------------------------------- |
114
- | `opencode-quota update` | Preview and confirm a scoped OpenCode Quota update |
115
- | `opencode-quota update --dry-run` | Preview exact config and cache targets without changing them |
116
- | `opencode-quota show` | Check quota from your terminal |
117
- | `opencode-quota show --provider <id>` | Check one provider only, such as `copilot` or `openai` |
118
- | `opencode-quota show --json` | Print JSON for scripts, status bars, and other tools |
119
- | `opencode-quota show --json --threshold <pct>` | Fail the command when cached quota drops below your chosen percentage |
114
+ Use the CLI for scripts, CI, or a quick terminal check outside OpenCode.
115
+
116
+ | Command | Use when |
117
+ | ---------------------------------------------- | ------------------------------------------------------------ |
118
+ | `opencode-quota init --dry-run` | Validate and preview installer changes without writing files |
119
+ | `opencode-quota update` | Preview, confirm, and apply a scoped OpenCode Quota update |
120
+ | `opencode-quota update --dry-run` | Preview exact config and cache targets without changing them |
121
+ | `opencode-quota show` | Check quota from your terminal |
122
+ | `opencode-quota show --provider <id>` | Check one provider only, such as `copilot` or `openai` |
123
+ | `opencode-quota show --json` | Print JSON for scripts, status bars, and other tools |
124
+ | `opencode-quota show --json --threshold <pct>` | Fail when quota is low; return exit 2 for incomplete results |
120
125
 
121
126
  ## Providers
122
127
 
128
+ ### Pre-configured providers
129
+
123
130
  Most providers work automatically. If a provider has a “Needs setup” link, open that setup note only if you use that provider.
124
131
 
125
- | Provider | Auth/setup | Source | Reports |
126
- | ------------------------ | -------------------------------------------------------------- | ------------------ | --------------- |
127
- | Anthropic (Claude) | [Needs setup](docs/readme/providers.md#anthropic-claude) | Local CLI/OAuth | Usage/quota |
128
- | GitHub Copilot | OpenCode OAuth or PAT | Remote API | Quota/usage |
129
- | OpenAI | Automatic | Remote API | Usage/quota |
130
- | Cursor | [Needs setup](docs/readme/providers.md#cursor) | Local estimate | Estimated quota |
131
- | Qwen Code | [Needs setup](docs/readme/providers.md#qwen-code) | Local estimate | Estimated quota |
132
- | Alibaba Coding Plan | OpenCode config | Local estimate | Estimated quota |
133
- | MiniMax Coding Plan | OpenCode config | Remote API | Usage/quota |
134
- | MiniMax Coding Plan (CN) | OpenCode config | Remote API | Usage/quota |
135
- | Kimi Code | OpenCode config | Remote API | Usage/quota |
136
- | Chutes AI | API key/config | Remote API | Usage/quota |
137
- | Synthetic | Automatic | Remote API | Quota |
138
- | Google Antigravity | [Needs setup](docs/readme/providers.md#google-antigravity) | Remote API | Usage/quota |
139
- | Google AGY | [Needs setup](docs/readme/providers.md#google-agy-quick-setup) | Remote API | Usage/quota |
140
- | Gemini CLI | [Needs setup](docs/readme/providers.md#gemini-cli) | Remote API | Usage/quota |
141
- | Z.ai Coding Plan | OpenCode config | Remote API | Usage/quota |
142
- | Zhipu Coding Plan | OpenCode config | Remote API | Usage/quota |
143
- | NanoGPT | API key/config | Remote API | Usage + balance |
144
- | DeepSeek | API key/config | Remote API | Balance/status |
145
- | Ollama Cloud | [Needs setup](docs/readme/providers.md#ollama-cloud) | Dashboard scraping | Dashboard usage |
146
- | OpenCode Go | [Needs setup](docs/readme/providers.md#opencode-go) | Dashboard scraping | Dashboard usage |
147
-
148
- Setup details live in the [Provider setup guide](docs/readme/providers.md).
132
+ | Provider | Auth/setup | Data from | Reports |
133
+ | ------------------------ | -------------------------------------------------------------- | ------------------ | ------------------ |
134
+ | Anthropic (Claude) | [Needs setup](docs/readme/providers.md#anthropic-claude) | Local CLI/OAuth | Quota |
135
+ | GitHub Copilot | [Needs setup](docs/readme/providers.md#github-copilot) | Remote API | Usage and budget |
136
+ | OpenAI | Automatic | Remote API | Quota |
137
+ | Cursor | [Needs setup](docs/readme/providers.md#cursor) | Local estimate | Budget and spend |
138
+ | Qwen Code | [Needs setup](docs/readme/providers.md#qwen-code) | Local estimate | Quota |
139
+ | Alibaba Coding Plan | OpenCode config | Local estimate | Quota |
140
+ | MiniMax Coding Plan | OpenCode config | Remote API | Quota |
141
+ | MiniMax Coding Plan (CN) | OpenCode config | Remote API | Quota |
142
+ | Kimi Code | OpenCode config | Remote API | Quota |
143
+ | Chutes AI | API key/config | Remote API | Quota |
144
+ | Synthetic | Automatic | Remote API | Quota |
145
+ | Google Antigravity | [Needs setup](docs/readme/providers.md#google-antigravity) | Remote API | Quota |
146
+ | Google AGY | [Needs setup](docs/readme/providers.md#google-agy-quick-setup) | Remote API | Quota |
147
+ | Gemini CLI | [Needs setup](docs/readme/providers.md#gemini-cli) | Remote API | Quota |
148
+ | Z.ai Coding Plan | OpenCode config | Remote API | Quota |
149
+ | Zhipu Coding Plan | OpenCode config | Remote API | Quota |
150
+ | NanoGPT | API key/config | Remote API | Quota and balance |
151
+ | DeepSeek | API key/config | Remote API | Balance and status |
152
+ | Ollama Cloud | [Needs setup](docs/readme/providers.md#ollama-cloud) | Dashboard scraping | Quota |
153
+ | OpenCode Go | [Needs setup](docs/readme/providers.md#opencode-go) | Dashboard scraping | Quota |
154
+
155
+ The quota view uses short labels such as `Day quota`, `5h quota`, `Day budget`, and `Balance`. Bar width varies by surface. JSON keeps the precise accounting type for scripts.
156
+
157
+ ### Custom providers
158
+
159
+ A quota provider definition tells OpenCode Quota how to obtain accounting data for an OpenCode provider. Run the guided command. It asks only structural questions, previews the exact global OpenCode config change, and asks before writing:
160
+
161
+ ```bash
162
+ npx @slkiser/opencode-quota@latest provider add
163
+ ```
164
+
165
+ For remote APIs, choose `quota-v1` for the standard envelope, `json-v1` to map a strict JSON response, or `openrouter-key-v1` for OpenRouter's key endpoint. The command previews the complete canonical merged config before it writes anything.
166
+
167
+ Setup details live in the [Provider setup guide](docs/readme/providers.md#custom-providers).
149
168
 
150
169
  ## Troubleshooting
151
170
 
152
- Start here when quota or token data looks wrong:
171
+ If quota or token data looks wrong:
153
172
 
154
173
  1. Run `/quota_status`, or start with `opencode-quota show` for a terminal quota summary.
155
174
  2. Confirm the expected provider appears in the detected provider list.
@@ -159,12 +178,23 @@ Start here when quota or token data looks wrong:
159
178
 
160
179
  ## Reference
161
180
 
181
+ Project guides:
182
+
162
183
  - [Manual install](docs/readme/manual-install.md)
163
184
  - [Configuration](docs/readme/configuration.md)
164
185
  - [Providers](docs/readme/providers.md)
165
186
  - [Troubleshooting](docs/readme/troubleshooting.md)
166
187
  - [External integration](docs/readme/external-integration.md)
167
188
 
189
+ External references:
190
+
191
+ - [OpenCode docs](https://opencode.ai/docs/)
192
+ - [OpenCode config](https://opencode.ai/docs/config/)
193
+ - [OpenCode plugins](https://opencode.ai/docs/plugins/)
194
+ - [OpenCode TUI](https://opencode.ai/docs/tui/)
195
+ - [models.dev pricing data](https://models.dev/)
196
+ - [Node.js downloads](https://nodejs.org/en/download)
197
+
168
198
  ## Contributors
169
199
 
170
200
  Thanks to everyone who has contributed to OpenCode Quota.
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-quota.d.ts","sourceRoot":"","sources":["../../src/bin/opencode-quota.ts"],"names":[],"mappings":";AAuCA,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,MAAM,GAAG,SAA2B,EAC3C,UAAU,GAAE,MAAuC,EACnD,WAAW,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAuB,GACzD,OAAO,CAMT;AAED,wBAAsB,IAAI,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkCxE"}
1
+ {"version":3,"file":"opencode-quota.d.ts","sourceRoot":"","sources":["../../src/bin/opencode-quota.ts"],"names":[],"mappings":";AA2CA,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,MAAM,GAAG,SAA2B,EAC3C,UAAU,GAAE,MAAuC,EACnD,WAAW,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAuB,GACzD,OAAO,CAMT;AAED,wBAAsB,IAAI,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwCxE"}
@@ -5,21 +5,25 @@ import { fileURLToPath } from "node:url";
5
5
  import { runInitInstaller } from "../lib/init-installer.js";
6
6
  const USAGE = [
7
7
  "Usage:",
8
- " npx @slkiser/opencode-quota init [--sync-legacy-config]",
8
+ " npx @slkiser/opencode-quota init [--dry-run] [--sync-legacy-config]",
9
9
  " npx @slkiser/opencode-quota show [--provider <provider-id>] [--json] [--threshold <pct>]",
10
10
  " npx @slkiser/opencode-quota update [--dry-run] [--yes]",
11
+ " npx @slkiser/opencode-quota provider add [--dry-run]",
11
12
  " npx @slkiser/opencode-quota --help",
12
13
  "",
13
14
  "Commands:",
14
15
  " init Run the interactive quota installer",
16
+ " --dry-run Preview validated changes without writing files",
15
17
  " --sync-legacy-config also writes experimental.quotaToast",
16
18
  " show Print a quick quota glance",
17
19
  " --json Machine-readable JSON output (reads from cache)",
18
- " --threshold <pct> With --json, exit 1 if below <pct>%, 2 if no cached quota",
20
+ " --threshold <pct> With --json, exit 1 if below <pct>%, 2 if incomplete/not comparable",
19
21
  " --provider <id> Filter to one provider",
20
22
  " update Safely refresh only OpenCode Quota config and verified cache entries",
21
23
  " --dry-run Preview without changing config or cache",
22
24
  " --yes Apply noninteractively after printing the preview",
25
+ " provider add Add or update one global quotaProviders definition",
26
+ " --dry-run Preview the exact global OpenCode config without writing",
23
27
  ].join("\n");
24
28
  function printUsage() {
25
29
  console.log(USAGE);
@@ -49,11 +53,12 @@ export async function main(argv = process.argv.slice(2)) {
49
53
  return 0;
50
54
  }
51
55
  if (command === "init") {
52
- if (rest.length === 0) {
53
- return await runInitInstaller();
54
- }
55
- if (rest.length === 1 && rest[0] === "--sync-legacy-config") {
56
- return await runInitInstaller({ syncLegacyConfig: true });
56
+ const allowed = new Set(["--dry-run", "--sync-legacy-config"]);
57
+ if (rest.every((arg) => allowed.has(arg)) && new Set(rest).size === rest.length) {
58
+ return await runInitInstaller({
59
+ ...(rest.includes("--dry-run") ? { dryRun: true } : {}),
60
+ ...(rest.includes("--sync-legacy-config") ? { syncLegacyConfig: true } : {}),
61
+ });
57
62
  }
58
63
  }
59
64
  if (command === "show") {
@@ -64,6 +69,10 @@ export async function main(argv = process.argv.slice(2)) {
64
69
  const { runScopedUpdateCommand } = await import("../lib/scoped-update.js");
65
70
  return await runScopedUpdateCommand({ argv: rest });
66
71
  }
72
+ if (command === "provider" && rest[0] === "add") {
73
+ const { runProviderAddCommand } = await import("../lib/provider-add-command.js");
74
+ return await runProviderAddCommand({ argv: rest.slice(1) });
75
+ }
67
76
  printUsage();
68
77
  return 1;
69
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-quota.js","sourceRoot":"","sources":["../../src/bin/opencode-quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-quota.js","sourceRoot":"","sources":["../../src/bin/opencode-quota.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,5 +11,7 @@ declare const pluginModule: {
11
11
  };
12
12
  export default pluginModule;
13
13
  export { QuotaToastPlugin } from "./plugin.js";
14
+ export { QUOTA_PROVIDER_MODES, QUOTA_PROVIDER_REMOTE_FORMATS, QUOTA_PROVIDER_WINDOW_TYPES, validateQuotaProviders, } from "./lib/quota-providers.js";
15
+ export type { JsonV1Adapter, JsonV1Mapping, JsonV1Metric, JsonV1NumberSource, JsonV1Path, JsonV1TextSource, JsonV1TimestampEncoding, JsonV1TimestampSource, LocalEstimateQuotaProviderDefinition, LocalEstimateWindow, QuotaProviderDefinition, QuotaProviderRemoteFormat, RemoteApiQuotaProviderDefinition, } from "./lib/quota-providers.js";
14
16
  export type { QuotaToastConfig, MaintainerAnnouncementsConfig, GoogleModelId, PricingSnapshotSource, CopilotEnterpriseUsageResult, CopilotOrganizationUsageResult, CopilotQuotaResult, GoogleQuotaResult, GoogleModelQuota, MiniMaxResult, MiniMaxResultEntry, } from "./lib/types.js";
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,QAAA,MAAM,YAAY;;;CAGQ,CAAC;AAE3B,eAAe,YAAY,CAAC;AAI5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,YAAY,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,aAAa,EACb,qBAAqB,EACrB,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,QAAA,MAAM,YAAY;;;CAGQ,CAAC;AAE3B,eAAe,YAAY,CAAC;AAI5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,oCAAoC,EACpC,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,aAAa,EACb,qBAAqB,EACrB,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -18,4 +18,6 @@ export default pluginModule;
18
18
  // Keep the named export for backward compatibility with consumers that import
19
19
  // { QuotaToastPlugin } directly.
20
20
  export { QuotaToastPlugin } from "./plugin.js";
21
+ // Re-export types for consumers (types are erased at runtime, so safe to export)
22
+ export { QUOTA_PROVIDER_MODES, QUOTA_PROVIDER_REMOTE_FORMATS, QUOTA_PROVIDER_WINDOW_TYPES, validateQuotaProviders, } from "./lib/quota-providers.js";
21
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAO/C,qDAAqD;AACrD,6EAA6E;AAC7E,wEAAwE;AACxE,yCAAyC;AACzC,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,yBAAyB;IAC7B,MAAM,EAAE,gBAAgB;CACA,CAAC;AAE3B,eAAe,YAAY,CAAC;AAE5B,8EAA8E;AAC9E,iCAAiC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAO/C,qDAAqD;AACrD,6EAA6E;AAC7E,wEAAwE;AACxE,yCAAyC;AACzC,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,yBAAyB;IAC7B,MAAM,EAAE,gBAAgB;CACA,CAAC;AAE3B,eAAe,YAAY,CAAC;AAE5B,8EAA8E;AAC9E,iCAAiC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,iFAAiF;AACjF,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-show.d.ts","sourceRoot":"","sources":["../../src/lib/cli-show.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CAC5C;AA4ND,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,MAAM,CAAC,CAyF/F"}
1
+ {"version":3,"file":"cli-show.d.ts","sourceRoot":"","sources":["../../src/lib/cli-show.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CAC5C;AAqOD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,MAAM,CAAC,CAyF/F"}
@@ -16,8 +16,8 @@ const SHOW_USAGE = [
16
16
  "Options:",
17
17
  " --provider <provider-id> Show quota for one provider",
18
18
  " --json Machine-readable JSON output (reads from cache)",
19
- " --threshold <pct> With --json, exit 1 if any cached percentage is below <pct>%",
20
- " remaining (exit 2 if no cached percentage can be compared)",
19
+ " --threshold <pct> With --json, exit 1 if any complete cached percentage is below",
20
+ " <pct>% remaining (exit 2 if data is incomplete or not comparable)",
21
21
  " --help, -h Show help",
22
22
  ].join("\n");
23
23
  function parseShowArgs(argv) {
@@ -165,7 +165,11 @@ async function runCliShowJsonOutput(params) {
165
165
  });
166
166
  writeLine(stdout, JSON.stringify(exportData, null, 2));
167
167
  if (threshold !== undefined) {
168
- const okProviders = Object.values(exportData.providers).filter((p) => p.status === "ok");
168
+ const providerResults = Object.values(exportData.providers);
169
+ if (providerResults.some((provider) => provider.status !== "ok")) {
170
+ return 2;
171
+ }
172
+ const okProviders = providerResults.filter((p) => p.status === "ok");
169
173
  if (okProviders.length === 0) {
170
174
  // No cached quota to compare against: distinct from "below threshold" (1).
171
175
  return 2;
@@ -173,8 +177,8 @@ async function runCliShowJsonOutput(params) {
173
177
  let hasComparablePercent = false;
174
178
  for (const provider of okProviders) {
175
179
  const percents = provider.entries
176
- .map((e) => e.percentRemaining)
177
- .filter((p) => p !== undefined);
180
+ .filter((entry) => entry.renderType === "percent")
181
+ .map((entry) => entry.percentRemaining);
178
182
  if (percents.length === 0)
179
183
  continue;
180
184
  hasComparablePercent = true;
@@ -242,7 +246,7 @@ export async function runCliShowCommand(options = {}) {
242
246
  providers: runtime.providers,
243
247
  });
244
248
  if (!result.data) {
245
- writeLine(stderr, "No quota data available.");
249
+ writeLine(stderr, "No provider data available.");
246
250
  return 1;
247
251
  }
248
252
  const data = sanitizeQuotaRenderData(result.data);
@@ -256,7 +260,7 @@ export async function runCliShowCommand(options = {}) {
256
260
  percentDisplayMode: config.percentDisplayMode,
257
261
  });
258
262
  if (!output.trim()) {
259
- writeLine(stderr, "No quota data available.");
263
+ writeLine(stderr, "No provider data available.");
260
264
  return 1;
261
265
  }
262
266
  writeLine(stdout, output);
@@ -1 +1 @@
1
- {"version":3,"file":"cli-show.js","sourceRoot":"","sources":["../../src/lib/cli-show.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-show.js","sourceRoot":"","sources":["../../src/lib/cli-show.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The embedded TUI worker already exposes local dialog commands.
3
+ * Registering the server copies there creates duplicate slash rows.
4
+ * Main-thread hosts, including mini, rely on the server catalog.
5
+ */
6
+ export declare function shouldRegisterServerSlashCommands(params: {
7
+ isMainThread: boolean;
8
+ argv: readonly string[];
9
+ }): boolean;
10
+ //# sourceMappingURL=command-surfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-surfaces.d.ts","sourceRoot":"","sources":["../../src/lib/command-surfaces.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,GAAG,OAAO,CAEV"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The embedded TUI worker already exposes local dialog commands.
3
+ * Registering the server copies there creates duplicate slash rows.
4
+ * Main-thread hosts, including mini, rely on the server catalog.
5
+ */
6
+ export function shouldRegisterServerSlashCommands(params) {
7
+ return params.isMainThread;
8
+ }
9
+ //# sourceMappingURL=command-surfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-surfaces.js","sourceRoot":"","sources":["../../src/lib/command-surfaces.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAAC,MAGjD;IACC,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC"}
@@ -2,8 +2,10 @@ export type ConfigFileKind = "opencode" | "tui";
2
2
  export type ConfigFileFormat = "json" | "jsonc";
3
3
  export interface EditableConfigPath {
4
4
  path: string;
5
+ sourcePath: string;
5
6
  format: ConfigFileFormat;
6
7
  existed: boolean;
8
+ removeSourcePath?: string;
7
9
  }
8
10
  export interface RuntimeContextRootHints {
9
11
  workspaceRoot?: string | null;
@@ -31,9 +33,12 @@ export declare function getEffectiveConfigRoot(fallback: string): string;
31
33
  export declare function resolveRuntimeContextRoots(params: RuntimeContextRootHints): RuntimeContextRoots;
32
34
  export declare function findGitWorktreeRoot(startDir: string): string | null;
33
35
  export declare function getConfigFileCandidatePaths(dir: string, kind: ConfigFileKind): string[];
36
+ export declare function resolveExistingConfigPath(dir: string, kind: ConfigFileKind): string | null;
34
37
  export declare function resolveEditableConfigPath(params: {
35
38
  dir: string;
36
39
  kind: ConfigFileKind;
40
+ preferredFormat?: ConfigFileFormat;
41
+ convertJsonToJsonc?: boolean;
37
42
  }): EditableConfigPath;
38
43
  export declare function getPluginSpecFromEntry(entry: unknown): string | null;
39
44
  export declare function extractPluginSpecsFromParsedConfig(parsed: unknown): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"config-file-utils.d.ts","sourceRoot":"","sources":["../../src/lib/config-file-utils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,KAAK,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE/D;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW/D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,mBAAmB,CAc/F;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcnE;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,CAEvF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;CACtB,GAAG,kBAAkB,CAwBrB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAcpE;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAwB5E;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAW5E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAc7E"}
1
+ {"version":3,"file":"config-file-utils.d.ts","sourceRoot":"","sources":["../../src/lib/config-file-utils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,KAAK,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE/D;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW/D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,mBAAmB,CAc/F;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcnE;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,CAEvF;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAE1F;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;IACrB,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,kBAAkB,CAuCrB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAcpE;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAwB5E;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAW5E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAc7E"}
@@ -61,28 +61,45 @@ export function findGitWorktreeRoot(startDir) {
61
61
  }
62
62
  }
63
63
  export function getConfigFileCandidatePaths(dir, kind) {
64
- return [join(dir, `${kind}.json`), join(dir, `${kind}.jsonc`)];
64
+ return [join(dir, `${kind}.jsonc`), join(dir, `${kind}.json`)];
65
+ }
66
+ export function resolveExistingConfigPath(dir, kind) {
67
+ return getConfigFileCandidatePaths(dir, kind).find((path) => existsSync(path)) ?? null;
65
68
  }
66
69
  export function resolveEditableConfigPath(params) {
67
70
  const jsoncPath = join(params.dir, `${params.kind}.jsonc`);
68
71
  if (existsSync(jsoncPath)) {
69
72
  return {
70
73
  path: jsoncPath,
74
+ sourcePath: jsoncPath,
71
75
  format: "jsonc",
72
76
  existed: true,
73
77
  };
74
78
  }
75
79
  const jsonPath = join(params.dir, `${params.kind}.json`);
76
80
  if (existsSync(jsonPath)) {
81
+ if (params.preferredFormat === "jsonc" && params.convertJsonToJsonc) {
82
+ return {
83
+ path: jsoncPath,
84
+ sourcePath: jsonPath,
85
+ format: "jsonc",
86
+ existed: true,
87
+ removeSourcePath: jsonPath,
88
+ };
89
+ }
77
90
  return {
78
91
  path: jsonPath,
92
+ sourcePath: jsonPath,
79
93
  format: "json",
80
94
  existed: true,
81
95
  };
82
96
  }
97
+ const format = params.preferredFormat ?? "jsonc";
98
+ const path = join(params.dir, `${params.kind}.${format}`);
83
99
  return {
84
- path: jsonPath,
85
- format: "json",
100
+ path,
101
+ sourcePath: path,
102
+ format,
86
103
  existed: false,
87
104
  };
88
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config-file-utils.js","sourceRoot":"","sources":["../../src/lib/config-file-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-file-utils.js","sourceRoot":"","sources":["../../src/lib/config-file-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AA0B1D,MAAM,UAAU,qBAAqB,CAAC,KAAe;IACnD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAuC;IACtE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,MAA+B;IACxE,MAAM,aAAa,GACjB,uBAAuB,CAAC;QACtB,MAAM,CAAC,aAAa;QACpB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,iBAAiB;KACzB,CAAC,IAAI,MAAM,CAAC,iBAAiB,CAAC;IACjC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,kBAAkB,GACtB,uBAAuB,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,aAAa,CAAC;IACpF,MAAM,UAAU,GAAG,kBAAkB,IAAI,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAEpF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,OAAO,GAAG,QAAQ,CAAC;IAEvB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAW,EAAE,IAAoB;IAC3E,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,GAAW,EAAE,IAAoB;IACzE,OAAO,2BAA2B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAKzC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,eAAe,KAAK,OAAO,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpE,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,IAAI;gBACb,gBAAgB,EAAE,QAAQ;aAC3B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;IAC1D,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,IAAI;QAChB,MAAM;QACN,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,IAAI,GACR,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;YACpD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACV,CAAC,CAAC,IAAI,CAAC;IAEb,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,MAAe;IAChE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,MAAiC,CAAC;IAC/C,MAAM,aAAa,GAAc,EAAE,CAAC;IAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,GAA8B,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,qBAAqB,CAC1B,aAAa;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SAC7C,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,MAAe;IAChE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,MAAiC,CAAC;IAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAoB;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAE1D,IAAI,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,KAAK,KAAK;QACnB,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACpD,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAC1D,CAAC"}