@slkiser/opencode-quota 4.3.0 → 4.4.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 (81) hide show
  1. package/README.md +48 -49
  2. package/dist/lib/entries.d.ts +3 -1
  3. package/dist/lib/entries.d.ts.map +1 -1
  4. package/dist/lib/entries.js.map +1 -1
  5. package/dist/lib/grouped-entry-normalization.js +1 -1
  6. package/dist/lib/grouped-entry-normalization.js.map +1 -1
  7. package/dist/lib/jsonc.d.ts +8 -6
  8. package/dist/lib/jsonc.d.ts.map +1 -1
  9. package/dist/lib/jsonc.js +9 -52
  10. package/dist/lib/jsonc.js.map +1 -1
  11. package/dist/lib/kilo-config.d.ts +15 -0
  12. package/dist/lib/kilo-config.d.ts.map +1 -0
  13. package/dist/lib/kilo-config.js +26 -0
  14. package/dist/lib/kilo-config.js.map +1 -0
  15. package/dist/lib/kilo.d.ts +19 -0
  16. package/dist/lib/kilo.d.ts.map +1 -0
  17. package/dist/lib/kilo.js +75 -0
  18. package/dist/lib/kilo.js.map +1 -0
  19. package/dist/lib/ollama-cloud-config.d.ts +12 -34
  20. package/dist/lib/ollama-cloud-config.d.ts.map +1 -1
  21. package/dist/lib/ollama-cloud-config.js +24 -146
  22. package/dist/lib/ollama-cloud-config.js.map +1 -1
  23. package/dist/lib/ollama-cloud.d.ts +6 -10
  24. package/dist/lib/ollama-cloud.d.ts.map +1 -1
  25. package/dist/lib/ollama-cloud.js +142 -116
  26. package/dist/lib/ollama-cloud.js.map +1 -1
  27. package/dist/lib/provider-metadata.d.ts +16 -3
  28. package/dist/lib/provider-metadata.d.ts.map +1 -1
  29. package/dist/lib/provider-metadata.js +16 -3
  30. package/dist/lib/provider-metadata.js.map +1 -1
  31. package/dist/lib/quota-command-format.d.ts.map +1 -1
  32. package/dist/lib/quota-command-format.js +11 -9
  33. package/dist/lib/quota-command-format.js.map +1 -1
  34. package/dist/lib/quota-render-data.js +1 -1
  35. package/dist/lib/quota-render-data.js.map +1 -1
  36. package/dist/lib/quota-state.d.ts.map +1 -1
  37. package/dist/lib/quota-state.js +2 -1
  38. package/dist/lib/quota-state.js.map +1 -1
  39. package/dist/lib/quota-stats-format.d.ts.map +1 -1
  40. package/dist/lib/quota-stats-format.js +5 -3
  41. package/dist/lib/quota-stats-format.js.map +1 -1
  42. package/dist/lib/quota-status.js +2 -2
  43. package/dist/lib/quota-status.js.map +1 -1
  44. package/dist/lib/toast-format-grouped.js +3 -3
  45. package/dist/lib/toast-format-grouped.js.map +1 -1
  46. package/dist/lib/tui-compact-format.d.ts.map +1 -1
  47. package/dist/lib/tui-compact-format.js +16 -7
  48. package/dist/lib/tui-compact-format.js.map +1 -1
  49. package/dist/lib/types.d.ts +13 -6
  50. package/dist/lib/types.d.ts.map +1 -1
  51. package/dist/lib/types.js.map +1 -1
  52. package/dist/providers/copilot.js +1 -1
  53. package/dist/providers/google-account-format.d.ts +3 -2
  54. package/dist/providers/google-account-format.d.ts.map +1 -1
  55. package/dist/providers/google-account-format.js +41 -10
  56. package/dist/providers/google-account-format.js.map +1 -1
  57. package/dist/providers/google-agy.d.ts.map +1 -1
  58. package/dist/providers/google-agy.js +11 -6
  59. package/dist/providers/google-agy.js.map +1 -1
  60. package/dist/providers/google-antigravity.d.ts.map +1 -1
  61. package/dist/providers/google-antigravity.js +17 -5
  62. package/dist/providers/google-antigravity.js.map +1 -1
  63. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  64. package/dist/providers/google-gemini-cli.js +12 -4
  65. package/dist/providers/google-gemini-cli.js.map +1 -1
  66. package/dist/providers/kilo.d.ts +6 -0
  67. package/dist/providers/kilo.d.ts.map +1 -0
  68. package/dist/providers/kilo.js +52 -0
  69. package/dist/providers/kilo.js.map +1 -0
  70. package/dist/providers/mimo.js +1 -1
  71. package/dist/providers/mimo.js.map +1 -1
  72. package/dist/providers/minimax-coding-plan.js +1 -1
  73. package/dist/providers/minimax-coding-plan.js.map +1 -1
  74. package/dist/providers/ollama-cloud.d.ts +2 -2
  75. package/dist/providers/ollama-cloud.d.ts.map +1 -1
  76. package/dist/providers/ollama-cloud.js +68 -47
  77. package/dist/providers/ollama-cloud.js.map +1 -1
  78. package/dist/providers/registry.d.ts.map +1 -1
  79. package/dist/providers/registry.js +2 -0
  80. package/dist/providers/registry.js.map +1 -1
  81. package/package.json +3 -9
