@slkiser/opencode-quota 4.0.1 → 4.2.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.
- package/README.md +94 -28
- package/dist/bin/opencode-quota.d.ts.map +1 -1
- package/dist/bin/opencode-quota.js +8 -0
- package/dist/bin/opencode-quota.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/anthropic.d.ts.map +1 -1
- package/dist/lib/anthropic.js +78 -72
- package/dist/lib/anthropic.js.map +1 -1
- package/dist/lib/api-key-resolver.d.ts +73 -22
- package/dist/lib/api-key-resolver.d.ts.map +1 -1
- package/dist/lib/api-key-resolver.js +116 -39
- package/dist/lib/api-key-resolver.js.map +1 -1
- package/dist/lib/atomic-json.d.ts +3 -1
- package/dist/lib/atomic-json.d.ts.map +1 -1
- package/dist/lib/atomic-json.js +23 -9
- package/dist/lib/atomic-json.js.map +1 -1
- package/dist/lib/chutes-config.d.ts.map +1 -1
- package/dist/lib/chutes-config.js +2 -4
- package/dist/lib/chutes-config.js.map +1 -1
- package/dist/lib/chutes.d.ts.map +1 -1
- package/dist/lib/chutes.js +28 -23
- package/dist/lib/chutes.js.map +1 -1
- package/dist/lib/cli-show.d.ts +9 -0
- package/dist/lib/cli-show.d.ts.map +1 -1
- package/dist/lib/cli-show.js +34 -5
- package/dist/lib/cli-show.js.map +1 -1
- package/dist/lib/cli-status.d.ts +8 -0
- package/dist/lib/cli-status.d.ts.map +1 -0
- package/dist/lib/cli-status.js +125 -0
- package/dist/lib/cli-status.js.map +1 -0
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +47 -12
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/copilot.d.ts +11 -5
- package/dist/lib/copilot.d.ts.map +1 -1
- package/dist/lib/copilot.js +378 -79
- package/dist/lib/copilot.js.map +1 -1
- package/dist/lib/deepseek-auth.d.ts.map +1 -1
- package/dist/lib/deepseek-auth.js +3 -7
- package/dist/lib/deepseek-auth.js.map +1 -1
- package/dist/lib/deepseek.d.ts.map +1 -1
- package/dist/lib/deepseek.js +22 -17
- package/dist/lib/deepseek.js.map +1 -1
- package/dist/lib/display-sanitize.d.ts.map +1 -1
- package/dist/lib/display-sanitize.js +8 -0
- package/dist/lib/display-sanitize.js.map +1 -1
- package/dist/lib/entries.d.ts +14 -0
- package/dist/lib/entries.d.ts.map +1 -1
- package/dist/lib/entries.js.map +1 -1
- package/dist/lib/format-utils.d.ts +7 -0
- package/dist/lib/format-utils.d.ts.map +1 -1
- package/dist/lib/format-utils.js +18 -0
- package/dist/lib/format-utils.js.map +1 -1
- package/dist/lib/format.d.ts +1 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +22 -7
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/glm-coding-plan.d.ts +18 -0
- package/dist/lib/glm-coding-plan.d.ts.map +1 -0
- package/dist/lib/glm-coding-plan.js +68 -0
- package/dist/lib/glm-coding-plan.js.map +1 -0
- package/dist/lib/google-agy-companion.d.ts +4 -25
- package/dist/lib/google-agy-companion.d.ts.map +1 -1
- package/dist/lib/google-agy-companion.js +47 -272
- package/dist/lib/google-agy-companion.js.map +1 -1
- package/dist/lib/google-agy.d.ts.map +1 -1
- package/dist/lib/google-agy.js +204 -111
- package/dist/lib/google-agy.js.map +1 -1
- package/dist/lib/google-antigravity-companion.d.ts +4 -25
- package/dist/lib/google-antigravity-companion.d.ts.map +1 -1
- package/dist/lib/google-antigravity-companion.js +44 -283
- package/dist/lib/google-antigravity-companion.js.map +1 -1
- package/dist/lib/google-companion-credentials.d.ts +70 -0
- package/dist/lib/google-companion-credentials.d.ts.map +1 -0
- package/dist/lib/google-companion-credentials.js +265 -0
- package/dist/lib/google-companion-credentials.js.map +1 -0
- package/dist/lib/google-gemini-cli-companion.d.ts +4 -25
- package/dist/lib/google-gemini-cli-companion.d.ts.map +1 -1
- package/dist/lib/google-gemini-cli-companion.js +47 -258
- package/dist/lib/google-gemini-cli-companion.js.map +1 -1
- package/dist/lib/google-gemini-cli.d.ts.map +1 -1
- package/dist/lib/google-gemini-cli.js +55 -61
- package/dist/lib/google-gemini-cli.js.map +1 -1
- package/dist/lib/google-token-cache.d.ts.map +1 -1
- package/dist/lib/google-token-cache.js +87 -34
- package/dist/lib/google-token-cache.js.map +1 -1
- package/dist/lib/google.d.ts.map +1 -1
- package/dist/lib/google.js +80 -84
- package/dist/lib/google.js.map +1 -1
- package/dist/lib/grouped-entry-normalization.d.ts.map +1 -1
- package/dist/lib/grouped-entry-normalization.js +7 -1
- package/dist/lib/grouped-entry-normalization.js.map +1 -1
- package/dist/lib/http.d.ts +12 -7
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +28 -15
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/init-installer.d.ts +2 -1
- package/dist/lib/init-installer.d.ts.map +1 -1
- package/dist/lib/init-installer.js +29 -2
- package/dist/lib/init-installer.js.map +1 -1
- package/dist/lib/kimi-auth.d.ts +3 -26
- package/dist/lib/kimi-auth.d.ts.map +1 -1
- package/dist/lib/kimi-auth.js +24 -91
- package/dist/lib/kimi-auth.js.map +1 -1
- package/dist/lib/kimi.d.ts.map +1 -1
- package/dist/lib/kimi.js +20 -15
- package/dist/lib/kimi.js.map +1 -1
- package/dist/lib/maintainer-announcements.d.ts.map +1 -1
- package/dist/lib/maintainer-announcements.js +5 -0
- package/dist/lib/maintainer-announcements.js.map +1 -1
- package/dist/lib/map-with-concurrency.d.ts +2 -0
- package/dist/lib/map-with-concurrency.d.ts.map +1 -0
- package/dist/lib/map-with-concurrency.js +17 -0
- package/dist/lib/map-with-concurrency.js.map +1 -0
- package/dist/lib/mimo-config.d.ts +29 -0
- package/dist/lib/mimo-config.d.ts.map +1 -0
- package/dist/lib/mimo-config.js +147 -0
- package/dist/lib/mimo-config.js.map +1 -0
- package/dist/lib/mimo.d.ts +35 -0
- package/dist/lib/mimo.d.ts.map +1 -0
- package/dist/lib/mimo.js +236 -0
- package/dist/lib/mimo.js.map +1 -0
- package/dist/lib/modelsdev-pricing.d.ts.map +1 -1
- package/dist/lib/modelsdev-pricing.js +39 -27
- package/dist/lib/modelsdev-pricing.js.map +1 -1
- package/dist/lib/nanogpt-config.d.ts.map +1 -1
- package/dist/lib/nanogpt-config.js +2 -4
- package/dist/lib/nanogpt-config.js.map +1 -1
- package/dist/lib/nanogpt.d.ts.map +1 -1
- package/dist/lib/nanogpt.js +40 -30
- package/dist/lib/nanogpt.js.map +1 -1
- package/dist/lib/ollama-cloud.d.ts +1 -1
- package/dist/lib/ollama-cloud.d.ts.map +1 -1
- package/dist/lib/ollama-cloud.js +73 -68
- package/dist/lib/ollama-cloud.js.map +1 -1
- package/dist/lib/openai.d.ts.map +1 -1
- package/dist/lib/openai.js +53 -48
- package/dist/lib/openai.js.map +1 -1
- package/dist/lib/opencode-config-providers.d.ts.map +1 -1
- package/dist/lib/opencode-config-providers.js +13 -16
- package/dist/lib/opencode-config-providers.js.map +1 -1
- package/dist/lib/opencode-config-read.d.ts +23 -0
- package/dist/lib/opencode-config-read.d.ts.map +1 -0
- package/dist/lib/opencode-config-read.js +30 -0
- package/dist/lib/opencode-config-read.js.map +1 -0
- package/dist/lib/opencode-go.d.ts.map +1 -1
- package/dist/lib/opencode-go.js +44 -39
- package/dist/lib/opencode-go.js.map +1 -1
- package/dist/lib/opencode-zen-config.d.ts +34 -0
- package/dist/lib/opencode-zen-config.d.ts.map +1 -0
- package/dist/lib/opencode-zen-config.js +103 -0
- package/dist/lib/opencode-zen-config.js.map +1 -0
- package/dist/lib/opencode-zen.d.ts +27 -0
- package/dist/lib/opencode-zen.d.ts.map +1 -0
- package/dist/lib/opencode-zen.js +143 -0
- package/dist/lib/opencode-zen.js.map +1 -0
- package/dist/lib/openrouter.d.ts +13 -0
- package/dist/lib/openrouter.d.ts.map +1 -0
- package/dist/lib/openrouter.js +41 -0
- package/dist/lib/openrouter.js.map +1 -0
- package/dist/lib/provider-add-command.d.ts.map +1 -1
- package/dist/lib/provider-add-command.js +4 -12
- package/dist/lib/provider-add-command.js.map +1 -1
- package/dist/lib/provider-add-json-v1-questionnaire.d.ts +32 -0
- package/dist/lib/provider-add-json-v1-questionnaire.d.ts.map +1 -0
- package/dist/lib/provider-add-json-v1-questionnaire.js +336 -0
- package/dist/lib/provider-add-json-v1-questionnaire.js.map +1 -0
- package/dist/lib/provider-availability.d.ts +2 -2
- package/dist/lib/provider-availability.d.ts.map +1 -1
- package/dist/lib/provider-availability.js +2 -3
- package/dist/lib/provider-availability.js.map +1 -1
- package/dist/lib/provider-metadata.d.ts +300 -1
- package/dist/lib/provider-metadata.d.ts.map +1 -1
- package/dist/lib/provider-metadata.js +332 -227
- package/dist/lib/provider-metadata.js.map +1 -1
- package/dist/lib/quota-command-format.d.ts.map +1 -1
- package/dist/lib/quota-command-format.js +12 -16
- package/dist/lib/quota-command-format.js.map +1 -1
- package/dist/lib/quota-dialog-commands.d.ts +59 -2
- package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
- package/dist/lib/quota-dialog-commands.js +73 -39
- package/dist/lib/quota-dialog-commands.js.map +1 -1
- package/dist/lib/quota-entry-display.d.ts +2 -0
- package/dist/lib/quota-entry-display.d.ts.map +1 -1
- package/dist/lib/quota-entry-display.js +27 -13
- package/dist/lib/quota-entry-display.js.map +1 -1
- package/dist/lib/quota-providers-remote.d.ts +0 -1
- package/dist/lib/quota-providers-remote.d.ts.map +1 -1
- package/dist/lib/quota-providers-remote.js +3 -16
- package/dist/lib/quota-providers-remote.js.map +1 -1
- package/dist/lib/quota-render-data.d.ts +4 -0
- package/dist/lib/quota-render-data.d.ts.map +1 -1
- package/dist/lib/quota-render-data.js +118 -127
- package/dist/lib/quota-render-data.js.map +1 -1
- package/dist/lib/quota-runtime-context.d.ts +9 -1
- package/dist/lib/quota-runtime-context.d.ts.map +1 -1
- package/dist/lib/quota-runtime-context.js +5 -0
- package/dist/lib/quota-runtime-context.js.map +1 -1
- package/dist/lib/quota-state.d.ts.map +1 -1
- package/dist/lib/quota-state.js +25 -1
- package/dist/lib/quota-state.js.map +1 -1
- package/dist/lib/quota-stats.d.ts +1 -0
- package/dist/lib/quota-stats.d.ts.map +1 -1
- package/dist/lib/quota-stats.js +14 -4
- package/dist/lib/quota-stats.js.map +1 -1
- package/dist/lib/quota-status.d.ts +7 -17
- package/dist/lib/quota-status.d.ts.map +1 -1
- package/dist/lib/quota-status.js +123 -948
- package/dist/lib/quota-status.js.map +1 -1
- package/dist/lib/runtime-provider-ids.d.ts +4 -0
- package/dist/lib/runtime-provider-ids.d.ts.map +1 -0
- package/dist/lib/runtime-provider-ids.js +10 -0
- package/dist/lib/runtime-provider-ids.js.map +1 -0
- package/dist/lib/session-tokens.d.ts +2 -0
- package/dist/lib/session-tokens.d.ts.map +1 -1
- package/dist/lib/session-tokens.js +4 -2
- package/dist/lib/session-tokens.js.map +1 -1
- package/dist/lib/synthetic-config.d.ts.map +1 -1
- package/dist/lib/synthetic-config.js +2 -4
- package/dist/lib/synthetic-config.js.map +1 -1
- package/dist/lib/synthetic.d.ts.map +1 -1
- package/dist/lib/synthetic.js +37 -32
- package/dist/lib/synthetic.js.map +1 -1
- package/dist/lib/toast-format-grouped.d.ts +1 -0
- package/dist/lib/toast-format-grouped.d.ts.map +1 -1
- package/dist/lib/toast-format-grouped.js +33 -29
- package/dist/lib/toast-format-grouped.js.map +1 -1
- package/dist/lib/tui-refresh-lifecycle.d.ts +17 -0
- package/dist/lib/tui-refresh-lifecycle.d.ts.map +1 -0
- package/dist/lib/tui-refresh-lifecycle.js +83 -0
- package/dist/lib/tui-refresh-lifecycle.js.map +1 -0
- package/dist/lib/tui-runtime.d.ts +0 -5
- package/dist/lib/tui-runtime.d.ts.map +1 -1
- package/dist/lib/tui-runtime.js +1 -6
- package/dist/lib/tui-runtime.js.map +1 -1
- package/dist/lib/tui-sidebar-format.d.ts +1 -1
- package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
- package/dist/lib/tui-sidebar-format.js +1 -0
- package/dist/lib/tui-sidebar-format.js.map +1 -1
- package/dist/lib/types.d.ts +72 -8
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/xai.d.ts +39 -0
- package/dist/lib/xai.d.ts.map +1 -0
- package/dist/lib/xai.js +153 -0
- package/dist/lib/xai.js.map +1 -0
- package/dist/lib/zai-auth.d.ts +3 -26
- package/dist/lib/zai-auth.d.ts.map +1 -1
- package/dist/lib/zai-auth.js +24 -94
- package/dist/lib/zai-auth.js.map +1 -1
- package/dist/lib/zai.d.ts +1 -8
- package/dist/lib/zai.d.ts.map +1 -1
- package/dist/lib/zai.js +11 -91
- package/dist/lib/zai.js.map +1 -1
- package/dist/lib/zhipu-auth.d.ts +3 -26
- package/dist/lib/zhipu-auth.d.ts.map +1 -1
- package/dist/lib/zhipu-auth.js +24 -94
- package/dist/lib/zhipu-auth.js.map +1 -1
- package/dist/lib/zhipu.d.ts +1 -8
- package/dist/lib/zhipu.d.ts.map +1 -1
- package/dist/lib/zhipu.js +10 -84
- package/dist/lib/zhipu.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +20 -145
- package/dist/plugin.js.map +1 -1
- package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
- package/dist/providers/alibaba-coding-plan.js +33 -6
- package/dist/providers/alibaba-coding-plan.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +35 -7
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/chutes.d.ts.map +1 -1
- package/dist/providers/chutes.js +10 -3
- package/dist/providers/chutes.js.map +1 -1
- package/dist/providers/copilot.d.ts.map +1 -1
- package/dist/providers/copilot.js +102 -31
- package/dist/providers/copilot.js.map +1 -1
- package/dist/providers/cursor.d.ts.map +1 -1
- package/dist/providers/cursor.js +34 -6
- package/dist/providers/cursor.js.map +1 -1
- package/dist/providers/deepseek.d.ts.map +1 -1
- package/dist/providers/deepseek.js +10 -3
- package/dist/providers/deepseek.js.map +1 -1
- package/dist/providers/glm-coding-plan-provider.d.ts +44 -0
- package/dist/providers/glm-coding-plan-provider.d.ts.map +1 -0
- package/dist/providers/glm-coding-plan-provider.js +62 -0
- package/dist/providers/glm-coding-plan-provider.js.map +1 -0
- package/dist/providers/google-agy.d.ts.map +1 -1
- package/dist/providers/google-agy.js +83 -42
- package/dist/providers/google-agy.js.map +1 -1
- package/dist/providers/google-antigravity.d.ts.map +1 -1
- package/dist/providers/google-antigravity.js +31 -6
- package/dist/providers/google-antigravity.js.map +1 -1
- package/dist/providers/google-gemini-cli.d.ts.map +1 -1
- package/dist/providers/google-gemini-cli.js +24 -6
- package/dist/providers/google-gemini-cli.js.map +1 -1
- package/dist/providers/kimi-code.d.ts.map +1 -1
- package/dist/providers/kimi-code.js +27 -8
- package/dist/providers/kimi-code.js.map +1 -1
- package/dist/providers/mimo.d.ts +3 -0
- package/dist/providers/mimo.d.ts.map +1 -0
- package/dist/providers/mimo.js +127 -0
- package/dist/providers/mimo.js.map +1 -0
- package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
- package/dist/providers/minimax-coding-plan.js +68 -32
- package/dist/providers/minimax-coding-plan.js.map +1 -1
- package/dist/providers/nanogpt.d.ts.map +1 -1
- package/dist/providers/nanogpt.js +41 -4
- package/dist/providers/nanogpt.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +20 -3
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/opencode-go.d.ts.map +1 -1
- package/dist/providers/opencode-go.js +33 -15
- package/dist/providers/opencode-go.js.map +1 -1
- package/dist/providers/opencode-zen.d.ts +3 -0
- package/dist/providers/opencode-zen.d.ts.map +1 -0
- package/dist/providers/opencode-zen.js +99 -0
- package/dist/providers/opencode-zen.js.map +1 -0
- package/dist/providers/openrouter.d.ts +6 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +25 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/quota-providers.d.ts.map +1 -1
- package/dist/providers/quota-providers.js +3 -3
- package/dist/providers/quota-providers.js.map +1 -1
- package/dist/providers/qwen-code.d.ts.map +1 -1
- package/dist/providers/qwen-code.js +19 -5
- package/dist/providers/qwen-code.js.map +1 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +8 -0
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/result-helpers.d.ts +29 -1
- package/dist/providers/result-helpers.d.ts.map +1 -1
- package/dist/providers/result-helpers.js +69 -0
- package/dist/providers/result-helpers.js.map +1 -1
- package/dist/providers/synthetic.d.ts.map +1 -1
- package/dist/providers/synthetic.js +10 -3
- package/dist/providers/synthetic.js.map +1 -1
- package/dist/providers/xai.d.ts +6 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +51 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/providers/zai.d.ts +1 -7
- package/dist/providers/zai.d.ts.map +1 -1
- package/dist/providers/zai.js +11 -46
- package/dist/providers/zai.js.map +1 -1
- package/dist/providers/zhipu.d.ts +1 -7
- package/dist/providers/zhipu.d.ts.map +1 -1
- package/dist/providers/zhipu.js +11 -46
- package/dist/providers/zhipu.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +47 -136
- package/dist/tui.tsx +62 -179
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,mBAAmB,CAAC;AAmBlG,eAAO,MAAM,cAAc,EAAE,aAoE5B,CAAC"}
|
package/dist/providers/openai.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenAI (Plus/Pro) provider wrapper.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { sanitizeDisplayText } from "../lib/display-sanitize.js";
|
|
5
|
+
import { readAuthFileCached } from "../lib/opencode-auth.js";
|
|
6
|
+
import { DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS, hasOpenAIOAuthCached, queryOpenAIQuota, resolveOpenAIOAuth, } from "../lib/openai.js";
|
|
5
7
|
import { isCanonicalProviderAvailable } from "../lib/provider-availability.js";
|
|
6
8
|
import { modelProviderIncludesAny } from "../lib/provider-model-matching.js";
|
|
7
|
-
import { attemptedResult, groupedPercentWindowEntries, mapNullableProviderResult, } from "./result-helpers.js";
|
|
9
|
+
import { attemptedResult, groupedPercentWindowEntries, mapNullableProviderResult, statusDetailsFromRecord, withStatusDetails, } from "./result-helpers.js";
|
|
8
10
|
export const openaiProvider = {
|
|
9
11
|
id: "openai",
|
|
10
12
|
async isAvailable(ctx) {
|
|
@@ -23,8 +25,9 @@ export const openaiProvider = {
|
|
|
23
25
|
return modelProviderIncludesAny(model, ["openai", "chatgpt", "codex"]);
|
|
24
26
|
},
|
|
25
27
|
async fetch(ctx) {
|
|
28
|
+
const auth = resolveOpenAIOAuth(await readAuthFileCached({ maxAgeMs: 5_000 }));
|
|
26
29
|
const result = await queryOpenAIQuota({ requestTimeoutMs: ctx.config?.requestTimeoutMs });
|
|
27
|
-
|
|
30
|
+
const providerResult = mapNullableProviderResult(result, {
|
|
28
31
|
errorLabel: "OpenAI",
|
|
29
32
|
onSuccess: (result) => attemptedResult(groupedPercentWindowEntries({
|
|
30
33
|
group: result.label,
|
|
@@ -44,6 +47,20 @@ export const openaiProvider = {
|
|
|
44
47
|
singleWindowDisplayName: result.label,
|
|
45
48
|
}),
|
|
46
49
|
});
|
|
50
|
+
const configured = auth.state === "configured";
|
|
51
|
+
const expiresAt = configured ? auth.expiresAt : undefined;
|
|
52
|
+
return withStatusDetails(providerResult, statusDetailsFromRecord({
|
|
53
|
+
auth_configured: configured ? "true" : "false",
|
|
54
|
+
auth_source: configured ? auth.sourceKey : "(none)",
|
|
55
|
+
token_status: !configured
|
|
56
|
+
? "(none)"
|
|
57
|
+
: expiresAt && expiresAt < Date.now()
|
|
58
|
+
? "expired"
|
|
59
|
+
: "valid",
|
|
60
|
+
token_expires_at: expiresAt ? new Date(expiresAt).toISOString() : "(none)",
|
|
61
|
+
account_email: configured && auth.email ? sanitizeDisplayText(auth.email) : "(none)",
|
|
62
|
+
account_id: configured && auth.accountId ? sanitizeDisplayText(auth.accountId) : "(none)",
|
|
63
|
+
}));
|
|
47
64
|
},
|
|
48
65
|
};
|
|
49
66
|
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,oCAAoC,EACpC,oBAAoB,EACpB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-go.d.ts","sourceRoot":"","sources":["../../src/providers/opencode-go.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EAId,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode-go.d.ts","sourceRoot":"","sources":["../../src/providers/opencode-go.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EAId,MAAM,mBAAmB,CAAC;AAsF3B,eAAO,MAAM,kBAAkB,EAAE,aA8FhC,CAAC"}
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* Scrapes the OpenCode Go workspace dashboard and reports rolling (~5h),
|
|
5
5
|
* weekly, and monthly usage as percentage-based quota entries.
|
|
6
6
|
*/
|
|
7
|
-
import { DEFAULT_OPENCODE_GO_CONFIG_CACHE_MAX_AGE_MS, resolveOpenCodeGoConfigCached, } from "../lib/opencode-go-config.js";
|
|
7
|
+
import { DEFAULT_OPENCODE_GO_CONFIG_CACHE_MAX_AGE_MS, getOpenCodeGoConfigDiagnostics, resolveOpenCodeGoConfigCached, } from "../lib/opencode-go-config.js";
|
|
8
8
|
import { queryOpenCodeGoQuota } from "../lib/opencode-go.js";
|
|
9
9
|
import { normalizeQuotaProviderId } from "../lib/provider-metadata.js";
|
|
10
|
-
import { attemptedErrorResult, attemptedResult, notAttemptedResult } from "./result-helpers.js";
|
|
10
|
+
import { attemptedErrorResult, configStatusDetails, attemptedResult, notAttemptedResult, withStatusDetails, } from "./result-helpers.js";
|
|
11
11
|
const OPENCODE_GO_PROVIDER_LABEL = "OpenCode Go";
|
|
12
12
|
const OPENCODE_GO_WINDOW_ORDER = ["rolling", "weekly", "monthly"];
|
|
13
13
|
const OPENCODE_GO_WINDOW_LABELS = {
|
|
@@ -76,17 +76,23 @@ export const opencodeGoProvider = {
|
|
|
76
76
|
return normalizeQuotaProviderId(provider) === "opencode-go";
|
|
77
77
|
},
|
|
78
78
|
async fetch(ctx) {
|
|
79
|
+
const diagnostics = await getOpenCodeGoConfigDiagnostics();
|
|
80
|
+
const windows = ctx.config.opencodeGoWindows ?? OPENCODE_GO_WINDOW_ORDER;
|
|
81
|
+
const statusDetails = [
|
|
82
|
+
...configStatusDetails(diagnostics),
|
|
83
|
+
{ key: "selected_windows", value: windows.join(",") },
|
|
84
|
+
];
|
|
79
85
|
const config = await resolveOpenCodeGoConfigCached({
|
|
80
86
|
maxAgeMs: DEFAULT_OPENCODE_GO_CONFIG_CACHE_MAX_AGE_MS,
|
|
81
87
|
});
|
|
82
88
|
if (config.state === "none") {
|
|
83
|
-
return notAttemptedResult();
|
|
89
|
+
return withStatusDetails(notAttemptedResult(), statusDetails);
|
|
84
90
|
}
|
|
85
91
|
if (config.state === "incomplete") {
|
|
86
|
-
return attemptedErrorResult(OPENCODE_GO_PROVIDER_LABEL, `Missing ${config.missing} (source: ${config.source})`);
|
|
92
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_GO_PROVIDER_LABEL, `Missing ${config.missing} (source: ${config.source})`), statusDetails);
|
|
87
93
|
}
|
|
88
94
|
if (config.state === "invalid") {
|
|
89
|
-
return attemptedErrorResult(OPENCODE_GO_PROVIDER_LABEL, `Invalid config (${config.source}): ${config.error}`);
|
|
95
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_GO_PROVIDER_LABEL, `Invalid config (${config.source}): ${config.error}`), statusDetails);
|
|
90
96
|
}
|
|
91
97
|
const result = await queryOpenCodeGoQuota(config.config.workspaceId, config.config.authCookie, {
|
|
92
98
|
requestTimeoutMs: ctx.config?.requestTimeoutMsConfigured
|
|
@@ -94,23 +100,35 @@ export const opencodeGoProvider = {
|
|
|
94
100
|
: undefined,
|
|
95
101
|
});
|
|
96
102
|
if (!result) {
|
|
97
|
-
return notAttemptedResult()
|
|
103
|
+
return withStatusDetails(notAttemptedResult(), [
|
|
104
|
+
...statusDetails,
|
|
105
|
+
{ key: "live_fetch_error", value: "OpenCode Go returned null" },
|
|
106
|
+
]);
|
|
98
107
|
}
|
|
99
108
|
if (!result.success) {
|
|
100
|
-
return attemptedErrorResult(OPENCODE_GO_PROVIDER_LABEL, result.error)
|
|
109
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_GO_PROVIDER_LABEL, result.error), [
|
|
110
|
+
...statusDetails,
|
|
111
|
+
{ key: "live_fetch_error", value: result.error },
|
|
112
|
+
]);
|
|
101
113
|
}
|
|
102
|
-
const windows = ctx.config.opencodeGoWindows ?? OPENCODE_GO_WINDOW_ORDER;
|
|
103
114
|
const entries = buildOpenCodeGoEntries(result, windows);
|
|
104
115
|
const missingSelectedWindows = windows.filter((window) => !result[window]);
|
|
116
|
+
const liveDetails = OPENCODE_GO_WINDOW_ORDER.flatMap((window) => {
|
|
117
|
+
const usage = result[window];
|
|
118
|
+
return usage
|
|
119
|
+
? [
|
|
120
|
+
{
|
|
121
|
+
key: `${window}_usage`,
|
|
122
|
+
value: `percent_used=${usage.usagePercent} percent_remaining=${usage.percentRemaining} reset_in_sec=${usage.resetInSec} reset_at=${usage.resetTimeIso}`,
|
|
123
|
+
},
|
|
124
|
+
]
|
|
125
|
+
: [];
|
|
126
|
+
});
|
|
105
127
|
if (missingSelectedWindows.length > 0 && !isDefaultOpenCodeGoWindowSelection(windows)) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
label: OPENCODE_GO_PROVIDER_LABEL,
|
|
109
|
-
message: `Selected OpenCode Go dashboard window(s) missing: ${formatMissingWindowList(missingSelectedWindows)}`,
|
|
110
|
-
},
|
|
111
|
-
]);
|
|
128
|
+
const message = `Selected OpenCode Go dashboard window(s) missing: ${formatMissingWindowList(missingSelectedWindows)}`;
|
|
129
|
+
return withStatusDetails(attemptedResult(entries, [{ label: OPENCODE_GO_PROVIDER_LABEL, message }]), [...statusDetails, ...liveDetails, { key: "live_fetch_error", value: message }]);
|
|
112
130
|
}
|
|
113
|
-
return attemptedResult(entries);
|
|
131
|
+
return withStatusDetails(attemptedResult(entries), [...statusDetails, ...liveDetails]);
|
|
114
132
|
},
|
|
115
133
|
};
|
|
116
134
|
//# sourceMappingURL=opencode-go.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-go.js","sourceRoot":"","sources":["../../src/providers/opencode-go.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EACL,2CAA2C,EAC3C,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,
|
|
1
|
+
{"version":3,"file":"opencode-go.js","sourceRoot":"","sources":["../../src/providers/opencode-go.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-zen.d.ts","sourceRoot":"","sources":["../../src/providers/opencode-zen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAId,MAAM,mBAAmB,CAAC;AAmC3B,eAAO,MAAM,mBAAmB,EAAE,aAkHjC,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { DEFAULT_OPENCODE_ZEN_CONFIG_CACHE_MAX_AGE_MS, getOpenCodeZenConfigDiagnostics, resolveOpenCodeZenConfigCached, } from "../lib/opencode-zen-config.js";
|
|
2
|
+
import { OPENCODE_ZEN_BILLING_UNITS_PER_DOLLAR, queryOpenCodeZenQuota, } from "../lib/opencode-zen.js";
|
|
3
|
+
import { sanitizeDisplayText } from "../lib/display-sanitize.js";
|
|
4
|
+
import { normalizeQuotaProviderId } from "../lib/provider-metadata.js";
|
|
5
|
+
import { attemptedErrorResult, configStatusDetails, attemptedResult, notAttemptedResult, withStatusDetails, } from "./result-helpers.js";
|
|
6
|
+
const OPENCODE_PROVIDER_LABEL = "OpenCode";
|
|
7
|
+
const OPENCODE_ZEN_GROUP = "OpenCode Zen";
|
|
8
|
+
const OPENCODE_ZEN_BALANCE_ACCOUNTING = {
|
|
9
|
+
resultType: "balance",
|
|
10
|
+
acquisitionMethod: "dashboard_scrape",
|
|
11
|
+
ownership: "maintained",
|
|
12
|
+
authority: "provider_reported",
|
|
13
|
+
};
|
|
14
|
+
const OPENCODE_ZEN_BUDGET_ACCOUNTING = {
|
|
15
|
+
resultType: "budget",
|
|
16
|
+
acquisitionMethod: "dashboard_scrape",
|
|
17
|
+
ownership: "maintained",
|
|
18
|
+
authority: "locally_derived",
|
|
19
|
+
};
|
|
20
|
+
export const opencodeZenProvider = {
|
|
21
|
+
id: "opencode",
|
|
22
|
+
async isAvailable(_ctx) {
|
|
23
|
+
const config = await resolveOpenCodeZenConfigCached({
|
|
24
|
+
maxAgeMs: DEFAULT_OPENCODE_ZEN_CONFIG_CACHE_MAX_AGE_MS,
|
|
25
|
+
});
|
|
26
|
+
return config.state === "configured";
|
|
27
|
+
},
|
|
28
|
+
matchesCurrentModel(model) {
|
|
29
|
+
const [provider] = model.toLowerCase().split("/", 2);
|
|
30
|
+
return normalizeQuotaProviderId(provider) === "opencode";
|
|
31
|
+
},
|
|
32
|
+
async fetch(ctx) {
|
|
33
|
+
const diagnostics = await getOpenCodeZenConfigDiagnostics();
|
|
34
|
+
const statusDetails = configStatusDetails({
|
|
35
|
+
...diagnostics,
|
|
36
|
+
error: diagnostics.error ? sanitizeDisplayText(diagnostics.error) : undefined,
|
|
37
|
+
});
|
|
38
|
+
const config = await resolveOpenCodeZenConfigCached({
|
|
39
|
+
maxAgeMs: DEFAULT_OPENCODE_ZEN_CONFIG_CACHE_MAX_AGE_MS,
|
|
40
|
+
});
|
|
41
|
+
if (config.state === "none")
|
|
42
|
+
return withStatusDetails(notAttemptedResult(), statusDetails);
|
|
43
|
+
if (config.state === "incomplete") {
|
|
44
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_PROVIDER_LABEL, `Missing ${config.missing} (source: ${config.source})`), statusDetails);
|
|
45
|
+
}
|
|
46
|
+
if (config.state === "invalid") {
|
|
47
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_PROVIDER_LABEL, `Invalid config (${config.source}): ${config.error}`), statusDetails);
|
|
48
|
+
}
|
|
49
|
+
const result = await queryOpenCodeZenQuota(config.config.workspaceId, config.config.authCookie, {
|
|
50
|
+
requestTimeoutMs: ctx.config?.requestTimeoutMsConfigured
|
|
51
|
+
? ctx.config.requestTimeoutMs
|
|
52
|
+
: undefined,
|
|
53
|
+
});
|
|
54
|
+
if (!result.success) {
|
|
55
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_PROVIDER_LABEL, result.error), [
|
|
56
|
+
...statusDetails,
|
|
57
|
+
{ key: "live_fetch_error", value: result.error },
|
|
58
|
+
]);
|
|
59
|
+
}
|
|
60
|
+
const balanceUsd = result.data.balance / OPENCODE_ZEN_BILLING_UNITS_PER_DOLLAR;
|
|
61
|
+
const configuredMonthlyLimit = ctx.config?.opencodeMonthlyLimit;
|
|
62
|
+
const effectiveMonthlyLimit = configuredMonthlyLimit ?? result.data.monthlyLimit;
|
|
63
|
+
const monthlyUsageUsd = result.data.monthlyUsage === null
|
|
64
|
+
? null
|
|
65
|
+
: result.data.monthlyUsage / OPENCODE_ZEN_BILLING_UNITS_PER_DOLLAR;
|
|
66
|
+
const entry = effectiveMonthlyLimit !== null &&
|
|
67
|
+
Number.isFinite(effectiveMonthlyLimit) &&
|
|
68
|
+
effectiveMonthlyLimit > 0 &&
|
|
69
|
+
monthlyUsageUsd !== null &&
|
|
70
|
+
Number.isFinite(monthlyUsageUsd) &&
|
|
71
|
+
monthlyUsageUsd >= 0
|
|
72
|
+
? {
|
|
73
|
+
accounting: OPENCODE_ZEN_BUDGET_ACCOUNTING,
|
|
74
|
+
name: "",
|
|
75
|
+
group: OPENCODE_ZEN_GROUP,
|
|
76
|
+
percentRemaining: Math.min(100, Math.max(0, ((effectiveMonthlyLimit - monthlyUsageUsd) / effectiveMonthlyLimit) * 100)),
|
|
77
|
+
}
|
|
78
|
+
: {
|
|
79
|
+
accounting: OPENCODE_ZEN_BALANCE_ACCOUNTING,
|
|
80
|
+
kind: "value",
|
|
81
|
+
name: "",
|
|
82
|
+
group: OPENCODE_ZEN_GROUP,
|
|
83
|
+
value: `$${balanceUsd.toFixed(2)}`,
|
|
84
|
+
};
|
|
85
|
+
return withStatusDetails(attemptedResult([entry]), [
|
|
86
|
+
...statusDetails,
|
|
87
|
+
{ key: "balance_usd", value: `$${balanceUsd.toFixed(2)}` },
|
|
88
|
+
{
|
|
89
|
+
key: "monthly_limit_usd",
|
|
90
|
+
value: result.data.monthlyLimit === null ? "(none)" : `$${result.data.monthlyLimit.toFixed(2)}`,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
key: "last_payment_usd",
|
|
94
|
+
value: result.data.lastPayment === null ? "(none)" : `$${result.data.lastPayment.toFixed(2)}`,
|
|
95
|
+
},
|
|
96
|
+
]);
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=opencode-zen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-zen.js","sourceRoot":"","sources":["../../src/providers/opencode-zen.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,4CAA4C,EAC5C,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,qCAAqC,EACrC,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAC3C,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAC1C,MAAM,+BAA+B,GAAuB;IAC1D,UAAU,EAAE,SAAS;IACrB,iBAAiB,EAAE,kBAAkB;IACrC,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,mBAAmB;CAC/B,CAAC;AACF,MAAM,8BAA8B,GAAuB;IACzD,UAAU,EAAE,QAAQ;IACpB,iBAAiB,EAAE,kBAAkB;IACrC,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,EAAE,EAAE,UAAU;IAEd,KAAK,CAAC,WAAW,CAAC,IAA0B;QAC1C,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,QAAQ,EAAE,4CAA4C;SACvD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC;IACvC,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC/B,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,wBAAwB,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAyB;QACnC,MAAM,WAAW,GAAG,MAAM,+BAA+B,EAAE,CAAC;QAC5D,MAAM,aAAa,GAAG,mBAAmB,CAAC;YACxC,GAAG,WAAW;YACd,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9E,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC;YAClD,QAAQ,EAAE,4CAA4C;SACvD,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,aAAa,CAAC,CAAC;QAE3F,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YAClC,OAAO,iBAAiB,CACtB,oBAAoB,CAClB,uBAAuB,EACvB,WAAW,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,MAAM,GAAG,CACvD,EACD,aAAa,CACd,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,iBAAiB,CACtB,oBAAoB,CAClB,uBAAuB,EACvB,mBAAmB,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,EAAE,CACrD,EACD,aAAa,CACd,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CACxC,MAAM,CAAC,MAAM,CAAC,WAAW,EACzB,MAAM,CAAC,MAAM,CAAC,UAAU,EACxB;YACE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B;gBACtD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB;gBAC7B,CAAC,CAAC,SAAS;SACd,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,iBAAiB,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBACpF,GAAG,aAAa;gBAChB,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,qCAAqC,CAAC;QAC/E,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC;QAChE,MAAM,qBAAqB,GAAG,sBAAsB,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;QACjF,MAAM,eAAe,GACnB,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI;YAC/B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;QAEvE,MAAM,KAAK,GACT,qBAAqB,KAAK,IAAI;YAC9B,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACtC,qBAAqB,GAAG,CAAC;YACzB,eAAe,KAAK,IAAI;YACxB,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;YAChC,eAAe,IAAI,CAAC;YAClB,CAAC,CAAC;gBACE,UAAU,EAAE,8BAA8B;gBAC1C,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,kBAAkB;gBACzB,gBAAgB,EAAE,IAAI,CAAC,GAAG,CACxB,GAAG,EACH,IAAI,CAAC,GAAG,CACN,CAAC,EACD,CAAC,CAAC,qBAAqB,GAAG,eAAe,CAAC,GAAG,qBAAqB,CAAC,GAAG,GAAG,CAC1E,CACF;aACF;YACH,CAAC,CAAC;gBACE,UAAU,EAAE,+BAA+B;gBAC3C,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,kBAAkB;gBACzB,KAAK,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;aACnC,CAAC;QAER,OAAO,iBAAiB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YACjD,GAAG,aAAa;YAChB,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1D;gBACE,GAAG,EAAE,mBAAmB;gBACxB,KAAK,EACH,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;aAC3F;YACD;gBACE,GAAG,EAAE,kBAAkB;gBACvB,KAAK,EACH,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;aACzF;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,mBAAmB,CAAC;AAKlG,eAAO,MAAM,kBAAkB,EAAE,aA0BhC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenRouter provider wrapper.
|
|
3
|
+
*/
|
|
4
|
+
import { hasOpenRouterApiKeyConfigured, queryOpenRouterQuota } from "../lib/openrouter.js";
|
|
5
|
+
import { modelProviderMatchesRuntimeId } from "../lib/provider-model-matching.js";
|
|
6
|
+
import { attemptedResult, mapNullableProviderResult } from "./result-helpers.js";
|
|
7
|
+
export const openRouterProvider = {
|
|
8
|
+
id: "openrouter",
|
|
9
|
+
async isAvailable(_ctx) {
|
|
10
|
+
return await hasOpenRouterApiKeyConfigured();
|
|
11
|
+
},
|
|
12
|
+
matchesCurrentModel(model) {
|
|
13
|
+
return modelProviderMatchesRuntimeId(model, "openrouter");
|
|
14
|
+
},
|
|
15
|
+
async fetch(ctx) {
|
|
16
|
+
const result = await queryOpenRouterQuota({
|
|
17
|
+
requestTimeoutMs: ctx.config?.requestTimeoutMs,
|
|
18
|
+
});
|
|
19
|
+
return mapNullableProviderResult(result, {
|
|
20
|
+
errorLabel: "OpenRouter",
|
|
21
|
+
onSuccess: (success) => attemptedResult(success.entries, success.rowErrors?.map((message) => ({ label: "OpenRouter", message })) ?? [], { singleWindowShowRight: true }),
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=openrouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,EAAE,EAAE,YAAY;IAEhB,KAAK,CAAC,WAAW,CAAC,IAA0B;QAC1C,OAAO,MAAM,6BAA6B,EAAE,CAAC;IAC/C,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC/B,OAAO,6BAA6B,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAyB;QACnC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;YACxC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB;SAC/C,CAAC,CAAC;QAEH,OAAO,yBAAyB,CAAC,MAAM,EAAE;YACvC,UAAU,EAAE,YAAY;YACxB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CACrB,eAAe,CACb,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAC7E,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAChC;SACJ,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-providers.d.ts","sourceRoot":"","sources":["../../src/providers/quota-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAIL,sCAAsC,EACvC,MAAM,2BAA2B,CAAC;AAanC,eAAO,MAAM,2BAA2B,oBAA+B,CAAC;AACxE,eAAO,MAAM,4BAA4B,+CAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"quota-providers.d.ts","sourceRoot":"","sources":["../../src/providers/quota-providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAIL,sCAAsC,EACvC,MAAM,2BAA2B,CAAC;AAanC,eAAO,MAAM,2BAA2B,oBAA+B,CAAC;AACxE,eAAO,MAAM,4BAA4B,+CAAyC,CAAC;AAsOnF,eAAO,MAAM,sBAAsB,EAAE,aAsFpC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { QUOTA_PROVIDERS_AGGREGATE_ID, customQuotaProviderDefinitions, resolveQuotaProviderSessionModelIdentity, selectEligibleQuotaProviderDefinitions, } from "../lib/quota-providers.js";
|
|
2
2
|
import { fetchQuotaProviderResult } from "../lib/quota-state.js";
|
|
3
|
-
import {
|
|
3
|
+
import { mapWithConcurrency } from "../lib/map-with-concurrency.js";
|
|
4
|
+
import { QUOTA_PROVIDER_CONCURRENCY, fetchRemoteQuotaProvider, resolveQuotaProviderApiKey, } from "../lib/quota-providers-remote.js";
|
|
4
5
|
import { collectLocalQuotaProviderEstimate, inspectLocalQuotaProviderState, } from "../lib/quota-providers-local.js";
|
|
5
6
|
export const QUOTA_PROVIDERS_PROVIDER_ID = QUOTA_PROVIDERS_AGGREGATE_ID;
|
|
6
7
|
export const selectEligibleQuotaProviders = selectEligibleQuotaProviderDefinitions;
|
|
@@ -15,8 +16,7 @@ function matchesConfiguredCurrentSelection(model, context) {
|
|
|
15
16
|
(definition.modelIds === undefined || definition.modelIds.includes(identity.modelId))));
|
|
16
17
|
}
|
|
17
18
|
async function getAvailableProviderIds(ctx) {
|
|
18
|
-
|
|
19
|
-
return new Set((response.data?.providers ?? []).map((provider) => provider.id));
|
|
19
|
+
return ctx.resolveRuntimeProviderIds();
|
|
20
20
|
}
|
|
21
21
|
function buildDiagnosticIdentity(definition) {
|
|
22
22
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-providers.js","sourceRoot":"","sources":["../../src/providers/quota-providers.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,wCAAwC,EACxC,sCAAsC,GACvC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"quota-providers.js","sourceRoot":"","sources":["../../src/providers/quota-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-code.d.ts","sourceRoot":"","sources":["../../src/providers/qwen-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"qwen-code.d.ts","sourceRoot":"","sources":["../../src/providers/qwen-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,mBAAmB,CAAC;AAqB3B,eAAO,MAAM,gBAAgB,EAAE,aAwF9B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { computeQwenQuota, readQwenLocalQuotaState } from "../lib/qwen-local-quota.js";
|
|
1
|
+
import { QWEN_LOCAL_QUOTA_STATE_VERSION, computeQwenQuota, getQwenLocalQuotaPath, readQwenLocalQuotaState, } from "../lib/qwen-local-quota.js";
|
|
2
2
|
import { DEFAULT_QWEN_AUTH_CACHE_MAX_AGE_MS, isQwenCodeModelId, resolveQwenLocalPlanCached, } from "../lib/qwen-auth.js";
|
|
3
|
-
import { attemptedResult, notAttemptedResult } from "./result-helpers.js";
|
|
3
|
+
import { attemptedResult, inspectGeneratedCounterFile, notAttemptedResult, statusDetailsFromRecord, withStatusDetails, } from "./result-helpers.js";
|
|
4
4
|
import { findQuotaProviderDefinition } from "../lib/quota-providers.js";
|
|
5
5
|
export const qwenCodeProvider = {
|
|
6
6
|
id: "qwen-code",
|
|
@@ -19,8 +19,22 @@ export const qwenCodeProvider = {
|
|
|
19
19
|
const plan = await resolveQwenLocalPlanCached({
|
|
20
20
|
maxAgeMs: DEFAULT_QWEN_AUTH_CACHE_MAX_AGE_MS,
|
|
21
21
|
});
|
|
22
|
+
const statePath = getQwenLocalQuotaPath();
|
|
23
|
+
const state = await inspectGeneratedCounterFile(statePath, QWEN_LOCAL_QUOTA_STATE_VERSION);
|
|
24
|
+
const lastUpdate = state.lastUpdatedAt === null ? "(none)" : new Date(state.lastUpdatedAt).toISOString();
|
|
25
|
+
const statusDetails = statusDetailsFromRecord({
|
|
26
|
+
"qwen oauth auth configured": plan.state === "qwen_free" ? "true" : "false",
|
|
27
|
+
qwen_oauth_source: plan.state === "qwen_free" ? plan.sourceKey : "(none)",
|
|
28
|
+
qwen_local_plan: plan.state === "qwen_free" ? "qwen-code/free" : "(none)",
|
|
29
|
+
"qwen free local quota": `path=${statePath} exists=${state.exists ? "true" : "false"} health=${state.health} version=${state.version ?? "(none)"} last_update=${lastUpdate}`,
|
|
30
|
+
local_state_path: statePath,
|
|
31
|
+
local_state_exists: state.exists ? "true" : "false",
|
|
32
|
+
local_state_health: state.health,
|
|
33
|
+
local_state_version: String(state.version ?? "(none)"),
|
|
34
|
+
local_state_last_update: lastUpdate,
|
|
35
|
+
});
|
|
22
36
|
if (plan.state !== "qwen_free") {
|
|
23
|
-
return notAttemptedResult();
|
|
37
|
+
return withStatusDetails(notAttemptedResult(), statusDetails);
|
|
24
38
|
}
|
|
25
39
|
const tuning = findQuotaProviderDefinition(ctx.config.quotaProviders ?? [], "qwen-code");
|
|
26
40
|
const daily = tuning?.mode === "local-estimate"
|
|
@@ -34,7 +48,7 @@ export const qwenCodeProvider = {
|
|
|
34
48
|
...(daily ? { dayLimit: daily.requestLimit } : {}),
|
|
35
49
|
...(rpm ? { rpmLimit: rpm.requestLimit } : {}),
|
|
36
50
|
});
|
|
37
|
-
return attemptedResult([
|
|
51
|
+
return withStatusDetails(attemptedResult([
|
|
38
52
|
{
|
|
39
53
|
accounting: {
|
|
40
54
|
resultType: "quota",
|
|
@@ -63,7 +77,7 @@ export const qwenCodeProvider = {
|
|
|
63
77
|
percentRemaining: quota.rpm.percentRemaining,
|
|
64
78
|
resetTimeIso: quota.rpm.resetTimeIso,
|
|
65
79
|
},
|
|
66
|
-
],
|
|
80
|
+
]), statusDetails);
|
|
67
81
|
},
|
|
68
82
|
};
|
|
69
83
|
//# sourceMappingURL=qwen-code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-code.js","sourceRoot":"","sources":["../../src/providers/qwen-code.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"qwen-code.js","sourceRoot":"","sources":["../../src/providers/qwen-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA6BvD,wBAAgB,YAAY,IAAI,aAAa,EAAE,CA6B9C"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { anthropicProvider } from "./anthropic.js";
|
|
7
7
|
import { copilotProvider } from "./copilot.js";
|
|
8
8
|
import { openaiProvider } from "./openai.js";
|
|
9
|
+
import { openRouterProvider } from "./openrouter.js";
|
|
9
10
|
import { cursorProvider } from "./cursor.js";
|
|
10
11
|
import { googleAntigravityProvider } from "./google-antigravity.js";
|
|
11
12
|
import { googleGeminiCliProvider } from "./google-gemini-cli.js";
|
|
@@ -19,8 +20,11 @@ import { zhipuProvider } from "./zhipu.js";
|
|
|
19
20
|
import { nanoGptProvider } from "./nanogpt.js";
|
|
20
21
|
import { minimaxChinaCodingPlanProvider, minimaxCodingPlanProvider, } from "./minimax-coding-plan.js";
|
|
21
22
|
import { opencodeGoProvider } from "./opencode-go.js";
|
|
23
|
+
import { opencodeZenProvider } from "./opencode-zen.js";
|
|
22
24
|
import { kimiCodeProvider } from "./kimi-code.js";
|
|
23
25
|
import { deepseekProvider } from "./deepseek.js";
|
|
26
|
+
import { xaiProvider } from "./xai.js";
|
|
27
|
+
import { xiaomiProvider } from "./mimo.js";
|
|
24
28
|
import { ollamaCloudProvider } from "./ollama-cloud.js";
|
|
25
29
|
import { quotaProvidersProvider } from "./quota-providers.js";
|
|
26
30
|
export function getProviders() {
|
|
@@ -29,6 +33,7 @@ export function getProviders() {
|
|
|
29
33
|
anthropicProvider,
|
|
30
34
|
copilotProvider,
|
|
31
35
|
openaiProvider,
|
|
36
|
+
openRouterProvider,
|
|
32
37
|
cursorProvider,
|
|
33
38
|
qwenCodeProvider,
|
|
34
39
|
alibabaCodingPlanProvider,
|
|
@@ -44,7 +49,10 @@ export function getProviders() {
|
|
|
44
49
|
minimaxChinaCodingPlanProvider,
|
|
45
50
|
kimiCodeProvider,
|
|
46
51
|
deepseekProvider,
|
|
52
|
+
xaiProvider,
|
|
53
|
+
xiaomiProvider,
|
|
47
54
|
opencodeGoProvider,
|
|
55
|
+
opencodeZenProvider,
|
|
48
56
|
ollamaCloudProvider,
|
|
49
57
|
quotaProvidersProvider,
|
|
50
58
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,UAAU,YAAY;IAC1B,oDAAoD;IACpD,OAAO;QACL,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,yBAAyB;QACzB,iBAAiB;QACjB,cAAc;QACd,yBAAyB;QACzB,uBAAuB;QACvB,iBAAiB;QACjB,WAAW;QACX,aAAa;QACb,eAAe;QACf,yBAAyB;QACzB,8BAA8B;QAC9B,gBAAgB;QAChB,gBAAgB;QAChB,kBAAkB;QAClB,mBAAmB;QACnB,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,UAAU,YAAY;IAC1B,oDAAoD;IACpD,OAAO;QACL,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,cAAc;QACd,gBAAgB;QAChB,yBAAyB;QACzB,iBAAiB;QACjB,cAAc;QACd,yBAAyB;QACzB,uBAAuB;QACvB,iBAAiB;QACjB,WAAW;QACX,aAAa;QACb,eAAe;QACf,yBAAyB;QACzB,8BAA8B;QAC9B,gBAAgB;QAChB,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,kBAAkB;QAClB,mBAAmB;QACnB,mBAAmB;QACnB,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,35 @@
|
|
|
1
|
-
import type { AccountingMetadata, QuotaProviderPresentation, QuotaProviderResult, QuotaToastEntry, QuotaToastError } from "../lib/entries.js";
|
|
1
|
+
import type { AccountingMetadata, QuotaProviderPresentation, QuotaProviderResult, QuotaProviderStatusDetail, QuotaToastEntry, QuotaToastError } from "../lib/entries.js";
|
|
2
2
|
export declare function notAttemptedResult(): QuotaProviderResult;
|
|
3
3
|
export declare function attemptedResult(entries: QuotaToastEntry[], errors?: QuotaToastError[], presentation?: QuotaProviderPresentation): QuotaProviderResult;
|
|
4
4
|
export declare function attemptedErrorResult(label: string, message: string): QuotaProviderResult;
|
|
5
|
+
export declare function statusDetailsFromRecord(values: Readonly<Record<string, string | undefined>>): QuotaProviderStatusDetail[];
|
|
6
|
+
export declare function configStatusDetails(diagnostics: {
|
|
7
|
+
state: string;
|
|
8
|
+
source: string | null;
|
|
9
|
+
checkedPaths: readonly string[];
|
|
10
|
+
missing?: string | null;
|
|
11
|
+
error?: string | null;
|
|
12
|
+
}): QuotaProviderStatusDetail[];
|
|
13
|
+
export declare function simpleApiKeyStatusDetails(diagnostics: {
|
|
14
|
+
configured: boolean;
|
|
15
|
+
source: string | null;
|
|
16
|
+
checkedPaths: readonly string[];
|
|
17
|
+
authPaths: readonly string[];
|
|
18
|
+
}): QuotaProviderStatusDetail[];
|
|
19
|
+
export declare function apiKeyStatusDetails(diagnostics: {
|
|
20
|
+
state: string;
|
|
21
|
+
source: string | null;
|
|
22
|
+
checkedPaths: readonly string[];
|
|
23
|
+
authPaths: readonly string[];
|
|
24
|
+
error?: string;
|
|
25
|
+
}): QuotaProviderStatusDetail[];
|
|
26
|
+
export declare function withStatusDetails(result: QuotaProviderResult, statusDetails: readonly QuotaProviderStatusDetail[]): QuotaProviderResult;
|
|
27
|
+
export declare function inspectGeneratedCounterFile(path: string, expectedVersion: number): Promise<{
|
|
28
|
+
exists: boolean;
|
|
29
|
+
health: "missing" | "healthy" | "malformed" | "version_mismatch";
|
|
30
|
+
version: number | null;
|
|
31
|
+
lastUpdatedAt: number | null;
|
|
32
|
+
}>;
|
|
5
33
|
export declare function mapNullableProviderResult<TSuccess extends {
|
|
6
34
|
success: true;
|
|
7
35
|
}>(result: TSuccess | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-helpers.d.ts","sourceRoot":"","sources":["../../src/providers/result-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"result-helpers.d.ts","sourceRoot":"","sources":["../../src/providers/result-helpers.ts"],"names":[],"mappings":"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"}
|