@slkiser/opencode-quota 4.10.6 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -127
- package/dist/bin/opencode-quota.d.ts +6 -0
- package/dist/bin/opencode-quota.d.ts.map +1 -1
- package/dist/bin/opencode-quota.js +17 -0
- package/dist/bin/opencode-quota.js.map +1 -1
- package/dist/data/modelsdev-pricing.min.json +83 -2
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/accounting-format.js +1 -1
- package/dist/lib/accounting-format.js.map +1 -1
- package/dist/lib/alibaba-auth.d.ts +5 -5
- package/dist/lib/alibaba-auth.d.ts.map +1 -1
- package/dist/lib/alibaba-auth.js +15 -8
- package/dist/lib/alibaba-auth.js.map +1 -1
- package/dist/lib/alibaba-token-plan.d.ts +7 -4
- package/dist/lib/alibaba-token-plan.d.ts.map +1 -1
- package/dist/lib/alibaba-token-plan.js +32 -10
- package/dist/lib/alibaba-token-plan.js.map +1 -1
- package/dist/lib/anthropic-auth.d.ts +4 -1
- package/dist/lib/anthropic-auth.d.ts.map +1 -1
- package/dist/lib/anthropic-auth.js +5 -1
- package/dist/lib/anthropic-auth.js.map +1 -1
- package/dist/lib/anthropic.d.ts +7 -1
- package/dist/lib/anthropic.d.ts.map +1 -1
- package/dist/lib/anthropic.js +61 -7
- package/dist/lib/anthropic.js.map +1 -1
- package/dist/lib/api-key-resolver.d.ts +27 -16
- package/dist/lib/api-key-resolver.d.ts.map +1 -1
- package/dist/lib/api-key-resolver.js +46 -19
- package/dist/lib/api-key-resolver.js.map +1 -1
- package/dist/lib/chutes-config.d.ts +2 -2
- package/dist/lib/chutes-config.d.ts.map +1 -1
- package/dist/lib/chutes-config.js +4 -4
- package/dist/lib/chutes-config.js.map +1 -1
- package/dist/lib/cli-reports.d.ts +30 -0
- package/dist/lib/cli-reports.d.ts.map +1 -0
- package/dist/lib/cli-reports.js +172 -0
- package/dist/lib/cli-reports.js.map +1 -0
- package/dist/lib/cli-show.d.ts +14 -1
- package/dist/lib/cli-show.d.ts.map +1 -1
- package/dist/lib/cli-show.js +40 -138
- package/dist/lib/cli-show.js.map +1 -1
- package/dist/lib/cli-status.d.ts.map +1 -1
- package/dist/lib/cli-status.js +9 -36
- package/dist/lib/cli-status.js.map +1 -1
- package/dist/lib/config-file-utils.d.ts +10 -13
- package/dist/lib/config-file-utils.d.ts.map +1 -1
- package/dist/lib/config-file-utils.js +28 -30
- package/dist/lib/config-file-utils.js.map +1 -1
- package/dist/lib/config.d.ts +2 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +6 -17
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/copilot.d.ts +4 -1
- package/dist/lib/copilot.d.ts.map +1 -1
- package/dist/lib/copilot.js +17 -19
- package/dist/lib/copilot.js.map +1 -1
- package/dist/lib/cursor-detection.d.ts +1 -1
- package/dist/lib/cursor-detection.d.ts.map +1 -1
- package/dist/lib/cursor-detection.js +54 -51
- package/dist/lib/cursor-detection.js.map +1 -1
- package/dist/lib/cursor-pricing.d.ts +1 -1
- package/dist/lib/cursor-pricing.d.ts.map +1 -1
- package/dist/lib/cursor-pricing.js +85 -0
- package/dist/lib/cursor-pricing.js.map +1 -1
- package/dist/lib/deepseek-auth.d.ts +2 -2
- package/dist/lib/deepseek-auth.d.ts.map +1 -1
- package/dist/lib/deepseek-auth.js +4 -4
- package/dist/lib/deepseek-auth.js.map +1 -1
- package/dist/lib/display-sanitize.js +1 -1
- package/dist/lib/display-sanitize.js.map +1 -1
- package/dist/lib/entries.d.ts +7 -2
- package/dist/lib/entries.d.ts.map +1 -1
- package/dist/lib/format-utils.d.ts +1 -5
- package/dist/lib/format-utils.d.ts.map +1 -1
- package/dist/lib/format-utils.js +1 -4
- package/dist/lib/format-utils.js.map +1 -1
- package/dist/lib/glm-coding-plan.d.ts +1 -0
- package/dist/lib/glm-coding-plan.d.ts.map +1 -1
- package/dist/lib/glm-coding-plan.js +3 -1
- package/dist/lib/glm-coding-plan.js.map +1 -1
- package/dist/lib/google-agy.d.ts +6 -12
- package/dist/lib/google-agy.d.ts.map +1 -1
- package/dist/lib/google-agy.js +26 -24
- package/dist/lib/google-agy.js.map +1 -1
- package/dist/lib/google-companion-credentials.d.ts.map +1 -1
- package/dist/lib/google-companion-credentials.js +76 -26
- package/dist/lib/google-companion-credentials.js.map +1 -1
- package/dist/lib/google-gemini-cli.d.ts +7 -12
- package/dist/lib/google-gemini-cli.d.ts.map +1 -1
- package/dist/lib/google-gemini-cli.js +42 -31
- package/dist/lib/google-gemini-cli.js.map +1 -1
- package/dist/lib/init-installer.d.ts +3 -1
- package/dist/lib/init-installer.d.ts.map +1 -1
- package/dist/lib/init-installer.js +71 -174
- package/dist/lib/init-installer.js.map +1 -1
- package/dist/lib/kilo-config.d.ts +2 -2
- package/dist/lib/kilo-config.d.ts.map +1 -1
- package/dist/lib/kilo-config.js +6 -5
- package/dist/lib/kilo-config.js.map +1 -1
- package/dist/lib/kimi-auth.d.ts +2 -2
- package/dist/lib/kimi-auth.d.ts.map +1 -1
- package/dist/lib/kimi-auth.js +4 -4
- package/dist/lib/kimi-auth.js.map +1 -1
- package/dist/lib/maintainer-announcements.d.ts.map +1 -1
- package/dist/lib/maintainer-announcements.js +5 -5
- package/dist/lib/maintainer-announcements.js.map +1 -1
- package/dist/lib/markdown-table.d.ts +36 -0
- package/dist/lib/markdown-table.d.ts.map +1 -1
- package/dist/lib/markdown-table.js +56 -0
- package/dist/lib/markdown-table.js.map +1 -1
- package/dist/lib/mimo-config.d.ts.map +1 -1
- package/dist/lib/mimo-config.js +2 -3
- package/dist/lib/mimo-config.js.map +1 -1
- package/dist/lib/minimax-auth.d.ts +6 -6
- package/dist/lib/minimax-auth.d.ts.map +1 -1
- package/dist/lib/minimax-auth.js +18 -17
- package/dist/lib/minimax-auth.js.map +1 -1
- package/dist/lib/nanogpt-config.d.ts +2 -2
- package/dist/lib/nanogpt-config.d.ts.map +1 -1
- package/dist/lib/nanogpt-config.js +4 -4
- package/dist/lib/nanogpt-config.js.map +1 -1
- package/dist/lib/ollama-cloud-config.d.ts +2 -2
- package/dist/lib/ollama-cloud-config.d.ts.map +1 -1
- package/dist/lib/ollama-cloud-config.js +6 -5
- package/dist/lib/ollama-cloud-config.js.map +1 -1
- package/dist/lib/openai.d.ts +7 -2
- package/dist/lib/openai.d.ts.map +1 -1
- package/dist/lib/openai.js +22 -8
- package/dist/lib/openai.js.map +1 -1
- package/dist/lib/opencode-auth-sqlite.d.ts +17 -0
- package/dist/lib/opencode-auth-sqlite.d.ts.map +1 -0
- package/dist/lib/opencode-auth-sqlite.js +105 -0
- package/dist/lib/opencode-auth-sqlite.js.map +1 -0
- package/dist/lib/opencode-auth.d.ts +127 -14
- package/dist/lib/opencode-auth.d.ts.map +1 -1
- package/dist/lib/opencode-auth.js +374 -46
- package/dist/lib/opencode-auth.js.map +1 -1
- package/dist/lib/opencode-config-providers.d.ts.map +1 -1
- package/dist/lib/opencode-config-providers.js +17 -18
- package/dist/lib/opencode-config-providers.js.map +1 -1
- package/dist/lib/opencode-console-auth.d.ts +47 -0
- package/dist/lib/opencode-console-auth.d.ts.map +1 -0
- package/dist/lib/opencode-console-auth.js +63 -0
- package/dist/lib/opencode-console-auth.js.map +1 -0
- package/dist/lib/opencode-db-path.d.ts +9 -0
- package/dist/lib/opencode-db-path.d.ts.map +1 -0
- package/dist/lib/opencode-db-path.js +16 -0
- package/dist/lib/opencode-db-path.js.map +1 -0
- package/dist/lib/opencode-go-auth.d.ts +4 -2
- package/dist/lib/opencode-go-auth.d.ts.map +1 -1
- package/dist/lib/opencode-go-auth.js +9 -5
- package/dist/lib/opencode-go-auth.js.map +1 -1
- package/dist/lib/opencode-go.d.ts +12 -0
- package/dist/lib/opencode-go.d.ts.map +1 -1
- package/dist/lib/opencode-go.js +113 -0
- package/dist/lib/opencode-go.js.map +1 -1
- package/dist/lib/opencode-runtime-paths.d.ts +6 -12
- package/dist/lib/opencode-runtime-paths.d.ts.map +1 -1
- package/dist/lib/opencode-runtime-paths.js +12 -82
- package/dist/lib/opencode-runtime-paths.js.map +1 -1
- package/dist/lib/opencode-sqlite.d.ts +4 -0
- package/dist/lib/opencode-sqlite.d.ts.map +1 -1
- package/dist/lib/opencode-sqlite.js +17 -52
- package/dist/lib/opencode-sqlite.js.map +1 -1
- package/dist/lib/opencode-storage.d.ts +4 -8
- package/dist/lib/opencode-storage.d.ts.map +1 -1
- package/dist/lib/opencode-storage.js +66 -90
- package/dist/lib/opencode-storage.js.map +1 -1
- package/dist/lib/opencode-version.d.ts +6 -0
- package/dist/lib/opencode-version.d.ts.map +1 -0
- package/dist/lib/opencode-version.js +26 -0
- package/dist/lib/opencode-version.js.map +1 -0
- package/dist/lib/opencode-zen.d.ts +10 -4
- package/dist/lib/opencode-zen.d.ts.map +1 -1
- package/dist/lib/opencode-zen.js +11 -11
- package/dist/lib/opencode-zen.js.map +1 -1
- package/dist/lib/provider-registration.d.ts +3 -4
- package/dist/lib/provider-registration.d.ts.map +1 -1
- package/dist/lib/provider-registration.js +3 -4
- package/dist/lib/provider-registration.js.map +1 -1
- package/dist/lib/quota-columns.d.ts +38 -0
- package/dist/lib/quota-columns.d.ts.map +1 -0
- package/dist/lib/quota-columns.js +129 -0
- package/dist/lib/quota-columns.js.map +1 -0
- package/dist/lib/quota-command-format.d.ts +11 -0
- package/dist/lib/quota-command-format.d.ts.map +1 -1
- package/dist/lib/quota-command-format.js +80 -27
- package/dist/lib/quota-command-format.js.map +1 -1
- package/dist/lib/quota-dialog-command-specs.d.ts +63 -0
- package/dist/lib/quota-dialog-command-specs.d.ts.map +1 -0
- package/dist/lib/quota-dialog-command-specs.js +145 -0
- package/dist/lib/quota-dialog-command-specs.js.map +1 -0
- package/dist/lib/quota-dialog-commands.d.ts +3 -25
- package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
- package/dist/lib/quota-dialog-commands.js +125 -231
- package/dist/lib/quota-dialog-commands.js.map +1 -1
- package/dist/lib/quota-export.d.ts.map +1 -1
- package/dist/lib/quota-export.js +1 -0
- package/dist/lib/quota-export.js.map +1 -1
- package/dist/lib/quota-providers-remote.d.ts +2 -2
- package/dist/lib/quota-providers-remote.d.ts.map +1 -1
- package/dist/lib/quota-providers-remote.js +6 -4
- package/dist/lib/quota-providers-remote.js.map +1 -1
- package/dist/lib/quota-render-data.d.ts +3 -0
- package/dist/lib/quota-render-data.d.ts.map +1 -1
- package/dist/lib/quota-render-data.js +2 -0
- package/dist/lib/quota-render-data.js.map +1 -1
- package/dist/lib/quota-report-message.d.ts +22 -0
- package/dist/lib/quota-report-message.d.ts.map +1 -0
- package/dist/lib/quota-report-message.js +36 -0
- package/dist/lib/quota-report-message.js.map +1 -0
- package/dist/lib/quota-runtime-context.d.ts +1 -0
- package/dist/lib/quota-runtime-context.d.ts.map +1 -1
- package/dist/lib/quota-runtime-context.js +1 -0
- package/dist/lib/quota-runtime-context.js.map +1 -1
- package/dist/lib/quota-state-codec.js +5 -5
- package/dist/lib/quota-state-codec.js.map +1 -1
- package/dist/lib/quota-stats-format.d.ts +8 -3
- package/dist/lib/quota-stats-format.d.ts.map +1 -1
- package/dist/lib/quota-stats-format.js +36 -37
- package/dist/lib/quota-stats-format.js.map +1 -1
- package/dist/lib/quota-stats.js +2 -1
- package/dist/lib/quota-stats.js.map +1 -1
- package/dist/lib/quota-status.d.ts +7 -12
- package/dist/lib/quota-status.d.ts.map +1 -1
- package/dist/lib/quota-status.js +42 -47
- package/dist/lib/quota-status.js.map +1 -1
- package/dist/lib/quota-surface-data.d.ts +26 -0
- package/dist/lib/quota-surface-data.d.ts.map +1 -0
- package/dist/lib/quota-surface-data.js +299 -0
- package/dist/lib/quota-surface-data.js.map +1 -0
- package/dist/lib/report-document.d.ts +56 -2
- package/dist/lib/report-document.d.ts.map +1 -1
- package/dist/lib/report-document.js +105 -24
- package/dist/lib/report-document.js.map +1 -1
- package/dist/lib/scoped-update-migration.d.ts +4 -4
- package/dist/lib/scoped-update-migration.d.ts.map +1 -1
- package/dist/lib/scoped-update-migration.js +11 -18
- package/dist/lib/scoped-update-migration.js.map +1 -1
- package/dist/lib/scoped-update.d.ts +5 -1
- package/dist/lib/scoped-update.d.ts.map +1 -1
- package/dist/lib/scoped-update.js +73 -51
- package/dist/lib/scoped-update.js.map +1 -1
- package/dist/lib/synthetic-config.d.ts +2 -2
- package/dist/lib/synthetic-config.d.ts.map +1 -1
- package/dist/lib/synthetic-config.js +4 -4
- package/dist/lib/synthetic-config.js.map +1 -1
- package/dist/lib/toast-format-grouped.js +1 -1
- package/dist/lib/toast-format-grouped.js.map +1 -1
- package/dist/lib/tui-panel-state.d.ts +0 -49
- package/dist/lib/tui-panel-state.d.ts.map +1 -1
- package/dist/lib/tui-panel-state.js +1 -41
- package/dist/lib/tui-panel-state.js.map +1 -1
- package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
- package/dist/lib/tui-sidebar-format.js +8 -1
- package/dist/lib/tui-sidebar-format.js.map +1 -1
- package/dist/lib/types.d.ts +26 -7
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +1 -2
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/xai.d.ts +5 -1
- package/dist/lib/xai.d.ts.map +1 -1
- package/dist/lib/xai.js +13 -4
- package/dist/lib/xai.js.map +1 -1
- package/dist/lib/zai-auth.d.ts +2 -2
- package/dist/lib/zai-auth.d.ts.map +1 -1
- package/dist/lib/zai-auth.js +4 -4
- package/dist/lib/zai-auth.js.map +1 -1
- package/dist/lib/zai.d.ts +1 -0
- package/dist/lib/zai.d.ts.map +1 -1
- package/dist/lib/zai.js.map +1 -1
- package/dist/lib/zhipu-auth.d.ts +2 -2
- package/dist/lib/zhipu-auth.d.ts.map +1 -1
- package/dist/lib/zhipu-auth.js +4 -4
- package/dist/lib/zhipu-auth.js.map +1 -1
- package/dist/lib/zhipu.d.ts +1 -0
- package/dist/lib/zhipu.d.ts.map +1 -1
- package/dist/lib/zhipu.js.map +1 -1
- package/dist/plugin.d.ts +6 -9
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +217 -259
- 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 +1 -1
- 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 +1 -0
- package/dist/providers/alibaba-token-plan.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +83 -1
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/cache-policies.d.ts +2 -2
- package/dist/providers/cache-policies.d.ts.map +1 -1
- package/dist/providers/cache-policies.js +10 -9
- package/dist/providers/cache-policies.js.map +1 -1
- package/dist/providers/copilot.d.ts.map +1 -1
- package/dist/providers/copilot.js +60 -9
- package/dist/providers/copilot.js.map +1 -1
- package/dist/providers/deepseek.js +1 -1
- package/dist/providers/deepseek.js.map +1 -1
- package/dist/providers/glm-coding-plan-provider.d.ts +13 -1
- package/dist/providers/glm-coding-plan-provider.d.ts.map +1 -1
- package/dist/providers/glm-coding-plan-provider.js +53 -0
- package/dist/providers/glm-coding-plan-provider.js.map +1 -1
- package/dist/providers/google-agy.d.ts.map +1 -1
- package/dist/providers/google-agy.js +56 -7
- 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 +72 -7
- package/dist/providers/google-gemini-cli.js.map +1 -1
- package/dist/providers/kilo.js +1 -1
- package/dist/providers/kilo.js.map +1 -1
- package/dist/providers/kimi-code.d.ts.map +1 -1
- package/dist/providers/kimi-code.js +60 -1
- package/dist/providers/kimi-code.js.map +1 -1
- package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
- package/dist/providers/minimax-coding-plan.js +52 -1
- package/dist/providers/minimax-coding-plan.js.map +1 -1
- package/dist/providers/nanogpt.js +1 -1
- package/dist/providers/nanogpt.js.map +1 -1
- package/dist/providers/ollama-cloud.js +1 -1
- package/dist/providers/ollama-cloud.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +59 -29
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/opencode-go.d.ts.map +1 -1
- package/dist/providers/opencode-go.js +207 -55
- 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 +37 -51
- package/dist/providers/opencode-zen.js.map +1 -1
- package/dist/providers/openrouter.js +1 -1
- package/dist/providers/openrouter.js.map +1 -1
- package/dist/providers/quota-providers.js +9 -9
- package/dist/providers/quota-providers.js.map +1 -1
- package/dist/providers/result-helpers.d.ts +2 -2
- package/dist/providers/result-helpers.d.ts.map +1 -1
- package/dist/providers/result-helpers.js +2 -2
- package/dist/providers/result-helpers.js.map +1 -1
- package/dist/providers/xai.d.ts.map +1 -1
- package/dist/providers/xai.js +49 -1
- package/dist/providers/xai.js.map +1 -1
- package/dist/providers/zai.d.ts.map +1 -1
- package/dist/providers/zai.js +3 -1
- package/dist/providers/zai.js.map +1 -1
- package/dist/providers/zhipu.d.ts.map +1 -1
- package/dist/providers/zhipu.js +3 -1
- package/dist/providers/zhipu.js.map +1 -1
- package/dist/rpc.d.ts +72 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +77 -0
- package/dist/rpc.js.map +1 -0
- package/dist/tui-v2.d.ts +5 -0
- package/dist/tui-v2.d.ts.map +1 -0
- package/dist/tui-v2.jsx +624 -0
- package/dist/tui-v2.jsx.map +1 -0
- package/dist/tui.d.ts +4 -6
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +793 -934
- package/package.json +7 -19
- package/dist/lib/cache.d.ts +0 -39
- package/dist/lib/cache.d.ts.map +0 -1
- package/dist/lib/cache.js +0 -124
- package/dist/lib/cache.js.map +0 -1
- package/dist/lib/command-handled.d.ts +0 -17
- package/dist/lib/command-handled.d.ts.map +0 -1
- package/dist/lib/command-handled.js +0 -36
- package/dist/lib/command-handled.js.map +0 -1
- package/dist/lib/command-surfaces.d.ts +0 -10
- package/dist/lib/command-surfaces.d.ts.map +0 -1
- package/dist/lib/command-surfaces.js +0 -9
- package/dist/lib/command-surfaces.js.map +0 -1
- package/dist/lib/opencode-zen-config.d.ts +0 -33
- package/dist/lib/opencode-zen-config.d.ts.map +0 -1
- package/dist/lib/opencode-zen-config.js +0 -158
- package/dist/lib/opencode-zen-config.js.map +0 -1
- package/dist/lib/path-pick.d.ts +0 -2
- package/dist/lib/path-pick.d.ts.map +0 -1
- package/dist/lib/path-pick.js +0 -15
- package/dist/lib/path-pick.js.map +0 -1
- package/dist/lib/quota-toast-runtime.d.ts +0 -60
- package/dist/lib/quota-toast-runtime.d.ts.map +0 -1
- package/dist/lib/quota-toast-runtime.js +0 -766
- package/dist/lib/quota-toast-runtime.js.map +0 -1
- package/dist/lib/tui-config-diagnostics.d.ts +0 -17
- package/dist/lib/tui-config-diagnostics.d.ts.map +0 -1
- package/dist/lib/tui-config-diagnostics.js +0 -72
- package/dist/lib/tui-config-diagnostics.js.map +0 -1
- package/dist/lib/tui-line-style.d.ts +0 -3
- package/dist/lib/tui-line-style.d.ts.map +0 -1
- package/dist/lib/tui-line-style.js +0 -7
- package/dist/lib/tui-line-style.js.map +0 -1
- package/dist/lib/tui-native-provider-quota.d.ts +0 -7
- package/dist/lib/tui-native-provider-quota.d.ts.map +0 -1
- package/dist/lib/tui-native-provider-quota.js +0 -25
- package/dist/lib/tui-native-provider-quota.js.map +0 -1
- package/dist/lib/tui-refresh-lifecycle.d.ts +0 -17
- package/dist/lib/tui-refresh-lifecycle.d.ts.map +0 -1
- package/dist/lib/tui-refresh-lifecycle.js +0 -82
- package/dist/lib/tui-refresh-lifecycle.js.map +0 -1
- package/dist/lib/tui-runtime.d.ts +0 -84
- package/dist/lib/tui-runtime.d.ts.map +0 -1
- package/dist/lib/tui-runtime.js +0 -527
- package/dist/lib/tui-runtime.js.map +0 -1
- package/dist/lib/tui-sidebar-content.d.ts +0 -32
- package/dist/lib/tui-sidebar-content.d.ts.map +0 -1
- package/dist/lib/tui-sidebar-content.js +0 -52
- package/dist/lib/tui-sidebar-content.js.map +0 -1
- package/dist/tui.tsx +0 -1030
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { createProviderApiKeyResolver, getGlobalOpencodeConfigCandidatePaths, } from "./api-key-resolver.js";
|
|
2
|
-
import {
|
|
2
|
+
import { getCredentialDatabasePaths, readAuthFile } from "./opencode-auth.js";
|
|
3
|
+
const OLLAMA_CLOUD_PROVIDER_KEYS = ["ollama-cloud"];
|
|
3
4
|
export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
|
|
4
5
|
const ollamaCloudApiKeyResolver = createProviderApiKeyResolver({
|
|
5
6
|
envVars: [{ name: "OLLAMA_API_KEY", source: "env:OLLAMA_API_KEY" }],
|
|
6
|
-
providerKeys:
|
|
7
|
+
providerKeys: OLLAMA_CLOUD_PROVIDER_KEYS,
|
|
7
8
|
allowedEnvVars: ["OLLAMA_API_KEY"],
|
|
8
9
|
configJsonSource: "opencode.json",
|
|
9
10
|
configJsoncSource: "opencode.jsonc",
|
|
10
11
|
getConfigCandidates: getGlobalOpencodeConfigCandidatePaths,
|
|
11
12
|
auth: {
|
|
12
|
-
readAuth: readAuthFile,
|
|
13
|
-
|
|
14
|
-
authSource: "
|
|
13
|
+
readAuth: () => readAuthFile({ integrationIds: OLLAMA_CLOUD_PROVIDER_KEYS }),
|
|
14
|
+
getCredentialDatabasePaths,
|
|
15
|
+
authSource: "opencode.db",
|
|
15
16
|
},
|
|
16
17
|
});
|
|
17
18
|
export async function resolveOllamaCloudApiKey() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama-cloud-config.js","sourceRoot":"","sources":["../../src/lib/ollama-cloud-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ollama-cloud-config.js","sourceRoot":"","sources":["../../src/lib/ollama-cloud-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAO9E,MAAM,0BAA0B,GAAG,CAAC,cAAc,CAAU,CAAC;AAQ7D,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAEjH,MAAM,yBAAyB,GAAG,4BAA4B,CAAuB;IACnF,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACnE,YAAY,EAAE,0BAA0B;IACxC,cAAc,EAAE,CAAC,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,eAAe;IACjC,iBAAiB,EAAE,gBAAgB;IACnC,mBAAmB,EAAE,qCAAqC;IAC1D,IAAI,EAAE;QACJ,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC;QAC5E,0BAA0B;QAC1B,UAAU,EAAE,aAAa;KAC1B;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAC5C,OAAO,yBAAyB,CAAC,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO,yBAAyB,CAAC,GAAG,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAMhD,OAAO,yBAAyB,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC"}
|
package/dist/lib/openai.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenAI (ChatGPT) quota fetcher
|
|
3
3
|
*
|
|
4
|
-
* Uses OpenCode's
|
|
4
|
+
* Uses OpenCode's opencode.db native OpenCode OAuth entries and queries:
|
|
5
5
|
* https://chatgpt.com/backend-api/wham/usage
|
|
6
6
|
*/
|
|
7
7
|
import type { FixedWindowProjectionEvidence } from "./entries.js";
|
|
@@ -13,7 +13,7 @@ type OpenAIWindowValue = {
|
|
|
13
13
|
fixedWindow?: FixedWindowProjectionEvidence;
|
|
14
14
|
};
|
|
15
15
|
export declare const DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS = 5000;
|
|
16
|
-
export declare const OPENAI_AUTH_SOURCE_KEYS: readonly ["openai", "codex", "chatgpt"
|
|
16
|
+
export declare const OPENAI_AUTH_SOURCE_KEYS: readonly ["openai", "codex", "chatgpt"];
|
|
17
17
|
export type OpenAIAuthSourceKey = (typeof OPENAI_AUTH_SOURCE_KEYS)[number];
|
|
18
18
|
export type OpenAIResult = {
|
|
19
19
|
success: true;
|
|
@@ -33,6 +33,10 @@ export type OpenAIResult = {
|
|
|
33
33
|
} | QuotaError | null;
|
|
34
34
|
export type ResolvedOpenAIOAuth = {
|
|
35
35
|
state: "none";
|
|
36
|
+
} | {
|
|
37
|
+
state: "failed";
|
|
38
|
+
sourceKey: OpenAIAuthSourceKey;
|
|
39
|
+
error: string;
|
|
36
40
|
} | {
|
|
37
41
|
state: "configured";
|
|
38
42
|
sourceKey: OpenAIAuthSourceKey;
|
|
@@ -52,6 +56,7 @@ export declare function hasOpenAIOAuthCached(params?: {
|
|
|
52
56
|
}): Promise<boolean>;
|
|
53
57
|
export declare function queryOpenAIQuota(options?: {
|
|
54
58
|
requestTimeoutMs?: number;
|
|
59
|
+
auth?: ResolvedOpenAIOAuth;
|
|
55
60
|
}): Promise<OpenAIResult>;
|
|
56
61
|
export {};
|
|
57
62
|
//# sourceMappingURL=openai.d.ts.map
|
package/dist/lib/openai.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/lib/openai.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAIlE,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAC;AA0DxE,KAAK,iBAAiB,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,6BAA6B,CAAC;CAC7C,CAAC;AAyGF,eAAO,MAAM,oCAAoC,OAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/lib/openai.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAIlE,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAC;AA0DxE,KAAK,iBAAiB,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,6BAA6B,CAAC;CAC7C,CAAC;AAyGF,eAAO,MAAM,oCAAoC,OAAQ,CAAC;AAG1D,eAAO,MAAM,uBAAuB,YAAI,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAE/E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,MAAM,MAAM,YAAY,GACpB;IACE,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAC;QAC5B,UAAU,CAAC,EAAE,iBAAiB,CAAC;KAChC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;CACH,GACD,UAAU,GACV,IAAI,CAAC;AAET,MAAM,MAAM,mBAAmB,GAC3B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClE;IACE,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoBN,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,CAyBzF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEzE;AAED,wBAAsB,yBAAyB,CAAC,MAAM,CAAC,EAAE;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAmBvC;AAED,wBAAsB,oBAAoB,CAAC,MAAM,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAM3F;AAED,wBAAsB,gBAAgB,CACpC,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAAO,GACtE,OAAO,CAAC,YAAY,CAAC,CA0GvB"}
|
package/dist/lib/openai.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenAI (ChatGPT) quota fetcher
|
|
3
3
|
*
|
|
4
|
-
* Uses OpenCode's
|
|
4
|
+
* Uses OpenCode's opencode.db native OpenCode OAuth entries and queries:
|
|
5
5
|
* https://chatgpt.com/backend-api/wham/usage
|
|
6
6
|
*/
|
|
7
7
|
import { sanitizeDisplayText } from "./display-sanitize.js";
|
|
@@ -121,7 +121,9 @@ function derivePlanLabel(planType) {
|
|
|
121
121
|
}
|
|
122
122
|
const OPENAI_USAGE_URL = "https://chatgpt.com/backend-api/wham/usage";
|
|
123
123
|
export const DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS = 5_000;
|
|
124
|
-
|
|
124
|
+
// Not `opencode`: in OpenCode 2 its OAuth entry is the Console login, which
|
|
125
|
+
// authorizes Console APIs, not OpenAI.
|
|
126
|
+
export const OPENAI_AUTH_SOURCE_KEYS = ["openai", "codex", "chatgpt"];
|
|
125
127
|
function getOpenAIOAuthEntry(auth) {
|
|
126
128
|
for (const sourceKey of OPENAI_AUTH_SOURCE_KEYS) {
|
|
127
129
|
const entry = auth?.[sourceKey];
|
|
@@ -129,7 +131,7 @@ function getOpenAIOAuthEntry(auth) {
|
|
|
129
131
|
continue;
|
|
130
132
|
}
|
|
131
133
|
const accessToken = typeof entry.access === "string" ? entry.access.trim() : "";
|
|
132
|
-
if (accessToken) {
|
|
134
|
+
if (accessToken || entry.resolveError !== undefined) {
|
|
133
135
|
return { sourceKey, entry, accessToken };
|
|
134
136
|
}
|
|
135
137
|
}
|
|
@@ -140,6 +142,9 @@ export function resolveOpenAIOAuth(auth) {
|
|
|
140
142
|
if (!resolved) {
|
|
141
143
|
return { state: "none" };
|
|
142
144
|
}
|
|
145
|
+
if (resolved.entry.resolveError !== undefined) {
|
|
146
|
+
return { state: "failed", sourceKey: resolved.sourceKey, error: resolved.entry.resolveError };
|
|
147
|
+
}
|
|
143
148
|
const email = getEmailFromJwt(resolved.accessToken) ?? undefined;
|
|
144
149
|
const accountId = getAccountIdFromJwt(resolved.accessToken) ?? resolved.entry.accountId ?? undefined;
|
|
145
150
|
return {
|
|
@@ -155,11 +160,12 @@ export function resolveOpenAIOAuth(auth) {
|
|
|
155
160
|
};
|
|
156
161
|
}
|
|
157
162
|
export function hasOpenAIOAuth(auth) {
|
|
158
|
-
return resolveOpenAIOAuth(auth).state
|
|
163
|
+
return resolveOpenAIOAuth(auth).state !== "none";
|
|
159
164
|
}
|
|
160
165
|
export async function resolveOpenAIAuthIdentity(params) {
|
|
161
166
|
const auth = await readAuthFileCached({
|
|
162
167
|
maxAgeMs: Math.max(0, params?.maxAgeMs ?? DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS),
|
|
168
|
+
integrationIds: OPENAI_AUTH_SOURCE_KEYS,
|
|
163
169
|
});
|
|
164
170
|
const resolved = resolveOpenAIOAuth(auth);
|
|
165
171
|
if (resolved.state !== "configured")
|
|
@@ -179,14 +185,22 @@ export async function resolveOpenAIAuthIdentity(params) {
|
|
|
179
185
|
export async function hasOpenAIOAuthCached(params) {
|
|
180
186
|
const auth = await readAuthFileCached({
|
|
181
187
|
maxAgeMs: Math.max(0, params?.maxAgeMs ?? DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS),
|
|
188
|
+
integrationIds: OPENAI_AUTH_SOURCE_KEYS,
|
|
182
189
|
});
|
|
183
190
|
return hasOpenAIOAuth(auth);
|
|
184
191
|
}
|
|
185
192
|
export async function queryOpenAIQuota(options = {}) {
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
193
|
+
const resolvedAuth = options.auth ??
|
|
194
|
+
resolveOpenAIOAuth(await readAuthFileCached({
|
|
195
|
+
maxAgeMs: DEFAULT_OPENAI_AUTH_CACHE_MAX_AGE_MS,
|
|
196
|
+
integrationIds: OPENAI_AUTH_SOURCE_KEYS,
|
|
197
|
+
}));
|
|
198
|
+
if (resolvedAuth.state === "failed") {
|
|
199
|
+
return {
|
|
200
|
+
success: false,
|
|
201
|
+
error: `OpenAI sign-in could not be refreshed: ${resolvedAuth.error}. Run \`opencode auth login openai\`.`,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
190
204
|
if (resolvedAuth.state !== "configured")
|
|
191
205
|
return null;
|
|
192
206
|
if (resolvedAuth.expiresAt && resolvedAuth.expiresAt < Date.now()) {
|
package/dist/lib/openai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/lib/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/lib/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The terminal command's read-only login reader
|
|
3
|
+
*
|
|
4
|
+
* `opencode-quota show` and `status` bind this source while one report runs, so they work
|
|
5
|
+
* with OpenCode closed. It is the only code that queries OpenCode's `credential` table. It
|
|
6
|
+
* never refreshes or writes a login: a sign-in whose token expired stays expired here until
|
|
7
|
+
* OpenCode refreshes it. The server plugin and the TUI must never import this file
|
|
8
|
+
* (`tests/tui-dist-import-graph.test.ts`).
|
|
9
|
+
*/
|
|
10
|
+
import { type CredentialSource } from "./opencode-auth.js";
|
|
11
|
+
/**
|
|
12
|
+
* Logins from OpenCode's database, in database order (active first, then most recently
|
|
13
|
+
* updated), not in request order. The database path is resolved on every read, so
|
|
14
|
+
* `OPENCODE_DB` and `XDG_DATA_HOME` apply. Any read error means no logins.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createSqliteCredentialSource(): CredentialSource;
|
|
17
|
+
//# sourceMappingURL=opencode-auth-sqlite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-auth-sqlite.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-auth-sqlite.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,oBAAoB,CAAC;AAoE5B;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,gBAAgB,CAwB/D"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The terminal command's read-only login reader
|
|
3
|
+
*
|
|
4
|
+
* `opencode-quota show` and `status` bind this source while one report runs, so they work
|
|
5
|
+
* with OpenCode closed. It is the only code that queries OpenCode's `credential` table. It
|
|
6
|
+
* never refreshes or writes a login: a sign-in whose token expired stays expired here until
|
|
7
|
+
* OpenCode refreshes it. The server plugin and the TUI must never import this file
|
|
8
|
+
* (`tests/tui-dist-import-graph.test.ts`).
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync } from "fs";
|
|
11
|
+
import { getCredentialDatabasePaths, } from "./opencode-auth.js";
|
|
12
|
+
import { openOpenCodeSqliteReadOnly } from "./opencode-sqlite.js";
|
|
13
|
+
/** The OpenCode 2 method of a parsed credential value (the reader maps a stored `key` to `api`). */
|
|
14
|
+
function credentialMethod(value) {
|
|
15
|
+
if (value.type === "oauth")
|
|
16
|
+
return "oauth";
|
|
17
|
+
if (value.type === "api" || value.type === "key")
|
|
18
|
+
return "key";
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
async function readCredentialDatabase(path) {
|
|
22
|
+
if (!existsSync(path))
|
|
23
|
+
return [];
|
|
24
|
+
let database;
|
|
25
|
+
try {
|
|
26
|
+
database = await openOpenCodeSqliteReadOnly(path);
|
|
27
|
+
const rows = database.all("SELECT id, integration_id, label, active, value FROM credential WHERE integration_id IS NOT NULL ORDER BY active DESC, time_updated DESC, id DESC");
|
|
28
|
+
const credentials = [];
|
|
29
|
+
for (const row of rows) {
|
|
30
|
+
if (typeof row.id !== "string" ||
|
|
31
|
+
typeof row.integration_id !== "string" ||
|
|
32
|
+
typeof row.label !== "string" ||
|
|
33
|
+
typeof row.value !== "string")
|
|
34
|
+
continue;
|
|
35
|
+
const value = parseCredentialValue(row.value);
|
|
36
|
+
if (value) {
|
|
37
|
+
credentials.push({
|
|
38
|
+
id: row.id,
|
|
39
|
+
integrationId: row.integration_id,
|
|
40
|
+
label: row.label,
|
|
41
|
+
active: row.active === 1,
|
|
42
|
+
value,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return credentials;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
database?.close();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function parseCredentialValue(value) {
|
|
56
|
+
try {
|
|
57
|
+
const parsed = JSON.parse(value);
|
|
58
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
59
|
+
return null;
|
|
60
|
+
const credential = parsed;
|
|
61
|
+
const metadata = credential.metadata;
|
|
62
|
+
const authEntry = {
|
|
63
|
+
...(metadata && typeof metadata === "object" && !Array.isArray(metadata) ? metadata : {}),
|
|
64
|
+
...credential,
|
|
65
|
+
};
|
|
66
|
+
if (authEntry.type === "key" && typeof authEntry.key === "string") {
|
|
67
|
+
authEntry.type = "api";
|
|
68
|
+
}
|
|
69
|
+
return authEntry;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Logins from OpenCode's database, in database order (active first, then most recently
|
|
77
|
+
* updated), not in request order. The database path is resolved on every read, so
|
|
78
|
+
* `OPENCODE_DB` and `XDG_DATA_HOME` apply. Any read error means no logins.
|
|
79
|
+
*/
|
|
80
|
+
export function createSqliteCredentialSource() {
|
|
81
|
+
return {
|
|
82
|
+
kind: "sqlite",
|
|
83
|
+
async readRows(request) {
|
|
84
|
+
const [path] = getCredentialDatabasePaths();
|
|
85
|
+
const rows = (path ? await readCredentialDatabase(path) : []).filter((row) => request.integrationIds.includes(row.integrationId));
|
|
86
|
+
const seenIntegrationIds = new Set();
|
|
87
|
+
const firstRows = request.firstOnly
|
|
88
|
+
? rows.filter((row) => {
|
|
89
|
+
if (seenIntegrationIds.has(row.integrationId))
|
|
90
|
+
return false;
|
|
91
|
+
seenIntegrationIds.add(row.integrationId);
|
|
92
|
+
return true;
|
|
93
|
+
})
|
|
94
|
+
: rows;
|
|
95
|
+
const methods = request.methods;
|
|
96
|
+
if (!methods)
|
|
97
|
+
return firstRows;
|
|
98
|
+
return firstRows.filter((row) => {
|
|
99
|
+
const method = credentialMethod(row.value);
|
|
100
|
+
return method !== undefined && methods.includes(method);
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=opencode-auth-sqlite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-auth-sqlite.js","sourceRoot":"","sources":["../../src/lib/opencode-auth-sqlite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,140 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenCode
|
|
2
|
+
* OpenCode login reader
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Reads OpenCode 2 logins through the bound credential source. The server
|
|
5
|
+
* plugin binds its integration API (`ctx.integration`) in `setup`; the terminal
|
|
6
|
+
* command binds the read-only database reader in `opencode-auth-sqlite.ts`
|
|
7
|
+
* while one report runs; the TUI binds nothing, so a read there finds no login.
|
|
8
|
+
* Every read names the integration ids it needs, so OpenCode resolves (and may
|
|
9
|
+
* refresh) only those logins.
|
|
7
10
|
*/
|
|
11
|
+
import type { Plugin } from "@opencode/plugin";
|
|
8
12
|
import type { AuthData } from "./types.js";
|
|
13
|
+
export type CredentialRow = {
|
|
14
|
+
id: string;
|
|
15
|
+
integrationId: string;
|
|
16
|
+
label: string;
|
|
17
|
+
active: boolean;
|
|
18
|
+
value: Record<string, unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Why OpenCode could not return this login (for example a failed token
|
|
21
|
+
* refresh), as `<category>: <scrubbed detail>`. A failed row keeps its id,
|
|
22
|
+
* label and position, but its `value` is only `{ type: "api" | "oauth" }`;
|
|
23
|
+
* consumers show `resolveError` as a per-account error.
|
|
24
|
+
*/
|
|
25
|
+
resolveError?: string;
|
|
26
|
+
};
|
|
27
|
+
/** OpenCode 2 connection methods: a stored API key or an OAuth sign-in. */
|
|
28
|
+
export type CredentialMethod = "key" | "oauth";
|
|
29
|
+
export type ReadCredentialRowsOptions = {
|
|
30
|
+
/** Keep only connections using one of these methods; checked before OpenCode resolves them. */
|
|
31
|
+
methods?: readonly CredentialMethod[];
|
|
32
|
+
/** Read only the active connection of each integration id. */
|
|
33
|
+
firstOnly?: boolean;
|
|
34
|
+
};
|
|
35
|
+
export type CredentialReadRequest = ReadCredentialRowsOptions & {
|
|
36
|
+
integrationIds: readonly string[];
|
|
37
|
+
};
|
|
38
|
+
export type CredentialSourceKind = "opencode-integration-api" | "sqlite";
|
|
9
39
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* so we check multiple locations.
|
|
40
|
+
* Where logins come from. The two production sources: `ctx.integration` in the
|
|
41
|
+
* server plugin, and the terminal command's read-only reader of OpenCode's database.
|
|
13
42
|
*/
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
43
|
+
export type CredentialSource = {
|
|
44
|
+
kind: CredentialSourceKind;
|
|
45
|
+
readRows(request: CredentialReadRequest): Promise<CredentialRow[]>;
|
|
46
|
+
};
|
|
47
|
+
/** The parts of the server plugin's `ctx.integration` the reader uses. */
|
|
48
|
+
export type CredentialIntegration = Pick<Plugin.Context["integration"], "list" | "connection">;
|
|
49
|
+
type CredentialFailureCategory = "refresh_failed" | "resolve_empty" | "active_failed";
|
|
50
|
+
export type CredentialSourceDiagnostics = ({
|
|
51
|
+
state: "bound";
|
|
52
|
+
kind: CredentialSourceKind;
|
|
53
|
+
} | {
|
|
54
|
+
state: "unbound";
|
|
55
|
+
}) & {
|
|
56
|
+
lastListError?: {
|
|
57
|
+
at: number;
|
|
58
|
+
detail: string;
|
|
59
|
+
};
|
|
60
|
+
failures: Array<{
|
|
61
|
+
integrationId: string;
|
|
62
|
+
connectionId: string;
|
|
63
|
+
label: string;
|
|
64
|
+
category: CredentialFailureCategory;
|
|
65
|
+
detail: string;
|
|
66
|
+
at: number;
|
|
67
|
+
}>;
|
|
68
|
+
};
|
|
69
|
+
export declare function formatCredentialDisplayNames(providerName: string, credentials: ReadonlyArray<{
|
|
70
|
+
row: CredentialRow;
|
|
71
|
+
fallbackName: string;
|
|
72
|
+
}>): string[];
|
|
73
|
+
/**
|
|
74
|
+
* The database OpenCode keeps its logins in: the one resolved path, or none
|
|
75
|
+
* when `OPENCODE_DB` is `:memory:`. Inside OpenCode it is for diagnostics only
|
|
76
|
+
* (logins are read through OpenCode); the terminal command reads its logins
|
|
77
|
+
* from this file.
|
|
78
|
+
*/
|
|
79
|
+
export declare function getCredentialDatabasePaths(): string[];
|
|
80
|
+
/**
|
|
81
|
+
* Makes `source` the one reads use until the returned function unbinds it.
|
|
82
|
+
* Unbinding removes only this binding; the last binding still bound wins.
|
|
83
|
+
*/
|
|
84
|
+
export declare function bindCredentialSource(source: CredentialSource): () => void;
|
|
85
|
+
/** Drops cached logins, failed-login entries and the last `list()` error. */
|
|
86
|
+
export declare function notifyCredentialsChanged(): void;
|
|
87
|
+
export declare function getCredentialSourceDiagnostics(): CredentialSourceDiagnostics;
|
|
88
|
+
/**
|
|
89
|
+
* Error text that is safe to show and to store: one sanitized line with
|
|
90
|
+
* JWT-shaped and long opaque strings (tokens) replaced, at most 120 characters.
|
|
91
|
+
*/
|
|
92
|
+
export declare function scrubCredentialErrorText(message: string): string;
|
|
93
|
+
/** The credential source backed by the server plugin's `ctx.integration`. */
|
|
94
|
+
export declare function createIntegrationCredentialSource(integration: CredentialIntegration): CredentialSource;
|
|
95
|
+
/**
|
|
96
|
+
* The auth entry resolvers read for a row: its value, plus `resolveError`
|
|
97
|
+
* when OpenCode could not return the login.
|
|
98
|
+
*/
|
|
99
|
+
export declare function credentialRowAuthEntry(row: CredentialRow): Record<string, unknown>;
|
|
100
|
+
/**
|
|
101
|
+
* Map of the first (active) login per requested integration id. With `methods`,
|
|
102
|
+
* an active login using another method is left out without OpenCode resolving it.
|
|
103
|
+
*/
|
|
104
|
+
export declare function readAuthFile(params: {
|
|
105
|
+
integrationIds: readonly string[];
|
|
106
|
+
methods?: readonly CredentialMethod[];
|
|
107
|
+
}): Promise<AuthData | null>;
|
|
108
|
+
/**
|
|
109
|
+
* Credential rows of the requested integration ids from the last bound source.
|
|
110
|
+
* Row order depends on the source: the integration API returns request-id
|
|
111
|
+
* order, then OpenCode's connection order (active first, then newest); the
|
|
112
|
+
* database reader returns database order. With no bound source (the TUI) there
|
|
113
|
+
* are none.
|
|
114
|
+
*/
|
|
115
|
+
export declare function readCredentialRows(integrationIds: readonly string[], options?: ReadCredentialRowsOptions): Promise<CredentialRow[]>;
|
|
116
|
+
/**
|
|
117
|
+
* Collapse credential rows that represent the same upstream connection.
|
|
118
|
+
*
|
|
119
|
+
* Rows holding identical credential values are the same connection (e.g. the
|
|
120
|
+
* same workspace key stored under the `opencode-go` integration and its legacy
|
|
121
|
+
* `opencode` alias), and rows under `primaryIntegrationId` take precedence over
|
|
122
|
+
* alias rows so a real credential for another integration that shares the key
|
|
123
|
+
* is not reported as an additional connection. A failed row holds only
|
|
124
|
+
* `{ type }`, so its connection id keeps each failed login a row of its own.
|
|
125
|
+
* Input order is preserved otherwise.
|
|
126
|
+
*/
|
|
127
|
+
export declare function selectConnectionCredentialRows(rows: readonly CredentialRow[], primaryIntegrationId: string): CredentialRow[];
|
|
18
128
|
/**
|
|
19
129
|
* Cached auth reader for frequently triggered code paths (e.g. per-question hooks).
|
|
20
|
-
* This avoids
|
|
130
|
+
* This avoids asking OpenCode on every call while keeping login changes visible quickly.
|
|
21
131
|
*/
|
|
22
|
-
export declare function readAuthFileCached(params
|
|
23
|
-
maxAgeMs
|
|
132
|
+
export declare function readAuthFileCached(params: {
|
|
133
|
+
maxAgeMs: number;
|
|
134
|
+
integrationIds: readonly string[];
|
|
135
|
+
methods?: readonly CredentialMethod[];
|
|
24
136
|
}): Promise<AuthData | null>;
|
|
25
137
|
/** Test helper to clear cached auth state between test cases. */
|
|
26
138
|
export declare function clearReadAuthFileCacheForTests(): void;
|
|
139
|
+
export {};
|
|
27
140
|
//# sourceMappingURL=opencode-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-auth.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-auth.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"opencode-auth.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-auth.ts"],"names":[],"mappings":"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"}
|