package/README.md CHANGED
@@ -131,52 +131,51 @@ Use the CLI for scripts, CI, or a quick terminal check outside OpenCode.
131
131
 
132
132
  ## Providers
133
133
 
134
- ### Pre-configured providers
134
+ Most providers work automatically. `Automatic` means OpenCode Quota reuses the credential saved through OpenCode's `/connect`. If a provider has a “Needs setup” link, open that setup note only if you use that provider. Providers can appear in both audience sections when the vendor supports both.
135
135
 
136
- Most providers work automatically. If a provider has a “Needs setup” link, open that setup note only if you use that provider. Providers can appear in both audience sections when the vendor supports both.
137
-
138
- ### American providers
136
+ ### Pre-configured American providers
139
137
 
140
138
  <details open>
141
139
  <summary><strong>Personal</strong></summary>
142
140
 
143
- | Provider | Auth/setup | Data from | Reports |
144
- | ------------------ | ------------------------------------------------------------------------ | ------------------ | ------------------ |
145
- | Anthropic (Claude) | [Needs setup](docs/readme/providers.md#anthropic-claude) | Local CLI/OAuth | Quota |
146
- | Chutes AI | API key/config | Remote API | Quota |
147
- | Cursor | [Needs setup](docs/readme/providers.md#cursor) | Local estimate | Budget and spend |
148
- | GitHub Copilot | Automatic OAuth / [billing PAT](docs/readme/providers.md#github-copilot) | Remote API | Usage and budget |
149
- | Google AGY | [Needs setup](docs/readme/providers.md#google-agy-quick-setup) | Remote API | Quota |
150
- | Google Antigravity | [Needs setup](docs/readme/providers.md#google-antigravity) | Remote API | Quota |
151
- | NanoGPT | API key/config | Remote API | Quota and balance |
152
- | Ollama Cloud | [Needs setup](docs/readme/providers.md#ollama-cloud) | Dashboard scraping | Quota |
153
- | OpenAI | Automatic | Remote API | Quota |
154
- | OpenCode Go | [Needs setup](docs/readme/providers.md#opencode-go) | Dashboard scraping | Quota |
155
- | OpenCode Zen | [Needs setup](docs/readme/providers.md#opencode-zen) | Dashboard scraping | Budget and balance |
156
- | OpenRouter | Automatic | Remote API | Budget and spend |
157
- | Synthetic | Automatic | Remote API | Quota |
158
- | xAI SuperGrok | OpenCode OAuth (`/connect` xAI) | Remote API | Quota |
141
+ | Provider | Auth/setup | Data from | Reports |
142
+ | ------------------ | -------------------------------------------------------------- | ------------------ | ------------------ |
143
+ | Anthropic (Claude) | [Needs setup](docs/readme/providers.md#anthropic-claude) | Local CLI/OAuth | Quota |
144
+ | Chutes AI | Automatic | Remote API | Quota |
145
+ | Cursor | [Needs setup](docs/readme/providers.md#cursor) | Local estimate | Budget and spend |
146
+ | GitHub Copilot | Automatic | Remote API | Usage and budget |
147
+ | Google AGY | [Needs setup](docs/readme/providers.md#google-agy-quick-setup) | Remote API | Quota |
148
+ | Google Antigravity | [Needs setup](docs/readme/providers.md#google-antigravity) | Remote API | Quota |
149
+ | Kilo Gateway | Automatic | Remote API | Balance |
150
+ | NanoGPT | Automatic | Remote API | Quota and balance |
151
+ | Ollama Cloud | Automatic | Remote API | Quota and usage |
152
+ | OpenAI | Automatic | Remote API | Quota |
153
+ | OpenCode Go | [Needs setup](docs/readme/providers.md#opencode-go) | Dashboard scraping | Quota |
154
+ | OpenCode Zen | [Needs setup](docs/readme/providers.md#opencode-zen) | Dashboard scraping | Budget and balance |
155
+ | OpenRouter | Automatic | Remote API | Budget and spend |
156
+ | Synthetic | Automatic | Remote API | Quota |
157
+ | xAI SuperGrok | Automatic | Remote API | Quota |
159
158
 
160
159
  </details>
161
160
 
162
161
  <details>
163
162
  <summary><strong>Business / Enterprise</strong></summary>
164
163
 
165
- | Provider | Auth/setup | Data from | Reports |
166
- | ----------------------- | ------------------------------------------------------------------------ | ------------------ | ------------------ |
167
- | Anthropic (Claude) | [Needs setup](docs/readme/providers.md#anthropic-claude) | Local CLI/OAuth | Quota |
168
- | Chutes AI | API key/config | Remote API | Quota |
169
- | Cursor | [Needs setup](docs/readme/providers.md#cursor) | Local estimate | Budget and spend |
170
- | Gemini CLI (deprecated) | [Existing setups only](docs/readme/providers.md#gemini-cli) | Remote API | Quota |
171
- | GitHub Copilot | Automatic OAuth / [billing PAT](docs/readme/providers.md#github-copilot) | Remote API | Usage and budget |
172
- | Google AGY | [Needs setup](docs/readme/providers.md#google-agy-quick-setup) | Remote API | Quota |
173
- | Google Antigravity | [Needs setup](docs/readme/providers.md#google-antigravity) | Remote API | Quota |
174
- | NanoGPT | API key/config | Remote API | Quota and balance |
175
- | OpenAI | Automatic | Remote API | Quota |
176
- | OpenCode Zen | [Needs setup](docs/readme/providers.md#opencode-zen) | Dashboard scraping | Budget and balance |
177
- | OpenRouter | Automatic | Remote API | Budget and spend |
178
- | Synthetic | Automatic | Remote API | Quota |
179
- | xAI SuperGrok | OpenCode OAuth (`/connect` xAI) | Remote API | Quota |
164
+ | Provider | Auth/setup | Data from | Reports |
165
+ | ----------------------- | -------------------------------------------------------------- | ------------------ | ------------------ |
166
+ | Anthropic (Claude) | [Needs setup](docs/readme/providers.md#anthropic-claude) | Local CLI/OAuth | Quota |
167
+ | Chutes AI | Automatic | Remote API | Quota |
168
+ | Cursor | [Needs setup](docs/readme/providers.md#cursor) | Local estimate | Budget and spend |
169
+ | Gemini CLI (deprecated) | [Existing setups only](docs/readme/providers.md#gemini-cli) | Remote API | Quota |
170
+ | GitHub Copilot | [Needs setup](docs/readme/providers.md#github-copilot) | Remote API | Usage and budget |
171
+ | Google AGY | [Needs setup](docs/readme/providers.md#google-agy-quick-setup) | Remote API | Quota |
172
+ | Google Antigravity | [Needs setup](docs/readme/providers.md#google-antigravity) | Remote API | Quota |
173
+ | NanoGPT | Automatic | Remote API | Quota and balance |
174
+ | OpenAI | Automatic | Remote API | Quota |
175
+ | OpenCode Zen | [Needs setup](docs/readme/providers.md#opencode-zen) | Dashboard scraping | Budget and balance |
176
+ | OpenRouter | Automatic | Remote API | Budget and spend |
177
+ | Synthetic | Automatic | Remote API | Quota |
178
+ | xAI SuperGrok | Automatic | Remote API | Quota |
180
179
 
181
180
  Business placement describes vendor plan availability. Except for configured Copilot organization/enterprise billing, current integrations generally report one signed-in account, seat, API key, or workspace.
182
181
 
@@ -184,34 +183,34 @@ Gemini CLI quota support is deprecated for new installs. Existing v4 configurati
184
183
 
185
184
  </details>
186
185
 
187
- ### Chinese providers
186
+ ### Pre-configured Chinese providers
188
187
 
189
188
  <details open>
190
189
  <summary><strong>Personal</strong></summary>
191
190
 
192
191
  | Provider | Auth/setup | Data from | Reports |
193
192
  | ------------------------ | --------------------------------------------------- | -------------- | ------------------ |
194
- | Alibaba Coding Plan | OpenCode config | Local estimate | Quota |
195
- | DeepSeek | API key/config | Remote API | Balance and status |
196
- | Kimi Code | OpenCode config | Remote API | Quota |
197
- | MiniMax Coding Plan | OpenCode config | Remote API | Quota |
198
- | MiniMax Coding Plan (CN) | OpenCode config | Remote API | Quota |
193
+ | Alibaba Coding Plan | Automatic | Local estimate | Quota |
194
+ | DeepSeek | Automatic | Remote API | Balance and status |
195
+ | Kimi Code | Automatic | Remote API | Quota |
196
+ | MiniMax Coding Plan | Automatic | Remote API | Quota |
197
+ | MiniMax Coding Plan (CN) | Automatic | Remote API | Quota |
199
198
  | Qwen Code | [Needs setup](docs/readme/providers.md#qwen-code) | Local estimate | Quota |
200
199
  | Xiaomi MiMo | [Needs setup](docs/readme/providers.md#xiaomi-mimo) | Dashboard API | Quota and balance |
201
- | Z.ai Coding Plan | OpenCode config | Remote API | Quota |
202
- | Zhipu Coding Plan | OpenCode config | Remote API | Quota |
200
+ | Z.ai Coding Plan | Automatic | Remote API | Quota |
201
+ | Zhipu Coding Plan | Automatic | Remote API | Quota |
203
202
 
204
203
  </details>
205
204
 
206
205
  <details>
207
206
  <summary><strong>Business / Team</strong></summary>
208
207
 
209
- | Provider | Auth/setup | Data from | Reports |
210
- | ------------------------ | --------------- | ---------- | ------- |
211
- | Kimi Code | OpenCode config | Remote API | Quota |
212
- | MiniMax Coding Plan | OpenCode config | Remote API | Quota |
213
- | MiniMax Coding Plan (CN) | OpenCode config | Remote API | Quota |
214
- | Zhipu Coding Plan | OpenCode config | Remote API | Quota |
208
+ | Provider | Auth/setup | Data from | Reports |
209
+ | ------------------------ | ---------- | ---------- | ------- |
210
+ | Kimi Code | Automatic | Remote API | Quota |
211
+ | MiniMax Coding Plan | Automatic | Remote API | Quota |
212
+ | MiniMax Coding Plan (CN) | Automatic | Remote API | Quota |
213
+ | Zhipu Coding Plan | Automatic | Remote API | Quota |
215
214
 
216
215
  These vendors offer team or business plans, but the current integrations report only the configured member API key rather than organization-wide usage.
217
216
 
@@ -33,6 +33,8 @@ export interface GroupedQuotaEntryMeta {
33
33
  group?: string;
34
34
  /** Optional row label inside the group, e.g. "5h:" or "Usage:". */
35
35
  label?: string;
36
+ /** Optional semantic label for verbose command output when it differs from resultType. */
37
+ metricLabel?: string;
36
38
  /** Optional compact right-hand summary, e.g. "42/300". */
37
39
  right?: string;
38
40
  /** Optional stable row priority within a group; lower values render first. */
@@ -44,7 +46,7 @@ export type QuotaToastEntry = (GroupedQuotaEntryMeta & {
44
46
  * The optional discriminant preserves the existing percent-entry shape.
45
47
  */
46
48
  kind?: "percent";
47
- /** Display label (already human-friendly), e.g. "Copilot" or "Claude (abc..gmail)". */
49
+ /** Display label (already human-friendly), e.g. "Copilot" or "Claude (abc…)". */
48
50
  name: string;
49
51
  /** Remaining quota as a percentage (may be below 0 when over quota). */
50
52
  percentRemaining: number;
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"AA2FA,MAAM,UAAU,YAAY,CAAC,CAAkB;IAC7C,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,CAAkB;IAElB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"AA6FA,MAAM,UAAU,YAAY,CAAC,CAAkB;IAC7C,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,CAAkB;IAElB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC"}
@@ -23,7 +23,7 @@ function getGoogleFallbackMeta(name) {
23
23
  if (!looksLikeGoogleModel(model) || !account)
24
24
  return undefined;
25
25
  return {
26
- group: `Google Antigravity (${account})`,
26
+ group: `[Antigravity (${account})]`,
27
27
  label: `${model}:`,
28
28
  };
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grouped-entry-normalization.js","sourceRoot":"","sources":["../../src/lib/grouped-entry-normalization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grouped-entry-normalization.js","sourceRoot":"","sources":["../../src/lib/grouped-entry-normalization.ts"],"names":[],"mappings":"AAmBA,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,CACL,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,SAAS,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/D,OAAO;QACL,KAAK,EAAE,iBAAiB,OAAO,IAAI;QACnC,KAAK,EAAE,GAAG,KAAK,GAAG;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAClE,IAAI,2DAA2D,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACvF,IAAI,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACtE,IAAI,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpE,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAErE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAAkC;IACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC,YAAa,CAAC;IACpE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,0BAA0B,CACjC,KAAsB,EACtB,MAA2B;IAE3B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG;QACjB,GAAG,KAAK;QACR,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO;YACL,GAAG,UAAU;YACb,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,GAAG,CAAC,KAAK,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,UAAU;QACb,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACxB,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAA0B,EAC1B,MAA2B;IAE3B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAqC,CAAC;IAEpE,KAAK,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,MAAM,eAAe,GAAG,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,WAAW,GAA4B;YAC3C,KAAK,EAAE,eAAe;YACtB,aAAa;YACb,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC;SACvC,CAAC;QACF,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,aAAa;aAC1B,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC1E,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAChC,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAClD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAE7B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAA0B,EAC1B,MAA2B;IAE3B,OAAO,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9E,CAAC"}
@@ -1,11 +1,13 @@
1
- /**
2
- * Strip trailing commas from JSON content.
3
- * Removes commas that appear before closing brackets/braces,
4
- * while preserving commas inside strings.
5
- */
6
- export declare function stripTrailingCommas(content: string): string;
7
1
  /**
8
2
  * Parse JSON or JSONC content preserving comments via comment-json.
3
+ *
4
+ * `comment-json` accepts trailing commas natively, so the content is handed to
5
+ * it verbatim. An earlier hand-rolled pre-pass stripped trailing commas first;
6
+ * it tracked `"` and `'` as string delimiters without understanding comments, so
7
+ * a single unpaired quote inside a `//` or block comment inverted its
8
+ * in-string state for the rest of the file and it then edited real string
9
+ * values and comment text. Since `parse` never needed the help, the pre-pass
10
+ * could only ever do harm.
9
11
  */
10
12
  export declare function parseJsonOrJsonc(content: string, isJsonc: boolean): unknown;
11
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"jsonc.d.ts","sourceRoot":"","sources":["../../src/lib/jsonc.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiD3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAG3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAG3D"}
1
+ {"version":3,"file":"jsonc.d.ts","sourceRoot":"","sources":["../../src/lib/jsonc.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAE3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAG3D"}
package/dist/lib/jsonc.js CHANGED
@@ -1,61 +1,18 @@
1
1
  import commentJson from "comment-json";
2
2
  const { parse, stringify } = commentJson;
3
- /**
4
- * Strip trailing commas from JSON content.
5
- * Removes commas that appear before closing brackets/braces,
6
- * while preserving commas inside strings.
7
- */
8
- export function stripTrailingCommas(content) {
9
- let result = "";
10
- let i = 0;
11
- let inString = false;
12
- let stringChar = "";
13
- while (i < content.length) {
14
- const char = content[i];
15
- // Handle string boundaries
16
- if (char === '"' || char === "'") {
17
- let backslashCount = 0;
18
- let j = i - 1;
19
- while (j >= 0 && content[j] === "\\") {
20
- backslashCount++;
21
- j--;
22
- }
23
- if (backslashCount % 2 === 0) {
24
- if (!inString) {
25
- inString = true;
26
- stringChar = char;
27
- }
28
- else if (char === stringChar) {
29
- inString = false;
30
- }
31
- result += char;
32
- i++;
33
- continue;
34
- }
35
- }
36
- // If not in a string, check for a trailing comma
37
- if (!inString && char === ",") {
38
- let j = i + 1;
39
- while (j < content.length && /\s/.test(content[j])) {
40
- j++;
41
- }
42
- // If the next non-whitespace character is a closing bracket/brace, skip this comma
43
- if (j < content.length && (content[j] === "]" || content[j] === "}")) {
44
- i++;
45
- continue;
46
- }
47
- }
48
- result += char;
49
- i++;
50
- }
51
- return result;
52
- }
53
3
  /**
54
4
  * Parse JSON or JSONC content preserving comments via comment-json.
5
+ *
6
+ * `comment-json` accepts trailing commas natively, so the content is handed to
7
+ * it verbatim. An earlier hand-rolled pre-pass stripped trailing commas first;
8
+ * it tracked `"` and `'` as string delimiters without understanding comments, so
9
+ * a single unpaired quote inside a `//` or block comment inverted its
10
+ * in-string state for the rest of the file and it then edited real string
11
+ * values and comment text. Since `parse` never needed the help, the pre-pass
12
+ * could only ever do harm.
55
13
  */
56
14
  export function parseJsonOrJsonc(content, isJsonc) {
57
- const cleaned = stripTrailingCommas(content);
58
- return parse(cleaned);
15
+ return parse(content);
59
16
  }
60
17
  /**
61
18
  * Stringify data back to JSONC while preserving attached comments.
@@ -1 +1 @@
1
- {"version":3,"file":"jsonc.js","sourceRoot":"","sources":["../../src/lib/jsonc.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAExB,2BAA2B;QAC3B,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrC,cAAc,EAAE,CAAC;gBACjB,CAAC,EAAE,CAAC;YACN,CAAC;YAED,IAAI,cAAc,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAC;oBAChB,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;qBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC/B,QAAQ,GAAG,KAAK,CAAC;gBACnB,CAAC;gBACD,MAAM,IAAI,IAAI,CAAC;gBACf,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,CAAC,EAAE,CAAC;YACN,CAAC;YACD,mFAAmF;YACnF,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACrE,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,IAAI,IAAI,CAAC;QACf,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAgB;IAChE,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,8EAA8E;IAC9E,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"jsonc.js","sourceRoot":"","sources":["../../src/lib/jsonc.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAgB;IAChE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,8EAA8E;IAC9E,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface KiloApiKeyResult {
2
+ key: string;
3
+ source: KiloKeySource;
4
+ }
5
+ export type KiloKeySource = "env:KILO_API_KEY" | "opencode.json" | "opencode.jsonc" | "auth.json";
6
+ export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
7
+ export declare function resolveKiloApiKey(): Promise<KiloApiKeyResult | null>;
8
+ export declare function hasKiloApiKey(): Promise<boolean>;
9
+ export declare function getKiloKeyDiagnostics(): Promise<{
10
+ configured: boolean;
11
+ source: KiloKeySource | null;
12
+ checkedPaths: string[];
13
+ authPaths: string[];
14
+ }>;
15
+ //# sourceMappingURL=kilo-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kilo-config.d.ts","sourceRoot":"","sources":["../../src/lib/kilo-config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,eAAe,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAElG,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAgBjH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAE1E;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAEtD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CAED"}
@@ -0,0 +1,26 @@
1
+ import { getAuthPaths, readAuthFile } from "./opencode-auth.js";
2
+ import { createProviderApiKeyResolver, getGlobalOpencodeConfigCandidatePaths, } from "./api-key-resolver.js";
3
+ export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
4
+ const kiloApiKeyResolver = createProviderApiKeyResolver({
5
+ envVars: [{ name: "KILO_API_KEY", source: "env:KILO_API_KEY" }],
6
+ providerKeys: ["kilo"],
7
+ allowedEnvVars: ["KILO_API_KEY"],
8
+ configJsonSource: "opencode.json",
9
+ configJsoncSource: "opencode.jsonc",
10
+ getConfigCandidates: getGlobalOpencodeConfigCandidatePaths,
11
+ auth: {
12
+ readAuth: readAuthFile,
13
+ getAuthPaths,
14
+ authSource: "auth.json",
15
+ },
16
+ });
17
+ export async function resolveKiloApiKey() {
18
+ return kiloApiKeyResolver.resolve();
19
+ }
20
+ export async function hasKiloApiKey() {
21
+ return kiloApiKeyResolver.has();
22
+ }
23
+ export async function getKiloKeyDiagnostics() {
24
+ return kiloApiKeyResolver.diagnostics();
25
+ }
26
+ //# sourceMappingURL=kilo-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kilo-config.js","sourceRoot":"","sources":["../../src/lib/kilo-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAEjH,MAAM,kBAAkB,GAAG,4BAA4B,CAAgB;IACrE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC/D,YAAY,EAAE,CAAC,MAAM,CAAC;IACtB,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,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,iBAAiB;IACrC,OAAO,kBAAkB,CAAC,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IAMzC,OAAO,kBAAkB,CAAC,WAAW,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Kilo Gateway balance API client.
3
+ *
4
+ * Kilo's public gateway API does not expose quota or usage-history totals.
5
+ * Its official gateway package documents the authenticated profile balance API,
6
+ * so this client intentionally reports only that provider-reported USD balance.
7
+ */
8
+ import type { QuotaError } from "./types.js";
9
+ type KiloResult = {
10
+ success: true;
11
+ balanceUsd: number;
12
+ } | QuotaError | null;
13
+ declare function parseKiloBalance(payload: unknown): KiloResult;
14
+ export declare function queryKiloBalance(options?: {
15
+ requestTimeoutMs?: number;
16
+ }): Promise<KiloResult>;
17
+ export { parseKiloBalance as _parseKiloBalance };
18
+ export type { KiloResult };
19
+ //# sourceMappingURL=kilo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kilo.d.ts","sourceRoot":"","sources":["../../src/lib/kilo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQ7C,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,IAAI,CAAC;AAa5E,iBAAS,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAiBtD;AAED,wBAAsB,gBAAgB,CACpC,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,UAAU,CAAC,CAqCrB;AAED,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Kilo Gateway balance API client.
3
+ *
4
+ * Kilo's public gateway API does not expose quota or usage-history totals.
5
+ * Its official gateway package documents the authenticated profile balance API,
6
+ * so this client intentionally reports only that provider-reported USD balance.
7
+ */
8
+ import { sanitizeSingleLineDisplayText } from "./display-sanitize.js";
9
+ import { fetchWithTimeout } from "./http.js";
10
+ import { resolveKiloApiKey } from "./kilo-config.js";
11
+ const KILO_BALANCE_URL = "https://api.kilo.ai/api/profile/balance";
12
+ const MAX_RESPONSE_BYTES = 64 * 1024;
13
+ function isRecord(value) {
14
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
15
+ }
16
+ function sanitizeMessage(text, secret, maxLength = 200) {
17
+ const redacted = secret ? text.split(secret).join("[redacted]") : text;
18
+ return (sanitizeSingleLineDisplayText(redacted) || "unknown").slice(0, maxLength);
19
+ }
20
+ function parseKiloBalance(payload) {
21
+ if (!isRecord(payload)) {
22
+ return {
23
+ success: false,
24
+ error: "Kilo Gateway balance API returned an unexpected response shape",
25
+ };
26
+ }
27
+ const balanceUsd = payload.balance;
28
+ if (typeof balanceUsd !== "number" || !Number.isFinite(balanceUsd) || balanceUsd < 0) {
29
+ return {
30
+ success: false,
31
+ error: "Kilo Gateway balance API returned an invalid balance",
32
+ };
33
+ }
34
+ return { success: true, balanceUsd };
35
+ }
36
+ export async function queryKiloBalance(options = {}) {
37
+ const resolved = await resolveKiloApiKey();
38
+ if (!resolved)
39
+ return null;
40
+ try {
41
+ return await fetchWithTimeout(KILO_BALANCE_URL, {
42
+ request: {
43
+ method: "GET",
44
+ headers: {
45
+ Accept: "application/json",
46
+ Authorization: `Bearer ${resolved.key}`,
47
+ "Content-Type": "application/json",
48
+ },
49
+ redirect: "manual",
50
+ },
51
+ timeoutMs: options.requestTimeoutMs,
52
+ consume: async (response) => {
53
+ const text = await response.text();
54
+ if (new TextEncoder().encode(text).byteLength > MAX_RESPONSE_BYTES) {
55
+ throw new Error(`Kilo Gateway balance API response exceeded ${MAX_RESPONSE_BYTES} bytes`);
56
+ }
57
+ if (!response.ok) {
58
+ return {
59
+ success: false,
60
+ error: `Kilo Gateway balance API error ${response.status}: ${sanitizeMessage(text, resolved.key)}`,
61
+ };
62
+ }
63
+ return parseKiloBalance(JSON.parse(text));
64
+ },
65
+ });
66
+ }
67
+ catch (error) {
68
+ return {
69
+ success: false,
70
+ error: sanitizeMessage(error instanceof Error ? error.message : String(error), resolved.key),
71
+ };
72
+ }
73
+ }
74
+ export { parseKiloBalance as _parseKiloBalance };
75
+ //# sourceMappingURL=kilo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kilo.js","sourceRoot":"","sources":["../../src/lib/kilo.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,15 @@
1
- export interface OllamaCloudConfig {
2
- cookie: string;
1
+ export interface OllamaCloudApiKeyResult {
2
+ key: string;
3
+ source: OllamaCloudKeySource;
3
4
  }
4
- export type ResolvedOllamaCloudConfig = {
5
- state: "none";
6
- } | {
7
- state: "configured";
8
- config: OllamaCloudConfig;
9
- source: string;
10
- } | {
11
- state: "incomplete";
12
- source: string;
13
- missing: string;
14
- } | {
15
- state: "invalid";
16
- source: string;
17
- error: string;
18
- };
19
- export interface OllamaCloudConfigDiagnostics {
20
- state: ResolvedOllamaCloudConfig["state"];
21
- source: string | null;
22
- missing: string | null;
23
- error: string | null;
5
+ export type OllamaCloudKeySource = "env:OLLAMA_API_KEY" | "opencode.json" | "opencode.jsonc" | "auth.json";
6
+ export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
7
+ export declare function resolveOllamaCloudApiKey(): Promise<OllamaCloudApiKeyResult | null>;
8
+ export declare function hasOllamaCloudApiKey(): Promise<boolean>;
9
+ export declare function getOllamaCloudKeyDiagnostics(): Promise<{
10
+ configured: boolean;
11
+ source: OllamaCloudKeySource | null;
24
12
  checkedPaths: string[];
25
- }
26
- declare function getOllamaUsageConfigPath(): string;
27
- declare function getOllamaUsageLegacyPath(): string;
28
- export declare function resolveOllamaCloudConfigFromEnv(env?: NodeJS.ProcessEnv): ResolvedOllamaCloudConfig | null;
29
- export declare function resolveOllamaCloudConfig(): Promise<ResolvedOllamaCloudConfig>;
30
- declare const DEFAULT_CACHE_MAX_AGE_MS = 30000;
31
- export { DEFAULT_CACHE_MAX_AGE_MS as DEFAULT_OLLAMA_CLOUD_CONFIG_CACHE_MAX_AGE_MS };
32
- export declare function resolveOllamaCloudConfigCached(params?: {
33
- maxAgeMs?: number;
34
- }): Promise<ResolvedOllamaCloudConfig>;
35
- export declare function getOllamaCloudConfigDiagnostics(): Promise<OllamaCloudConfigDiagnostics>;
36
- export { getOllamaUsageConfigPath, getOllamaUsageLegacyPath };
13
+ authPaths: string[];
14
+ }>;
37
15
  //# sourceMappingURL=ollama-cloud-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-cloud-config.d.ts","sourceRoot":"","sources":["../../src/lib/ollama-cloud-config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAuBD,iBAAS,wBAAwB,IAAI,MAAM,CAG1C;AAED,iBAAS,wBAAwB,IAAI,MAAM,CAE1C;AA4CD,wBAAgB,+BAA+B,CAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,yBAAyB,GAAG,IAAI,CAUlC;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAgCnF;AAKD,QAAA,MAAM,wBAAwB,QAAS,CAAC;AACxC,OAAO,EAAE,wBAAwB,IAAI,4CAA4C,EAAE,CAAC;AAEpF,wBAAsB,8BAA8B,CAAC,MAAM,CAAC,EAAE;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CASrC;AAED,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAmC7F;AAED,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"ollama-cloud-config.d.ts","sourceRoot":"","sources":["../../src/lib/ollama-cloud-config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,WAAW,CAAC;AAEhB,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAgBjH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAExF;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE7D;AAED,wBAAsB,4BAA4B,IAAI,OAAO,CAAC;IAC5D,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CAED"}