@slkiser/opencode-quota 5.0.3 → 6.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -44
- package/dist/agent-tools.d.ts +24 -0
- package/dist/agent-tools.d.ts.map +1 -0
- package/dist/agent-tools.js +578 -0
- package/dist/agent-tools.js.map +1 -0
- package/dist/bin/opencode-quota.d.ts.map +1 -1
- package/dist/bin/opencode-quota.js +1 -32
- package/dist/bin/opencode-quota.js.map +1 -1
- package/dist/core/errors.d.ts +12 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +141 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/pace.d.ts +13 -0
- package/dist/core/pace.d.ts.map +1 -0
- package/dist/core/pace.js +52 -0
- package/dist/core/pace.js.map +1 -0
- package/dist/core/persist.d.ts +44 -0
- package/dist/core/persist.d.ts.map +1 -0
- package/dist/core/persist.js +210 -0
- package/dist/core/persist.js.map +1 -0
- package/dist/core/provider-source.d.ts +40 -0
- package/dist/core/provider-source.d.ts.map +1 -0
- package/dist/core/provider-source.js +210 -0
- package/dist/core/provider-source.js.map +1 -0
- package/dist/core/redact.d.ts +17 -0
- package/dist/core/redact.d.ts.map +1 -0
- package/dist/core/redact.js +217 -0
- package/dist/core/redact.js.map +1 -0
- package/dist/core/rows.d.ts +20 -0
- package/dist/core/rows.d.ts.map +1 -0
- package/dist/core/rows.js +142 -0
- package/dist/core/rows.js.map +1 -0
- package/dist/core/selection.d.ts +15 -0
- package/dist/core/selection.d.ts.map +1 -0
- package/dist/core/selection.js +43 -0
- package/dist/core/selection.js.map +1 -0
- package/dist/core/snapshot-publisher.d.ts +15 -0
- package/dist/core/snapshot-publisher.d.ts.map +1 -0
- package/dist/core/snapshot-publisher.js +57 -0
- package/dist/core/snapshot-publisher.js.map +1 -0
- package/dist/core/store.d.ts +93 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +563 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/types.d.ts +186 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/usage-ranges.d.ts +46 -0
- package/dist/core/usage-ranges.d.ts.map +1 -0
- package/dist/core/usage-ranges.js +72 -0
- package/dist/core/usage-ranges.js.map +1 -0
- package/dist/core/usage.d.ts +100 -0
- package/dist/core/usage.d.ts.map +1 -0
- package/dist/core/usage.js +373 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/core/validate.d.ts +8 -0
- package/dist/core/validate.d.ts.map +1 -0
- package/dist/core/validate.js +167 -0
- package/dist/core/validate.js.map +1 -0
- package/dist/core/windows.d.ts +24 -0
- package/dist/core/windows.d.ts.map +1 -0
- package/dist/core/windows.js +43 -0
- package/dist/core/windows.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/accounting-format.d.ts +2 -52
- package/dist/lib/accounting-format.d.ts.map +1 -1
- package/dist/lib/accounting-format.js +6 -255
- package/dist/lib/accounting-format.js.map +1 -1
- package/dist/lib/alibaba-auth.d.ts +14 -21
- package/dist/lib/alibaba-auth.d.ts.map +1 -1
- package/dist/lib/alibaba-auth.js +36 -149
- package/dist/lib/alibaba-auth.js.map +1 -1
- package/dist/lib/alibaba-coding-plan-local-quota.d.ts +1 -6
- package/dist/lib/alibaba-coding-plan-local-quota.d.ts.map +1 -1
- package/dist/lib/alibaba-coding-plan-local-quota.js +1 -1
- package/dist/lib/alibaba-coding-plan-local-quota.js.map +1 -1
- package/dist/lib/alibaba-token-plan.d.ts +18 -27
- package/dist/lib/alibaba-token-plan.d.ts.map +1 -1
- package/dist/lib/alibaba-token-plan.js +121 -285
- package/dist/lib/alibaba-token-plan.js.map +1 -1
- package/dist/lib/anthropic-auth.d.ts +3 -5
- package/dist/lib/anthropic-auth.d.ts.map +1 -1
- package/dist/lib/anthropic-auth.js +6 -9
- package/dist/lib/anthropic-auth.js.map +1 -1
- package/dist/lib/anthropic.d.ts +12 -37
- package/dist/lib/anthropic.d.ts.map +1 -1
- package/dist/lib/anthropic.js +348 -698
- package/dist/lib/anthropic.js.map +1 -1
- package/dist/lib/api-key-resolver.d.ts +165 -192
- package/dist/lib/api-key-resolver.d.ts.map +1 -1
- package/dist/lib/api-key-resolver.js +208 -234
- package/dist/lib/api-key-resolver.js.map +1 -1
- package/dist/lib/atomic-json.d.ts +4 -1
- package/dist/lib/atomic-json.d.ts.map +1 -1
- package/dist/lib/atomic-json.js +2 -3
- package/dist/lib/atomic-json.js.map +1 -1
- package/dist/lib/calendar-date.d.ts +15 -0
- package/dist/lib/calendar-date.d.ts.map +1 -0
- package/dist/lib/calendar-date.js +21 -0
- package/dist/lib/calendar-date.js.map +1 -0
- package/dist/lib/chutes.d.ts +0 -1
- package/dist/lib/chutes.d.ts.map +1 -1
- package/dist/lib/chutes.js +2 -4
- package/dist/lib/chutes.js.map +1 -1
- package/dist/lib/cli-reports.d.ts +15 -11
- package/dist/lib/cli-reports.d.ts.map +1 -1
- package/dist/lib/cli-reports.js +34 -107
- package/dist/lib/cli-reports.js.map +1 -1
- package/dist/lib/cli-show.d.ts +9 -22
- package/dist/lib/cli-show.d.ts.map +1 -1
- package/dist/lib/cli-show.js +104 -75
- package/dist/lib/cli-show.js.map +1 -1
- package/dist/lib/config-file-utils.d.ts +3 -15
- package/dist/lib/config-file-utils.d.ts.map +1 -1
- package/dist/lib/config-file-utils.js +4 -63
- package/dist/lib/config-file-utils.js.map +1 -1
- package/dist/lib/config-write-target.d.ts +4 -7
- package/dist/lib/config-write-target.d.ts.map +1 -1
- package/dist/lib/config-write-target.js +4 -18
- package/dist/lib/config-write-target.js.map +1 -1
- package/dist/lib/copilot.d.ts +29 -20
- package/dist/lib/copilot.d.ts.map +1 -1
- package/dist/lib/copilot.js +392 -649
- package/dist/lib/copilot.js.map +1 -1
- package/dist/lib/cursor-detection.d.ts +3 -3
- package/dist/lib/cursor-detection.d.ts.map +1 -1
- package/dist/lib/cursor-detection.js +44 -88
- package/dist/lib/cursor-detection.js.map +1 -1
- package/dist/lib/cursor-pricing.d.ts +71 -8
- package/dist/lib/cursor-pricing.d.ts.map +1 -1
- package/dist/lib/cursor-pricing.js +33 -125
- package/dist/lib/cursor-pricing.js.map +1 -1
- package/dist/lib/cursor-usage.d.ts +6 -4
- package/dist/lib/cursor-usage.d.ts.map +1 -1
- package/dist/lib/cursor-usage.js +27 -40
- package/dist/lib/cursor-usage.js.map +1 -1
- package/dist/lib/deepseek.d.ts +9 -17
- package/dist/lib/deepseek.d.ts.map +1 -1
- package/dist/lib/deepseek.js +24 -54
- package/dist/lib/deepseek.js.map +1 -1
- package/dist/lib/display-sanitize.d.ts +0 -8
- package/dist/lib/display-sanitize.d.ts.map +1 -1
- package/dist/lib/display-sanitize.js +0 -139
- package/dist/lib/display-sanitize.js.map +1 -1
- package/dist/lib/entries.d.ts +13 -239
- package/dist/lib/entries.d.ts.map +1 -1
- package/dist/lib/entries.js +1 -46
- package/dist/lib/entries.js.map +1 -1
- package/dist/lib/file-lock.d.ts +23 -0
- package/dist/lib/file-lock.d.ts.map +1 -0
- package/dist/lib/file-lock.js +122 -0
- package/dist/lib/file-lock.js.map +1 -0
- package/dist/lib/format-utils.d.ts +2 -82
- package/dist/lib/format-utils.d.ts.map +1 -1
- package/dist/lib/format-utils.js +2 -191
- package/dist/lib/format-utils.js.map +1 -1
- package/dist/lib/glm-coding-plan.d.ts +6 -5
- package/dist/lib/glm-coding-plan.d.ts.map +1 -1
- package/dist/lib/glm-coding-plan.js +19 -1
- package/dist/lib/glm-coding-plan.js.map +1 -1
- package/dist/lib/google-agy.d.ts +8 -40
- package/dist/lib/google-agy.d.ts.map +1 -1
- package/dist/lib/google-agy.js +88 -519
- package/dist/lib/google-agy.js.map +1 -1
- package/dist/lib/google-companion-credentials.d.ts +9 -40
- package/dist/lib/google-companion-credentials.d.ts.map +1 -1
- package/dist/lib/google-companion-credentials.js +167 -224
- package/dist/lib/google-companion-credentials.js.map +1 -1
- package/dist/lib/google-gemini-cli.d.ts +5 -38
- package/dist/lib/google-gemini-cli.d.ts.map +1 -1
- package/dist/lib/google-gemini-cli.js +71 -442
- package/dist/lib/google-gemini-cli.js.map +1 -1
- package/dist/lib/google-oauth-quota.d.ts +76 -0
- package/dist/lib/google-oauth-quota.d.ts.map +1 -0
- package/dist/lib/google-oauth-quota.js +297 -0
- package/dist/lib/google-oauth-quota.js.map +1 -0
- package/dist/lib/google-token-cache.d.ts +3 -5
- package/dist/lib/google-token-cache.d.ts.map +1 -1
- package/dist/lib/google-token-cache.js +2 -14
- package/dist/lib/google-token-cache.js.map +1 -1
- package/dist/lib/home-dir-display.d.ts.map +1 -1
- package/dist/lib/home-dir-display.js +21 -39
- package/dist/lib/home-dir-display.js.map +1 -1
- package/dist/lib/http.d.ts +4 -1
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +2 -1
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/json-guards.d.ts +11 -0
- package/dist/lib/json-guards.d.ts.map +1 -0
- package/dist/lib/json-guards.js +25 -0
- package/dist/lib/json-guards.js.map +1 -0
- package/dist/lib/kilo.d.ts +0 -2
- package/dist/lib/kilo.d.ts.map +1 -1
- package/dist/lib/kilo.js +33 -116
- package/dist/lib/kilo.js.map +1 -1
- package/dist/lib/kimi-endpoints.d.ts +2 -2
- package/dist/lib/kimi-endpoints.d.ts.map +1 -1
- package/dist/lib/kimi-endpoints.js +1 -1
- package/dist/lib/kimi-endpoints.js.map +1 -1
- package/dist/lib/kimi.d.ts.map +1 -1
- package/dist/lib/kimi.js +40 -86
- package/dist/lib/kimi.js.map +1 -1
- package/dist/lib/maintainer-announcements.d.ts +4 -17
- package/dist/lib/maintainer-announcements.d.ts.map +1 -1
- package/dist/lib/maintainer-announcements.js +7 -44
- package/dist/lib/maintainer-announcements.js.map +1 -1
- package/dist/lib/maintainer-home-notice.d.ts +19 -0
- package/dist/lib/maintainer-home-notice.d.ts.map +1 -0
- package/dist/lib/maintainer-home-notice.js +92 -0
- package/dist/lib/maintainer-home-notice.js.map +1 -0
- package/dist/lib/mimo-config.d.ts +6 -9
- package/dist/lib/mimo-config.d.ts.map +1 -1
- package/dist/lib/mimo-config.js +43 -74
- package/dist/lib/mimo-config.js.map +1 -1
- package/dist/lib/mimo.d.ts +2 -5
- package/dist/lib/mimo.d.ts.map +1 -1
- package/dist/lib/mimo.js +57 -109
- package/dist/lib/mimo.js.map +1 -1
- package/dist/lib/minimax-endpoints.d.ts +2 -2
- package/dist/lib/minimax-endpoints.d.ts.map +1 -1
- package/dist/lib/minimax-endpoints.js +1 -1
- package/dist/lib/minimax-endpoints.js.map +1 -1
- package/dist/lib/modelsdev-pricing.d.ts +22 -16
- package/dist/lib/modelsdev-pricing.d.ts.map +1 -1
- package/dist/lib/modelsdev-pricing.js +279 -560
- package/dist/lib/modelsdev-pricing.js.map +1 -1
- package/dist/lib/nanogpt.d.ts +6 -6
- package/dist/lib/nanogpt.d.ts.map +1 -1
- package/dist/lib/nanogpt.js +19 -72
- package/dist/lib/nanogpt.js.map +1 -1
- package/dist/lib/ollama-cloud.d.ts +3 -6
- package/dist/lib/ollama-cloud.d.ts.map +1 -1
- package/dist/lib/ollama-cloud.js +26 -37
- package/dist/lib/ollama-cloud.js.map +1 -1
- package/dist/lib/openai.d.ts +18 -29
- package/dist/lib/openai.d.ts.map +1 -1
- package/dist/lib/openai.js +108 -182
- package/dist/lib/openai.js.map +1 -1
- package/dist/lib/opencode-auth-sqlite.d.ts.map +1 -1
- package/dist/lib/opencode-auth-sqlite.js +22 -23
- package/dist/lib/opencode-auth-sqlite.js.map +1 -1
- package/dist/lib/opencode-auth.d.ts +17 -11
- package/dist/lib/opencode-auth.d.ts.map +1 -1
- package/dist/lib/opencode-auth.js +39 -46
- package/dist/lib/opencode-auth.js.map +1 -1
- package/dist/lib/opencode-config-editor.d.ts +3 -34
- package/dist/lib/opencode-config-editor.d.ts.map +1 -1
- package/dist/lib/opencode-config-editor.js +23 -142
- package/dist/lib/opencode-config-editor.js.map +1 -1
- package/dist/lib/opencode-config-providers.d.ts +4 -3
- package/dist/lib/opencode-config-providers.d.ts.map +1 -1
- package/dist/lib/opencode-config-providers.js +7 -11
- package/dist/lib/opencode-config-providers.js.map +1 -1
- package/dist/lib/opencode-config-read.d.ts +2 -1
- package/dist/lib/opencode-config-read.d.ts.map +1 -1
- package/dist/lib/opencode-config-read.js +3 -2
- package/dist/lib/opencode-config-read.js.map +1 -1
- package/dist/lib/opencode-console-auth.d.ts +2 -3
- package/dist/lib/opencode-console-auth.d.ts.map +1 -1
- package/dist/lib/opencode-console-auth.js +2 -2
- package/dist/lib/opencode-console-auth.js.map +1 -1
- package/dist/lib/opencode-go.d.ts.map +1 -1
- package/dist/lib/opencode-go.js +51 -79
- package/dist/lib/opencode-go.js.map +1 -1
- package/dist/lib/opencode-storage.d.ts +18 -3
- package/dist/lib/opencode-storage.d.ts.map +1 -1
- package/dist/lib/opencode-storage.js +134 -2
- package/dist/lib/opencode-storage.js.map +1 -1
- package/dist/lib/opencode-zen.d.ts +15 -12
- package/dist/lib/opencode-zen.d.ts.map +1 -1
- package/dist/lib/opencode-zen.js +139 -147
- package/dist/lib/opencode-zen.js.map +1 -1
- package/dist/lib/openrouter.d.ts.map +1 -1
- package/dist/lib/openrouter.js +1 -13
- package/dist/lib/openrouter.js.map +1 -1
- package/dist/lib/pricing-key.d.ts +48 -0
- package/dist/lib/pricing-key.d.ts.map +1 -0
- package/dist/lib/pricing-key.js +371 -0
- package/dist/lib/pricing-key.js.map +1 -0
- package/dist/lib/provider-metadata.d.ts +16 -20
- package/dist/lib/provider-metadata.d.ts.map +1 -1
- package/dist/lib/provider-metadata.js +69 -69
- package/dist/lib/provider-metadata.js.map +1 -1
- package/dist/lib/provider-model-matching.d.ts +2 -1
- package/dist/lib/provider-model-matching.d.ts.map +1 -1
- package/dist/lib/provider-registration.d.ts +1 -177
- package/dist/lib/provider-registration.d.ts.map +1 -1
- package/dist/lib/provider-registration.js +1 -163
- package/dist/lib/provider-registration.js.map +1 -1
- package/dist/lib/quota-dialog-commands.d.ts +87 -53
- package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
- package/dist/lib/quota-dialog-commands.js +259 -519
- package/dist/lib/quota-dialog-commands.js.map +1 -1
- package/dist/lib/quota-export-types.d.ts +29 -23
- package/dist/lib/quota-export-types.d.ts.map +1 -1
- package/dist/lib/quota-export.d.ts +16 -26
- package/dist/lib/quota-export.d.ts.map +1 -1
- package/dist/lib/quota-export.js +105 -147
- package/dist/lib/quota-export.js.map +1 -1
- package/dist/lib/quota-providers-local.d.ts +12 -8
- package/dist/lib/quota-providers-local.d.ts.map +1 -1
- package/dist/lib/quota-providers-local.js +150 -223
- package/dist/lib/quota-providers-local.js.map +1 -1
- package/dist/lib/quota-providers-remote.d.ts +3 -8
- package/dist/lib/quota-providers-remote.d.ts.map +1 -1
- package/dist/lib/quota-providers-remote.js +309 -449
- package/dist/lib/quota-providers-remote.js.map +1 -1
- package/dist/lib/quota-providers.d.ts +57 -15
- package/dist/lib/quota-providers.d.ts.map +1 -1
- package/dist/lib/quota-providers.js +157 -64
- package/dist/lib/quota-providers.js.map +1 -1
- package/dist/lib/quota-report-message.d.ts +23 -10
- package/dist/lib/quota-report-message.d.ts.map +1 -1
- package/dist/lib/quota-report-message.js +37 -13
- package/dist/lib/quota-report-message.js.map +1 -1
- package/dist/lib/quota-retry-wait.d.ts +14 -6
- package/dist/lib/quota-retry-wait.d.ts.map +1 -1
- package/dist/lib/quota-retry-wait.js +37 -39
- package/dist/lib/quota-retry-wait.js.map +1 -1
- package/dist/lib/quota-status.d.ts +50 -33
- package/dist/lib/quota-status.d.ts.map +1 -1
- package/dist/lib/quota-status.js +1113 -773
- package/dist/lib/quota-status.js.map +1 -1
- package/dist/lib/quota-telemetry.d.ts +7 -14
- package/dist/lib/quota-telemetry.d.ts.map +1 -1
- package/dist/lib/quota-telemetry.js +46 -97
- package/dist/lib/quota-telemetry.js.map +1 -1
- package/dist/lib/report-document.d.ts +5 -65
- package/dist/lib/report-document.d.ts.map +1 -1
- package/dist/lib/report-document.js +14 -167
- package/dist/lib/report-document.js.map +1 -1
- package/dist/lib/resolved-auth-identity.d.ts +1 -2
- package/dist/lib/resolved-auth-identity.d.ts.map +1 -1
- package/dist/lib/resolved-auth-identity.js +0 -4
- package/dist/lib/resolved-auth-identity.js.map +1 -1
- package/dist/lib/session-tokens.d.ts +19 -19
- package/dist/lib/session-tokens.d.ts.map +1 -1
- package/dist/lib/session-tokens.js +58 -44
- package/dist/lib/session-tokens.js.map +1 -1
- package/dist/lib/synthetic.d.ts +0 -1
- package/dist/lib/synthetic.d.ts.map +1 -1
- package/dist/lib/synthetic.js +43 -94
- package/dist/lib/synthetic.js.map +1 -1
- package/dist/lib/token-buckets.d.ts +0 -1
- package/dist/lib/token-buckets.d.ts.map +1 -1
- package/dist/lib/token-buckets.js +0 -3
- package/dist/lib/token-buckets.js.map +1 -1
- package/dist/lib/token-cost.d.ts +2 -1
- package/dist/lib/token-cost.d.ts.map +1 -1
- package/dist/lib/types.d.ts +25 -333
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +2 -70
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/xai.d.ts +6 -6
- package/dist/lib/xai.d.ts.map +1 -1
- package/dist/lib/xai.js +51 -90
- package/dist/lib/xai.js.map +1 -1
- package/dist/plugin.d.ts +6 -3
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +315 -90
- package/dist/plugin.js.map +1 -1
- package/dist/providers/alibaba-coding-plan.d.ts +4 -0
- package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
- package/dist/providers/alibaba-coding-plan.js +47 -77
- package/dist/providers/alibaba-coding-plan.js.map +1 -1
- package/dist/providers/alibaba-token-plan.d.ts.map +1 -1
- package/dist/providers/alibaba-token-plan.js +34 -46
- package/dist/providers/alibaba-token-plan.js.map +1 -1
- package/dist/providers/anthropic.d.ts +2 -4
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +80 -162
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/cache-policies.d.ts +0 -2
- package/dist/providers/cache-policies.d.ts.map +1 -1
- package/dist/providers/cache-policies.js +38 -88
- package/dist/providers/cache-policies.js.map +1 -1
- package/dist/providers/chutes.d.ts +0 -3
- package/dist/providers/chutes.d.ts.map +1 -1
- package/dist/providers/chutes.js +16 -28
- package/dist/providers/chutes.js.map +1 -1
- package/dist/providers/contract.d.ts +128 -0
- package/dist/providers/contract.d.ts.map +1 -0
- package/dist/providers/contract.js +101 -0
- package/dist/providers/contract.js.map +1 -0
- package/dist/providers/copilot.d.ts.map +1 -1
- package/dist/providers/copilot.js +171 -175
- package/dist/providers/copilot.js.map +1 -1
- package/dist/providers/cursor.d.ts.map +1 -1
- package/dist/providers/cursor.js +56 -109
- package/dist/providers/cursor.js.map +1 -1
- package/dist/providers/deepseek.d.ts +1 -6
- package/dist/providers/deepseek.d.ts.map +1 -1
- package/dist/providers/deepseek.js +46 -81
- package/dist/providers/deepseek.js.map +1 -1
- package/dist/providers/glm-coding-plan.d.ts +8 -0
- package/dist/providers/glm-coding-plan.d.ts.map +1 -0
- package/dist/providers/glm-coding-plan.js +106 -0
- package/dist/providers/glm-coding-plan.js.map +1 -0
- package/dist/providers/google-agy.d.ts +0 -1
- package/dist/providers/google-agy.d.ts.map +1 -1
- package/dist/providers/google-agy.js +41 -192
- package/dist/providers/google-agy.js.map +1 -1
- package/dist/providers/google-gemini-cli.d.ts.map +1 -1
- package/dist/providers/google-gemini-cli.js +51 -151
- package/dist/providers/google-gemini-cli.js.map +1 -1
- package/dist/providers/google-oauth-provider.d.ts +39 -0
- package/dist/providers/google-oauth-provider.d.ts.map +1 -0
- package/dist/providers/google-oauth-provider.js +161 -0
- package/dist/providers/google-oauth-provider.js.map +1 -0
- package/dist/providers/kilo.d.ts +0 -3
- package/dist/providers/kilo.d.ts.map +1 -1
- package/dist/providers/kilo.js +69 -123
- package/dist/providers/kilo.js.map +1 -1
- package/dist/providers/kimi-code.d.ts +5 -0
- package/dist/providers/kimi-code.d.ts.map +1 -1
- package/dist/providers/kimi-code.js +91 -136
- package/dist/providers/kimi-code.js.map +1 -1
- package/dist/providers/mimo.d.ts.map +1 -1
- package/dist/providers/mimo.js +55 -94
- package/dist/providers/mimo.js.map +1 -1
- package/dist/providers/minimax-coding-plan.d.ts +2 -23
- package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
- package/dist/providers/minimax-coding-plan.js +161 -277
- package/dist/providers/minimax-coding-plan.js.map +1 -1
- package/dist/providers/nanogpt.d.ts +0 -3
- package/dist/providers/nanogpt.d.ts.map +1 -1
- package/dist/providers/nanogpt.js +61 -95
- package/dist/providers/nanogpt.js.map +1 -1
- package/dist/providers/ollama-cloud.d.ts +0 -6
- package/dist/providers/ollama-cloud.d.ts.map +1 -1
- package/dist/providers/ollama-cloud.js +86 -112
- package/dist/providers/ollama-cloud.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +144 -166
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/opencode-go.d.ts.map +1 -1
- package/dist/providers/opencode-go.js +157 -199
- package/dist/providers/opencode-go.js.map +1 -1
- package/dist/providers/opencode-zen.d.ts.map +1 -1
- package/dist/providers/opencode-zen.js +100 -150
- package/dist/providers/opencode-zen.js.map +1 -1
- package/dist/providers/openrouter.d.ts +0 -3
- package/dist/providers/openrouter.d.ts.map +1 -1
- package/dist/providers/openrouter.js +26 -13
- package/dist/providers/openrouter.js.map +1 -1
- package/dist/providers/quota-providers.d.ts +7 -3
- package/dist/providers/quota-providers.d.ts.map +1 -1
- package/dist/providers/quota-providers.js +111 -217
- package/dist/providers/quota-providers.js.map +1 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +1 -2
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/result-helpers.d.ts +10 -37
- package/dist/providers/result-helpers.d.ts.map +1 -1
- package/dist/providers/result-helpers.js +23 -56
- package/dist/providers/result-helpers.js.map +1 -1
- package/dist/providers/synthetic.d.ts +0 -3
- package/dist/providers/synthetic.d.ts.map +1 -1
- package/dist/providers/synthetic.js +16 -58
- package/dist/providers/synthetic.js.map +1 -1
- package/dist/providers/xai.d.ts +2 -1
- package/dist/providers/xai.d.ts.map +1 -1
- package/dist/providers/xai.js +49 -71
- package/dist/providers/xai.js.map +1 -1
- package/dist/rpc.d.ts +110 -38
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +125 -37
- package/dist/rpc.js.map +1 -1
- package/dist/settings/convert.d.ts +60 -0
- package/dist/settings/convert.d.ts.map +1 -0
- package/dist/settings/convert.js +473 -0
- package/dist/settings/convert.js.map +1 -0
- package/dist/settings/file.d.ts +89 -0
- package/dist/settings/file.d.ts.map +1 -0
- package/dist/settings/file.js +452 -0
- package/dist/settings/file.js.map +1 -0
- package/dist/settings/index.d.ts +10 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +3 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/schema.d.ts +607 -0
- package/dist/settings/schema.d.ts.map +1 -0
- package/dist/settings/schema.js +479 -0
- package/dist/settings/schema.js.map +1 -0
- package/dist/tui/client.d.ts +86 -0
- package/dist/tui/client.d.ts.map +1 -0
- package/dist/tui/client.js +229 -0
- package/dist/tui/client.js.map +1 -0
- package/dist/tui/display.d.ts +127 -0
- package/dist/tui/display.d.ts.map +1 -0
- package/dist/tui/display.js +474 -0
- package/dist/tui/display.js.map +1 -0
- package/dist/tui/index.d.ts +21 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +305 -0
- package/dist/tui/server-settings.d.ts +43 -0
- package/dist/tui/server-settings.d.ts.map +1 -0
- package/dist/tui/server-settings.js +233 -0
- package/dist/tui/server-settings.js.map +1 -0
- package/dist/tui/sidebar.d.ts +41 -0
- package/dist/tui/sidebar.d.ts.map +1 -0
- package/dist/tui/sidebar.js +148 -0
- package/dist/tui/status-line.d.ts +14 -0
- package/dist/tui/status-line.d.ts.map +1 -0
- package/dist/tui/status-line.js +225 -0
- package/dist/tui/theme.d.ts +41 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +52 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/tui/toast-colors.d.ts +37 -0
- package/dist/tui/toast-colors.d.ts.map +1 -0
- package/dist/tui/toast-colors.js +77 -0
- package/dist/tui/toasts.d.ts +59 -0
- package/dist/tui/toasts.d.ts.map +1 -0
- package/dist/tui/toasts.js +148 -0
- package/dist/tui/toasts.js.map +1 -0
- package/dist/tui/window/drag.d.ts +26 -0
- package/dist/tui/window/drag.d.ts.map +1 -0
- package/dist/tui/window/drag.js +80 -0
- package/dist/tui/window/drag.js.map +1 -0
- package/dist/tui/window/limits.d.ts +15 -0
- package/dist/tui/window/limits.d.ts.map +1 -0
- package/dist/tui/window/limits.js +227 -0
- package/dist/tui/window/limits.js.map +1 -0
- package/dist/tui/window/rail.d.ts +21 -0
- package/dist/tui/window/rail.d.ts.map +1 -0
- package/dist/tui/window/rail.js +81 -0
- package/dist/tui/window/settings.d.ts +164 -0
- package/dist/tui/window/settings.d.ts.map +1 -0
- package/dist/tui/window/settings.js +1679 -0
- package/dist/tui/window/shell.d.ts +108 -0
- package/dist/tui/window/shell.d.ts.map +1 -0
- package/dist/tui/window/shell.js +1003 -0
- package/dist/tui/window/usage.d.ts +75 -0
- package/dist/tui/window/usage.d.ts.map +1 -0
- package/dist/tui/window/usage.js +928 -0
- package/dist/tui/window/views.d.ts +61 -0
- package/dist/tui/window/views.d.ts.map +1 -0
- package/dist/tui/window/views.js +242 -0
- package/dist/tui.d.ts +1 -5
- package/dist/tui.js +1 -894
- package/dist/view/columns.d.ts +15 -0
- package/dist/view/columns.d.ts.map +1 -0
- package/dist/view/columns.js +48 -0
- package/dist/view/columns.js.map +1 -0
- package/dist/view/format.d.ts +82 -0
- package/dist/view/format.d.ts.map +1 -0
- package/dist/view/format.js +201 -0
- package/dist/view/format.js.map +1 -0
- package/dist/view/quick-look.d.ts +28 -0
- package/dist/view/quick-look.d.ts.map +1 -0
- package/dist/view/quick-look.js +150 -0
- package/dist/view/quick-look.js.map +1 -0
- package/dist/view/select.d.ts +67 -0
- package/dist/view/select.d.ts.map +1 -0
- package/dist/view/select.js +87 -0
- package/dist/view/select.js.map +1 -0
- package/dist/view/text.d.ts +153 -0
- package/dist/view/text.d.ts.map +1 -0
- package/dist/view/text.js +642 -0
- package/dist/view/text.js.map +1 -0
- package/dist/view/usage.d.ts +86 -0
- package/dist/view/usage.d.ts.map +1 -0
- package/dist/view/usage.js +724 -0
- package/dist/view/usage.js.map +1 -0
- package/package.json +4 -6
- package/dist/lib/chutes-config.d.ts +0 -15
- package/dist/lib/chutes-config.d.ts.map +0 -1
- package/dist/lib/chutes-config.js +0 -28
- package/dist/lib/chutes-config.js.map +0 -1
- package/dist/lib/cli-status.d.ts +0 -8
- package/dist/lib/cli-status.d.ts.map +0 -1
- package/dist/lib/cli-status.js +0 -98
- package/dist/lib/cli-status.js.map +0 -1
- package/dist/lib/command-parsing.d.ts +0 -43
- package/dist/lib/command-parsing.d.ts.map +0 -1
- package/dist/lib/command-parsing.js +0 -103
- package/dist/lib/command-parsing.js.map +0 -1
- package/dist/lib/config.d.ts +0 -63
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -1092
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/deepseek-auth.d.ts +0 -15
- package/dist/lib/deepseek-auth.d.ts.map +0 -1
- package/dist/lib/deepseek-auth.js +0 -28
- package/dist/lib/deepseek-auth.js.map +0 -1
- package/dist/lib/format.d.ts +0 -25
- package/dist/lib/format.d.ts.map +0 -1
- package/dist/lib/format.js +0 -300
- package/dist/lib/format.js.map +0 -1
- package/dist/lib/google-agy-companion.d.ts +0 -8
- package/dist/lib/google-agy-companion.d.ts.map +0 -1
- package/dist/lib/google-agy-companion.js +0 -64
- package/dist/lib/google-agy-companion.js.map +0 -1
- package/dist/lib/google-gemini-cli-companion.d.ts +0 -8
- package/dist/lib/google-gemini-cli-companion.d.ts.map +0 -1
- package/dist/lib/google-gemini-cli-companion.js +0 -64
- package/dist/lib/google-gemini-cli-companion.js.map +0 -1
- package/dist/lib/grouped-entry-normalization.d.ts +0 -12
- package/dist/lib/grouped-entry-normalization.d.ts.map +0 -1
- package/dist/lib/grouped-entry-normalization.js +0 -124
- package/dist/lib/grouped-entry-normalization.js.map +0 -1
- package/dist/lib/grouped-header-format.d.ts +0 -5
- package/dist/lib/grouped-header-format.d.ts.map +0 -1
- package/dist/lib/grouped-header-format.js +0 -16
- package/dist/lib/grouped-header-format.js.map +0 -1
- package/dist/lib/init-installer.d.ts +0 -123
- package/dist/lib/init-installer.d.ts.map +0 -1
- package/dist/lib/init-installer.js +0 -1111
- package/dist/lib/init-installer.js.map +0 -1
- package/dist/lib/jsonc.d.ts +0 -17
- package/dist/lib/jsonc.d.ts.map +0 -1
- package/dist/lib/jsonc.js +0 -23
- package/dist/lib/jsonc.js.map +0 -1
- package/dist/lib/kilo-config.d.ts +0 -15
- package/dist/lib/kilo-config.d.ts.map +0 -1
- package/dist/lib/kilo-config.js +0 -27
- package/dist/lib/kilo-config.js.map +0 -1
- package/dist/lib/kimi-auth.d.ts +0 -49
- package/dist/lib/kimi-auth.d.ts.map +0 -1
- package/dist/lib/kimi-auth.js +0 -82
- package/dist/lib/kimi-auth.js.map +0 -1
- package/dist/lib/markdown-table.d.ts +0 -51
- package/dist/lib/markdown-table.d.ts.map +0 -1
- package/dist/lib/markdown-table.js +0 -179
- package/dist/lib/markdown-table.js.map +0 -1
- package/dist/lib/minimax-auth.d.ts +0 -62
- package/dist/lib/minimax-auth.d.ts.map +0 -1
- package/dist/lib/minimax-auth.js +0 -206
- package/dist/lib/minimax-auth.js.map +0 -1
- package/dist/lib/nanogpt-config.d.ts +0 -15
- package/dist/lib/nanogpt-config.d.ts.map +0 -1
- package/dist/lib/nanogpt-config.js +0 -31
- package/dist/lib/nanogpt-config.js.map +0 -1
- package/dist/lib/ollama-cloud-config.d.ts +0 -15
- package/dist/lib/ollama-cloud-config.d.ts.map +0 -1
- package/dist/lib/ollama-cloud-config.js +0 -27
- package/dist/lib/ollama-cloud-config.js.map +0 -1
- package/dist/lib/opencode-go-auth.d.ts +0 -16
- package/dist/lib/opencode-go-auth.d.ts.map +0 -1
- package/dist/lib/opencode-go-auth.js +0 -42
- package/dist/lib/opencode-go-auth.js.map +0 -1
- package/dist/lib/opencode-version.d.ts +0 -6
- package/dist/lib/opencode-version.d.ts.map +0 -1
- package/dist/lib/opencode-version.js +0 -26
- package/dist/lib/opencode-version.js.map +0 -1
- package/dist/lib/provider-add-command.d.ts +0 -35
- package/dist/lib/provider-add-command.d.ts.map +0 -1
- package/dist/lib/provider-add-command.js +0 -204
- package/dist/lib/provider-add-command.js.map +0 -1
- package/dist/lib/provider-add-json-v1-questionnaire.d.ts +0 -32
- package/dist/lib/provider-add-json-v1-questionnaire.d.ts.map +0 -1
- package/dist/lib/provider-add-json-v1-questionnaire.js +0 -336
- package/dist/lib/provider-add-json-v1-questionnaire.js.map +0 -1
- package/dist/lib/provider-add.d.ts +0 -21
- package/dist/lib/provider-add.d.ts.map +0 -1
- package/dist/lib/provider-add.js +0 -219
- package/dist/lib/provider-add.js.map +0 -1
- package/dist/lib/quota-accounting-projection.d.ts +0 -9
- package/dist/lib/quota-accounting-projection.d.ts.map +0 -1
- package/dist/lib/quota-accounting-projection.js +0 -254
- package/dist/lib/quota-accounting-projection.js.map +0 -1
- package/dist/lib/quota-columns.d.ts +0 -38
- package/dist/lib/quota-columns.d.ts.map +0 -1
- package/dist/lib/quota-columns.js +0 -129
- package/dist/lib/quota-columns.js.map +0 -1
- package/dist/lib/quota-command-format.d.ts +0 -34
- package/dist/lib/quota-command-format.d.ts.map +0 -1
- package/dist/lib/quota-command-format.js +0 -240
- package/dist/lib/quota-command-format.js.map +0 -1
- package/dist/lib/quota-dialog-command-specs.d.ts +0 -63
- package/dist/lib/quota-dialog-command-specs.d.ts.map +0 -1
- package/dist/lib/quota-dialog-command-specs.js +0 -145
- package/dist/lib/quota-dialog-command-specs.js.map +0 -1
- package/dist/lib/quota-entry-display.d.ts +0 -7
- package/dist/lib/quota-entry-display.d.ts.map +0 -1
- package/dist/lib/quota-entry-display.js +0 -59
- package/dist/lib/quota-entry-display.js.map +0 -1
- package/dist/lib/quota-exhaustion-projection.d.ts +0 -11
- package/dist/lib/quota-exhaustion-projection.d.ts.map +0 -1
- package/dist/lib/quota-exhaustion-projection.js +0 -105
- package/dist/lib/quota-exhaustion-projection.js.map +0 -1
- package/dist/lib/quota-format-style.d.ts +0 -21
- package/dist/lib/quota-format-style.d.ts.map +0 -1
- package/dist/lib/quota-format-style.js +0 -38
- package/dist/lib/quota-format-style.js.map +0 -1
- package/dist/lib/quota-render-data.d.ts +0 -102
- package/dist/lib/quota-render-data.d.ts.map +0 -1
- package/dist/lib/quota-render-data.js +0 -419
- package/dist/lib/quota-render-data.js.map +0 -1
- package/dist/lib/quota-reset-notifications.d.ts +0 -20
- package/dist/lib/quota-reset-notifications.d.ts.map +0 -1
- package/dist/lib/quota-reset-notifications.js +0 -331
- package/dist/lib/quota-reset-notifications.js.map +0 -1
- package/dist/lib/quota-runtime-context.d.ts +0 -54
- package/dist/lib/quota-runtime-context.d.ts.map +0 -1
- package/dist/lib/quota-runtime-context.js +0 -110
- package/dist/lib/quota-runtime-context.js.map +0 -1
- package/dist/lib/quota-state-codec.d.ts +0 -16
- package/dist/lib/quota-state-codec.d.ts.map +0 -1
- package/dist/lib/quota-state-codec.js +0 -412
- package/dist/lib/quota-state-codec.js.map +0 -1
- package/dist/lib/quota-state.d.ts +0 -28
- package/dist/lib/quota-state.d.ts.map +0 -1
- package/dist/lib/quota-state.js +0 -473
- package/dist/lib/quota-state.js.map +0 -1
- package/dist/lib/quota-stats-format.d.ts +0 -29
- package/dist/lib/quota-stats-format.d.ts.map +0 -1
- package/dist/lib/quota-stats-format.js +0 -459
- package/dist/lib/quota-stats-format.js.map +0 -1
- package/dist/lib/quota-stats.d.ts +0 -126
- package/dist/lib/quota-stats.d.ts.map +0 -1
- package/dist/lib/quota-stats.js +0 -695
- package/dist/lib/quota-stats.js.map +0 -1
- package/dist/lib/quota-surface-data.d.ts +0 -21
- package/dist/lib/quota-surface-data.d.ts.map +0 -1
- package/dist/lib/quota-surface-data.js +0 -362
- package/dist/lib/quota-surface-data.js.map +0 -1
- package/dist/lib/scoped-update-migration.d.ts +0 -103
- package/dist/lib/scoped-update-migration.d.ts.map +0 -1
- package/dist/lib/scoped-update-migration.js +0 -344
- package/dist/lib/scoped-update-migration.js.map +0 -1
- package/dist/lib/scoped-update.d.ts +0 -77
- package/dist/lib/scoped-update.d.ts.map +0 -1
- package/dist/lib/scoped-update.js +0 -590
- package/dist/lib/scoped-update.js.map +0 -1
- package/dist/lib/session-tokens-format.d.ts +0 -36
- package/dist/lib/session-tokens-format.d.ts.map +0 -1
- package/dist/lib/session-tokens-format.js +0 -111
- package/dist/lib/session-tokens-format.js.map +0 -1
- package/dist/lib/synthetic-config.d.ts +0 -15
- package/dist/lib/synthetic-config.d.ts.map +0 -1
- package/dist/lib/synthetic-config.js +0 -28
- package/dist/lib/synthetic-config.js.map +0 -1
- package/dist/lib/toast-format-grouped.d.ts +0 -25
- package/dist/lib/toast-format-grouped.d.ts.map +0 -1
- package/dist/lib/toast-format-grouped.js +0 -296
- package/dist/lib/toast-format-grouped.js.map +0 -1
- package/dist/lib/tui-compact-format.d.ts +0 -10
- package/dist/lib/tui-compact-format.d.ts.map +0 -1
- package/dist/lib/tui-compact-format.js +0 -460
- package/dist/lib/tui-compact-format.js.map +0 -1
- package/dist/lib/tui-panel-state.d.ts +0 -15
- package/dist/lib/tui-panel-state.d.ts.map +0 -1
- package/dist/lib/tui-panel-state.js +0 -2
- package/dist/lib/tui-panel-state.js.map +0 -1
- package/dist/lib/tui-prompt-bar-format.d.ts +0 -25
- package/dist/lib/tui-prompt-bar-format.d.ts.map +0 -1
- package/dist/lib/tui-prompt-bar-format.js +0 -206
- package/dist/lib/tui-prompt-bar-format.js.map +0 -1
- package/dist/lib/tui-sidebar-format.d.ts +0 -13
- package/dist/lib/tui-sidebar-format.d.ts.map +0 -1
- package/dist/lib/tui-sidebar-format.js +0 -34
- package/dist/lib/tui-sidebar-format.js.map +0 -1
- package/dist/lib/zai-auth.d.ts +0 -15
- package/dist/lib/zai-auth.d.ts.map +0 -1
- package/dist/lib/zai-auth.js +0 -37
- package/dist/lib/zai-auth.js.map +0 -1
- package/dist/lib/zai.d.ts +0 -5
- package/dist/lib/zai.d.ts.map +0 -1
- package/dist/lib/zai.js +0 -14
- package/dist/lib/zai.js.map +0 -1
- package/dist/lib/zhipu-auth.d.ts +0 -15
- package/dist/lib/zhipu-auth.d.ts.map +0 -1
- package/dist/lib/zhipu-auth.js +0 -42
- package/dist/lib/zhipu-auth.js.map +0 -1
- package/dist/lib/zhipu.d.ts +0 -5
- package/dist/lib/zhipu.d.ts.map +0 -1
- package/dist/lib/zhipu.js +0 -13
- package/dist/lib/zhipu.js.map +0 -1
- package/dist/providers/glm-coding-plan-provider.d.ts +0 -56
- package/dist/providers/glm-coding-plan-provider.d.ts.map +0 -1
- package/dist/providers/glm-coding-plan-provider.js +0 -115
- package/dist/providers/glm-coding-plan-provider.js.map +0 -1
- package/dist/providers/google-account-format.d.ts +0 -7
- package/dist/providers/google-account-format.d.ts.map +0 -1
- package/dist/providers/google-account-format.js +0 -52
- package/dist/providers/google-account-format.js.map +0 -1
- package/dist/providers/zai.d.ts +0 -2
- package/dist/providers/zai.d.ts.map +0 -1
- package/dist/providers/zai.js +0 -24
- package/dist/providers/zai.js.map +0 -1
- package/dist/providers/zhipu.d.ts +0 -2
- package/dist/providers/zhipu.d.ts.map +0 -1
- package/dist/providers/zhipu.js +0 -21
- package/dist/providers/zhipu.js.map +0 -1
- package/dist/tui-v2.d.ts +0 -5
- package/dist/tui-v2.d.ts.map +0 -1
- package/dist/tui-v2.jsx +0 -624
- package/dist/tui-v2.jsx.map +0 -1
- package/dist/tui.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home-dir-display.js","sourceRoot":"","sources":["../../src/lib/home-dir-display.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAElD,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"home-dir-display.js","sourceRoot":"","sources":["../../src/lib/home-dir-display.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAElD,+FAA+F;AAC/F,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAE1D,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,OAAO;QAClB,CAAC,CAAC,aAAa;YACb,IAAI;iBACD,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,CAAC,OAAO,CAAC;iBACZ,IAAI,CAAC,sBAAsB,CAAC;QACjC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,IAAI,MAAM,CAAC,GAAG,cAAc,GAAG,IAAI,GAAG,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,OAAe;IACnE,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED,6FAA6F;AAC7F,gFAAgF;AAChF,SAAS,qBAAqB,CAAC,KAAkB,EAAE,OAAe;IAChE,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,KAAK,IAAI;YACP,OAAO;gBACL,GAAG,KAAK;gBACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC7B,GAAG,GAAG;oBACN,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;iBAC5D,CAAC,CAAC;aACJ,CAAC;IACN,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,iCAAiC,CAC/C,QAAwB,EACxB,OAAe;IAEf,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEvE,OAAO;QACL,GAAG,QAAQ;QACX,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3E,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5C,GAAG,OAAO;YACV,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC7E,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
|
package/dist/lib/http.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HTTP utilities for provider API calls.
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
/** Request timeout in milliseconds. */
|
|
5
|
+
export declare const REQUEST_TIMEOUT_MS = 5000;
|
|
6
|
+
type FetchWithTimeoutOptions<T> = {
|
|
5
7
|
request: Omit<RequestInit, "signal">;
|
|
6
8
|
timeoutMs?: number;
|
|
7
9
|
fetchFn?: typeof fetch;
|
|
@@ -16,4 +18,5 @@ export type FetchWithTimeoutOptions<T> = {
|
|
|
16
18
|
* @throws Error with message "Request timeout after Xs" if the transaction times out
|
|
17
19
|
*/
|
|
18
20
|
export declare function fetchWithTimeout<T>(url: string, options: FetchWithTimeoutOptions<T>): Promise<T>;
|
|
21
|
+
export {};
|
|
19
22
|
//# sourceMappingURL=http.d.ts.map
|
package/dist/lib/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uCAAuC;AACvC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,KAAK,uBAAuB,CAAC,CAAC,IAAI;IAChC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CAC7E,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAgCZ"}
|
package/dist/lib/http.js
CHANGED
package/dist/lib/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uCAAuC;AACvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AASvC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,OAAmC;IAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,mBAAmB,GAAG,yBAAyB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;IACrF,IAAI,SAAoD,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QACtD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzC,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;gBAClC,GAAG,OAAO,CAAC,OAAO;gBAClB,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Small guards for reading untyped JSON (API replies, config files, stored logins). */
|
|
2
|
+
/** A non-null object that is not an array. */
|
|
3
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
4
|
+
export declare function asRecord(value: unknown): Record<string, unknown> | null;
|
|
5
|
+
/** The trimmed string, or undefined when it is not a string or only whitespace. */
|
|
6
|
+
export declare function nonEmptyString(value: unknown): string | undefined;
|
|
7
|
+
/** The number, or undefined when it is not a finite number (strings are not parsed). */
|
|
8
|
+
export declare function finiteNumber(value: unknown): number | undefined;
|
|
9
|
+
/** True when every key of `value` is one of `allowed`. */
|
|
10
|
+
export declare function hasOnlyKeys(value: Record<string, unknown>, allowed: readonly string[]): boolean;
|
|
11
|
+
//# sourceMappingURL=json-guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-guards.d.ts","sourceRoot":"","sources":["../../src/lib/json-guards.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAExF,8CAA8C;AAC9C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEvE;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIjE;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE/D;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAG/F"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Small guards for reading untyped JSON (API replies, config files, stored logins). */
|
|
2
|
+
/** A non-null object that is not an array. */
|
|
3
|
+
export function isRecord(value) {
|
|
4
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
export function asRecord(value) {
|
|
7
|
+
return isRecord(value) ? value : null;
|
|
8
|
+
}
|
|
9
|
+
/** The trimmed string, or undefined when it is not a string or only whitespace. */
|
|
10
|
+
export function nonEmptyString(value) {
|
|
11
|
+
if (typeof value !== "string")
|
|
12
|
+
return undefined;
|
|
13
|
+
const trimmed = value.trim();
|
|
14
|
+
return trimmed || undefined;
|
|
15
|
+
}
|
|
16
|
+
/** The number, or undefined when it is not a finite number (strings are not parsed). */
|
|
17
|
+
export function finiteNumber(value) {
|
|
18
|
+
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
19
|
+
}
|
|
20
|
+
/** True when every key of `value` is one of `allowed`. */
|
|
21
|
+
export function hasOnlyKeys(value, allowed) {
|
|
22
|
+
const allowedSet = new Set(allowed);
|
|
23
|
+
return Object.keys(value).every((key) => allowedSet.has(key));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=json-guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-guards.js","sourceRoot":"","sources":["../../src/lib/json-guards.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAExF,8CAA8C;AAC9C,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,WAAW,CAAC,KAA8B,EAAE,OAA0B;IACpF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
package/dist/lib/kilo.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ type KiloPassStateSuccess = {
|
|
|
15
15
|
overageUsd: number;
|
|
16
16
|
resetTimeIso?: string;
|
|
17
17
|
};
|
|
18
|
-
export type KiloPassStateResult = KiloPassStateSuccess | QuotaError | null;
|
|
19
18
|
export type KiloQuotaResult = (KiloPassStateSuccess & {
|
|
20
19
|
mode: "kilo_pass";
|
|
21
20
|
}) | {
|
|
@@ -26,7 +25,6 @@ export type KiloQuotaResult = (KiloPassStateSuccess & {
|
|
|
26
25
|
type KiloRequestOptions = {
|
|
27
26
|
requestTimeoutMs?: number;
|
|
28
27
|
};
|
|
29
|
-
export declare function queryKiloPassState(options?: KiloRequestOptions): Promise<KiloPassStateResult>;
|
|
30
28
|
export declare function queryKiloQuota(options?: KiloRequestOptions): Promise<KiloQuotaResult>;
|
|
31
29
|
export {};
|
|
32
30
|
//# sourceMappingURL=kilo.d.ts.map
|
package/dist/lib/kilo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kilo.d.ts","sourceRoot":"","sources":["../../src/lib/kilo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"kilo.d.ts","sourceRoot":"","sources":["../../src/lib/kilo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS7C,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,IAAI,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,CAAC,oBAAoB,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,GAC9C;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC9D,UAAU,GACV,IAAI,CAAC;AAKT,KAAK,kBAAkB,GAAG;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAwKxD,wBAAsB,cAAc,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,eAAe,CAAC,CAkC/F"}
|
package/dist/lib/kilo.js
CHANGED
|
@@ -5,15 +5,16 @@
|
|
|
5
5
|
* subscription-state endpoint, with a balance-only fallback for accounts
|
|
6
6
|
* without an active Kilo Pass.
|
|
7
7
|
*/
|
|
8
|
+
import { API_KEY_VENDORS, resolveApiKey } from "./api-key-resolver.js";
|
|
8
9
|
import { sanitizeSingleLineDisplayText } from "./display-sanitize.js";
|
|
9
10
|
import { fetchWithTimeout } from "./http.js";
|
|
10
|
-
import {
|
|
11
|
-
const
|
|
12
|
-
|
|
11
|
+
import { isRecord } from "./json-guards.js";
|
|
12
|
+
const KILO_PASS_STATE_URL = `https://app.kilo.ai/api/trpc/kiloPass.getState?${new URLSearchParams({
|
|
13
|
+
batch: "1",
|
|
14
|
+
input: JSON.stringify({ "0": null }),
|
|
15
|
+
})}`;
|
|
16
|
+
const KILO_BALANCE_URL = "https://api.kilo.ai/api/profile/balance";
|
|
13
17
|
const MAX_RESPONSE_BYTES = 64 * 1024;
|
|
14
|
-
function isRecord(value) {
|
|
15
|
-
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
16
|
-
}
|
|
17
18
|
function sanitizeMessage(text, secret, maxLength = 200) {
|
|
18
19
|
const redacted = secret ? text.split(secret).join("[redacted]") : text;
|
|
19
20
|
return (sanitizeSingleLineDisplayText(redacted) || "unknown").slice(0, maxLength);
|
|
@@ -61,79 +62,40 @@ function firstValidResetTimeIso(...values) {
|
|
|
61
62
|
}
|
|
62
63
|
return undefined;
|
|
63
64
|
}
|
|
64
|
-
function
|
|
65
|
-
return {
|
|
66
|
-
success: false,
|
|
67
|
-
reason: "no_active_subscription",
|
|
68
|
-
error: "Kilo Gateway state API returned no active Kilo Pass subscription",
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
function isNoActiveKiloPassResult(result) {
|
|
72
|
-
return !result.success && "reason" in result && result.reason === "no_active_subscription";
|
|
65
|
+
function stateError(error) {
|
|
66
|
+
return { success: false, error: `Kilo Gateway state API returned ${error}` };
|
|
73
67
|
}
|
|
74
68
|
function parseKiloPassState(payload) {
|
|
75
69
|
const item = Array.isArray(payload) ? payload[0] : payload;
|
|
76
|
-
|
|
77
|
-
return {
|
|
78
|
-
success: false,
|
|
79
|
-
error: "Kilo Gateway state API returned an unexpected response shape",
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
const result = item.result;
|
|
70
|
+
const result = isRecord(item) ? item.result : undefined;
|
|
83
71
|
const data = isRecord(result) ? result.data : undefined;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
error: "Kilo Gateway state API returned an unexpected response shape",
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
if ("json" in data && !isRecord(data.json)) {
|
|
91
|
-
return {
|
|
92
|
-
success: false,
|
|
93
|
-
error: "Kilo Gateway state API returned an unexpected response shape",
|
|
94
|
-
};
|
|
72
|
+
// The batched tRPC reply wraps the state in `json`; the unbatched one does not.
|
|
73
|
+
if (!isRecord(data) || ("json" in data && !isRecord(data.json))) {
|
|
74
|
+
return stateError("an unexpected response shape");
|
|
95
75
|
}
|
|
96
76
|
const root = isRecord(data.json) ? data.json : data;
|
|
97
|
-
if (!isRecord(root)) {
|
|
98
|
-
return {
|
|
99
|
-
success: false,
|
|
100
|
-
error: "Kilo Gateway state API returned an unexpected response shape",
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
77
|
const subscription = root.subscription;
|
|
104
78
|
if (subscription === null || !("subscription" in root)) {
|
|
105
|
-
return noActiveKiloPass();
|
|
106
|
-
}
|
|
107
|
-
if (!isRecord(subscription)) {
|
|
108
79
|
return {
|
|
109
80
|
success: false,
|
|
110
|
-
|
|
81
|
+
reason: "no_active_subscription",
|
|
82
|
+
error: "Kilo Gateway state API returned no active Kilo Pass subscription",
|
|
111
83
|
};
|
|
112
84
|
}
|
|
85
|
+
if (!isRecord(subscription))
|
|
86
|
+
return stateError("an invalid Kilo Pass subscription");
|
|
113
87
|
const baseCreditsUsd = nonnegativeNumber(subscription.currentPeriodBaseCreditsUsd);
|
|
114
88
|
const usageUsd = nonnegativeNumber(subscription.currentPeriodUsageUsd);
|
|
115
89
|
const rawBonusCreditsUsd = subscription.currentPeriodBonusCreditsUsd;
|
|
116
90
|
const bonusCreditsUsd = rawBonusCreditsUsd === null || rawBonusCreditsUsd === undefined
|
|
117
91
|
? 0
|
|
118
92
|
: nonnegativeNumber(rawBonusCreditsUsd);
|
|
119
|
-
if (baseCreditsUsd === null)
|
|
120
|
-
return
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
if (usageUsd === null) {
|
|
126
|
-
return {
|
|
127
|
-
success: false,
|
|
128
|
-
error: "Kilo Gateway state API returned invalid currentPeriodUsageUsd",
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
if (bonusCreditsUsd === null) {
|
|
132
|
-
return {
|
|
133
|
-
success: false,
|
|
134
|
-
error: "Kilo Gateway state API returned invalid currentPeriodBonusCreditsUsd",
|
|
135
|
-
};
|
|
136
|
-
}
|
|
93
|
+
if (baseCreditsUsd === null)
|
|
94
|
+
return stateError("invalid currentPeriodBaseCreditsUsd");
|
|
95
|
+
if (usageUsd === null)
|
|
96
|
+
return stateError("invalid currentPeriodUsageUsd");
|
|
97
|
+
if (bonusCreditsUsd === null)
|
|
98
|
+
return stateError("invalid currentPeriodBonusCreditsUsd");
|
|
137
99
|
const resetTimeIso = firstValidResetTimeIso(subscription.nextBillingAt, subscription.nextRenewalAt);
|
|
138
100
|
const totalCreditsUsd = baseCreditsUsd + bonusCreditsUsd;
|
|
139
101
|
const remainingUsd = Math.round(Math.max(0, totalCreditsUsd - usageUsd) * 100) / 100;
|
|
@@ -164,45 +126,9 @@ function parseKiloBalance(payload) {
|
|
|
164
126
|
}
|
|
165
127
|
return { success: true, balanceUsd };
|
|
166
128
|
}
|
|
167
|
-
async function
|
|
168
|
-
const query = new URLSearchParams({
|
|
169
|
-
batch: "1",
|
|
170
|
-
input: JSON.stringify({ "0": null }),
|
|
171
|
-
});
|
|
172
|
-
try {
|
|
173
|
-
return await fetchWithTimeout(`${KILO_PASS_STATE_ENDPOINT}?${query.toString()}`, {
|
|
174
|
-
request: {
|
|
175
|
-
method: "GET",
|
|
176
|
-
headers: {
|
|
177
|
-
Accept: "application/json",
|
|
178
|
-
Authorization: `Bearer ${key}`,
|
|
179
|
-
"Content-Type": "application/json",
|
|
180
|
-
},
|
|
181
|
-
redirect: "manual",
|
|
182
|
-
},
|
|
183
|
-
timeoutMs: options.requestTimeoutMs,
|
|
184
|
-
consume: async (response) => {
|
|
185
|
-
const text = await readResponseText(response, "state");
|
|
186
|
-
if (!response.ok) {
|
|
187
|
-
return {
|
|
188
|
-
success: false,
|
|
189
|
-
error: `Kilo Gateway state API error ${response.status}: ${sanitizeMessage(text, key)}`,
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
return parseKiloPassState(JSON.parse(text));
|
|
193
|
-
},
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
catch (error) {
|
|
197
|
-
return {
|
|
198
|
-
success: false,
|
|
199
|
-
error: sanitizeMessage(error instanceof Error ? error.message : String(error), key),
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
async function requestKiloBalance(key, options) {
|
|
129
|
+
async function requestKiloJson(url, endpoint, key, options, parse) {
|
|
204
130
|
try {
|
|
205
|
-
return await fetchWithTimeout(
|
|
131
|
+
return await fetchWithTimeout(url, {
|
|
206
132
|
request: {
|
|
207
133
|
method: "GET",
|
|
208
134
|
headers: {
|
|
@@ -214,14 +140,14 @@ async function requestKiloBalance(key, options) {
|
|
|
214
140
|
},
|
|
215
141
|
timeoutMs: options.requestTimeoutMs,
|
|
216
142
|
consume: async (response) => {
|
|
217
|
-
const text = await readResponseText(response,
|
|
143
|
+
const text = await readResponseText(response, endpoint);
|
|
218
144
|
if (!response.ok) {
|
|
219
145
|
return {
|
|
220
146
|
success: false,
|
|
221
|
-
error: `Kilo Gateway
|
|
147
|
+
error: `Kilo Gateway ${endpoint} API error ${response.status}: ${sanitizeMessage(text, key)}`,
|
|
222
148
|
};
|
|
223
149
|
}
|
|
224
|
-
return
|
|
150
|
+
return parse(JSON.parse(text));
|
|
225
151
|
},
|
|
226
152
|
});
|
|
227
153
|
}
|
|
@@ -232,28 +158,19 @@ async function requestKiloBalance(key, options) {
|
|
|
232
158
|
};
|
|
233
159
|
}
|
|
234
160
|
}
|
|
235
|
-
export async function queryKiloPassState(options = {}) {
|
|
236
|
-
const resolved = await resolveKiloApiKey();
|
|
237
|
-
if (!resolved)
|
|
238
|
-
return null;
|
|
239
|
-
const result = await requestKiloPassState(resolved.key, options);
|
|
240
|
-
if (isNoActiveKiloPassResult(result)) {
|
|
241
|
-
return { success: false, error: result.error };
|
|
242
|
-
}
|
|
243
|
-
return result;
|
|
244
|
-
}
|
|
245
161
|
export async function queryKiloQuota(options = {}) {
|
|
246
|
-
const resolved = await
|
|
162
|
+
const resolved = await resolveApiKey(API_KEY_VENDORS.kilo);
|
|
247
163
|
if (!resolved)
|
|
248
164
|
return null;
|
|
249
|
-
const passResult = await
|
|
165
|
+
const passResult = await requestKiloJson(KILO_PASS_STATE_URL, "state", resolved.key, options, parseKiloPassState);
|
|
250
166
|
if (passResult.success) {
|
|
251
167
|
return { ...passResult, mode: "kilo_pass" };
|
|
252
168
|
}
|
|
253
|
-
|
|
169
|
+
// Only a valid reply without an active pass falls back to the balance.
|
|
170
|
+
if (!("reason" in passResult)) {
|
|
254
171
|
return passResult;
|
|
255
172
|
}
|
|
256
|
-
const balanceResult = await
|
|
173
|
+
const balanceResult = await requestKiloJson(KILO_BALANCE_URL, "balance", resolved.key, options, parseKiloBalance);
|
|
257
174
|
if (balanceResult.success) {
|
|
258
175
|
return { ...balanceResult, mode: "gateway_balance" };
|
|
259
176
|
}
|
package/dist/lib/kilo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kilo.js","sourceRoot":"","sources":["../../src/lib/kilo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"kilo.js","sourceRoot":"","sources":["../../src/lib/kilo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export type KimiQuotaEndpointId = "global" | "cn";
|
|
2
|
-
|
|
2
|
+
interface KimiQuotaEndpoint {
|
|
3
3
|
id: KimiQuotaEndpointId;
|
|
4
4
|
label: string;
|
|
5
5
|
apiBaseUrl: string;
|
|
6
6
|
quotaUrl: string;
|
|
7
7
|
}
|
|
8
|
-
export declare const KIMI_QUOTA_ENDPOINTS: Readonly<Record<KimiQuotaEndpointId, KimiQuotaEndpoint>>;
|
|
9
8
|
export declare function getKimiQuotaEndpoint(id: KimiQuotaEndpointId): KimiQuotaEndpoint;
|
|
9
|
+
export {};
|
|
10
10
|
//# sourceMappingURL=kimi-endpoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kimi-endpoints.d.ts","sourceRoot":"","sources":["../../src/lib/kimi-endpoints.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,IAAI,CAAC;AAElD,
|
|
1
|
+
{"version":3,"file":"kimi-endpoints.d.ts","sourceRoot":"","sources":["../../src/lib/kimi-endpoints.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,IAAI,CAAC;AAElD,UAAU,iBAAiB;IACzB,EAAE,EAAE,mBAAmB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiBD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,mBAAmB,GAAG,iBAAiB,CAE/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kimi-endpoints.js","sourceRoot":"","sources":["../../src/lib/kimi-endpoints.ts"],"names":[],"mappings":"AASA,MAAM,
|
|
1
|
+
{"version":3,"file":"kimi-endpoints.js","sourceRoot":"","sources":["../../src/lib/kimi-endpoints.ts"],"names":[],"mappings":"AASA,MAAM,oBAAoB,GAA6D;IACrF,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,+BAA+B;QAC3C,QAAQ,EAAE,sCAAsC;KACjD;IACD,EAAE,EAAE;QACF,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,gCAAgC;QAC5C,QAAQ,EAAE,uCAAuC;KAClD;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,EAAuB;IAC1D,OAAO,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC"}
|
package/dist/lib/kimi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kimi.d.ts","sourceRoot":"","sources":["../../src/lib/kimi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kimi.d.ts","sourceRoot":"","sources":["../../src/lib/kimi.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAC;AA8I9D,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,UAAU,CAAC,CAqCtB"}
|
package/dist/lib/kimi.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { sanitizeDisplaySnippet, sanitizeDisplayText } from "./display-sanitize.js";
|
|
2
2
|
import { clampPercent } from "./format-utils.js";
|
|
3
3
|
import { fetchWithTimeout } from "./http.js";
|
|
4
|
+
import { nonEmptyString } from "./json-guards.js";
|
|
4
5
|
import { getKimiQuotaEndpoint } from "./kimi-endpoints.js";
|
|
5
6
|
const USER_AGENT = "OpenCode-Quota-Toast/1.0";
|
|
6
7
|
function getFiniteNumber(value) {
|
|
@@ -15,9 +16,6 @@ function getFiniteNumber(value) {
|
|
|
15
16
|
}
|
|
16
17
|
return undefined;
|
|
17
18
|
}
|
|
18
|
-
function getNonEmptyString(value) {
|
|
19
|
-
return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
|
20
|
-
}
|
|
21
19
|
function parseResetTimeIso(data) {
|
|
22
20
|
for (const key of ["reset_at", "resetAt", "reset_time", "resetTime"]) {
|
|
23
21
|
const val = data[key];
|
|
@@ -46,7 +44,7 @@ function parseResetTimeIso(data) {
|
|
|
46
44
|
}
|
|
47
45
|
function buildLimitLabel(item, detail, window, index) {
|
|
48
46
|
for (const key of ["name", "title", "scope"]) {
|
|
49
|
-
const val =
|
|
47
|
+
const val = nonEmptyString(item[key] ?? detail[key]);
|
|
50
48
|
if (val)
|
|
51
49
|
return val;
|
|
52
50
|
}
|
|
@@ -69,7 +67,7 @@ function buildLimitLabel(item, detail, window, index) {
|
|
|
69
67
|
}
|
|
70
68
|
return `Limit #${index + 1}`;
|
|
71
69
|
}
|
|
72
|
-
function
|
|
70
|
+
function toUsageWindow(data, defaultLabel) {
|
|
73
71
|
const limit = getFiniteNumber(data.limit);
|
|
74
72
|
let used = getFiniteNumber(data.used);
|
|
75
73
|
if (used === undefined) {
|
|
@@ -85,121 +83,77 @@ function toUsageRow(data, defaultLabel) {
|
|
|
85
83
|
const safeLimit = limit ?? 0;
|
|
86
84
|
const percentRemaining = safeLimit > 0 ? clampPercent(((safeLimit - safeUsed) / safeLimit) * 100) : 0;
|
|
87
85
|
return {
|
|
88
|
-
label:
|
|
86
|
+
label: nonEmptyString(data.name ?? data.title) ?? defaultLabel,
|
|
89
87
|
used: safeUsed,
|
|
90
88
|
limit: safeLimit,
|
|
91
89
|
percentRemaining,
|
|
92
90
|
resetTimeIso: parseResetTimeIso(data),
|
|
93
91
|
};
|
|
94
92
|
}
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return {
|
|
100
|
-
usage: data.usage ?? payload.usage,
|
|
101
|
-
limits: data.limits ?? payload.limits,
|
|
102
|
-
topLevelKeys,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
return { usage: payload.usage, limits: payload.limits, topLevelKeys };
|
|
106
|
-
}
|
|
107
|
-
function describeUnexpectedPayload(topLevelKeys) {
|
|
108
|
-
const keys = topLevelKeys.length ? topLevelKeys.join(", ") : "(empty)";
|
|
109
|
-
return `Unexpected response structure (keys: ${keys})`;
|
|
93
|
+
function asObject(value) {
|
|
94
|
+
return value !== null && typeof value === "object"
|
|
95
|
+
? value
|
|
96
|
+
: undefined;
|
|
110
97
|
}
|
|
111
|
-
|
|
112
|
-
|
|
98
|
+
/** The weekly `usage` row, then one row per `limits` item (each may sit under `data`). */
|
|
99
|
+
function parseKimiWindows(payload) {
|
|
100
|
+
const data = asObject(payload.data);
|
|
101
|
+
const usage = asObject(data?.usage ?? payload.usage);
|
|
102
|
+
const limits = data?.limits ?? payload.limits;
|
|
113
103
|
const windows = [];
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
windows.push({
|
|
118
|
-
label: row.label,
|
|
119
|
-
used: row.used,
|
|
120
|
-
limit: row.limit,
|
|
121
|
-
percentRemaining: row.percentRemaining,
|
|
122
|
-
resetTimeIso: row.resetTimeIso,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}
|
|
104
|
+
const usageWindow = usage ? toUsageWindow(usage, "Weekly limit") : null;
|
|
105
|
+
if (usageWindow)
|
|
106
|
+
windows.push(usageWindow);
|
|
126
107
|
if (Array.isArray(limits)) {
|
|
127
|
-
for (
|
|
128
|
-
const
|
|
129
|
-
if (
|
|
108
|
+
for (const [index, item] of limits.entries()) {
|
|
109
|
+
const itemMap = asObject(item);
|
|
110
|
+
if (!itemMap)
|
|
130
111
|
continue;
|
|
131
|
-
const
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const windowRaw = itemMap.window;
|
|
137
|
-
const window = windowRaw !== null && typeof windowRaw === "object"
|
|
138
|
-
? windowRaw
|
|
139
|
-
: {};
|
|
140
|
-
const label = buildLimitLabel(itemMap, detail, window, i);
|
|
141
|
-
const row = toUsageRow(detail, label);
|
|
142
|
-
if (row) {
|
|
143
|
-
windows.push({
|
|
144
|
-
label: row.label,
|
|
145
|
-
used: row.used,
|
|
146
|
-
limit: row.limit,
|
|
147
|
-
percentRemaining: row.percentRemaining,
|
|
148
|
-
resetTimeIso: row.resetTimeIso,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
112
|
+
const detail = asObject(itemMap.detail) ?? itemMap;
|
|
113
|
+
const window = asObject(itemMap.window) ?? {};
|
|
114
|
+
const limitWindow = toUsageWindow(detail, buildLimitLabel(itemMap, detail, window, index));
|
|
115
|
+
if (limitWindow)
|
|
116
|
+
windows.push(limitWindow);
|
|
151
117
|
}
|
|
152
118
|
}
|
|
153
|
-
return
|
|
119
|
+
return windows;
|
|
154
120
|
}
|
|
155
|
-
async function
|
|
121
|
+
export async function queryKimiQuota(options) {
|
|
122
|
+
const endpoint = getKimiQuotaEndpoint(options.endpoint);
|
|
123
|
+
const label = options.label ?? endpoint.label;
|
|
156
124
|
try {
|
|
157
|
-
return await fetchWithTimeout(
|
|
125
|
+
return await fetchWithTimeout(endpoint.quotaUrl, {
|
|
158
126
|
request: {
|
|
159
127
|
headers: {
|
|
160
|
-
Authorization: `Bearer ${apiKey}`,
|
|
128
|
+
Authorization: `Bearer ${options.apiKey}`,
|
|
161
129
|
"User-Agent": USER_AGENT,
|
|
162
130
|
},
|
|
163
131
|
},
|
|
164
|
-
timeoutMs: requestTimeoutMs,
|
|
132
|
+
timeoutMs: options.requestTimeoutMs,
|
|
165
133
|
consume: async (resp) => {
|
|
166
134
|
if (!resp.ok) {
|
|
167
135
|
const text = await resp.text();
|
|
168
136
|
return {
|
|
169
|
-
|
|
137
|
+
success: false,
|
|
170
138
|
error: `Kimi API error ${resp.status}: ${sanitizeDisplaySnippet(text, 120)}`,
|
|
171
139
|
};
|
|
172
140
|
}
|
|
173
141
|
const payload = (await resp.json());
|
|
174
|
-
|
|
175
|
-
|
|
142
|
+
// Read the keys first: a `null` body must fail with Object.keys' error.
|
|
143
|
+
const topLevelKeys = Object.keys(payload);
|
|
144
|
+
const windows = parseKimiWindows(payload);
|
|
145
|
+
if (windows.length > 0)
|
|
146
|
+
return { success: true, label, windows };
|
|
147
|
+
const keys = topLevelKeys.length ? topLevelKeys.join(", ") : "(empty)";
|
|
148
|
+
return { success: false, error: `Unexpected response structure (keys: ${keys})` };
|
|
176
149
|
},
|
|
177
150
|
});
|
|
178
151
|
}
|
|
179
152
|
catch (err) {
|
|
180
153
|
return {
|
|
181
|
-
|
|
154
|
+
success: false,
|
|
182
155
|
error: sanitizeDisplayText(err instanceof Error ? err.message : String(err)),
|
|
183
156
|
};
|
|
184
157
|
}
|
|
185
158
|
}
|
|
186
|
-
export async function queryKimiQuota(options) {
|
|
187
|
-
const endpoint = getKimiQuotaEndpoint(options.endpoint);
|
|
188
|
-
const result = await fetchKimiQuotaFromUrl(endpoint.quotaUrl, options.apiKey, options.requestTimeoutMs);
|
|
189
|
-
if (result.ok && result.windows.length > 0) {
|
|
190
|
-
return {
|
|
191
|
-
success: true,
|
|
192
|
-
label: options.label ?? endpoint.label,
|
|
193
|
-
windows: result.windows,
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
if (!result.ok) {
|
|
197
|
-
return { success: false, error: result.error };
|
|
198
|
-
}
|
|
199
|
-
// Succeeded structurally but had no usable windows.
|
|
200
|
-
return {
|
|
201
|
-
success: false,
|
|
202
|
-
error: describeUnexpectedPayload(result.topLevelKeys),
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
159
|
//# sourceMappingURL=kimi.js.map
|