@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
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode Console credential reader
|
|
3
|
+
*
|
|
4
|
+
* OpenCode 2 keeps its OpenCode Console sign-in (`opencode auth login opencode`)
|
|
5
|
+
* under the `opencode` integration as an OAuth connection created by the device
|
|
6
|
+
* flow (`client_id: opencode-cli`, default server `https://opencode.ai/console`,
|
|
7
|
+
* stored as `metadata.server`). Consumers call the console APIs with
|
|
8
|
+
* `consoleBaseUrl` and `consoleHeaders`: the access token as
|
|
9
|
+
* `Authorization: Bearer`, plus `metadata.orgID` as `x-org-id` when present.
|
|
10
|
+
*
|
|
11
|
+
* The login is read through OpenCode's plugin API, which refreshes a token that
|
|
12
|
+
* is about to expire (and saves the new one) before returning it. A failed
|
|
13
|
+
* refresh is reported as `invalid`.
|
|
14
|
+
*/
|
|
15
|
+
import { readCredentialRows } from "./opencode-auth.js";
|
|
16
|
+
export const OPENCODE_CONSOLE_BASE_URL = "https://opencode.ai/console";
|
|
17
|
+
export const OPENCODE_CONSOLE_INTEGRATION_ID = "opencode";
|
|
18
|
+
export async function resolveOpenCodeConsoleAuth(params) {
|
|
19
|
+
// Only the active Console login counts, the way OpenCode itself picks it.
|
|
20
|
+
const rows = await readCredentialRows([OPENCODE_CONSOLE_INTEGRATION_ID], { firstOnly: true });
|
|
21
|
+
const row = rows[0];
|
|
22
|
+
if (!row)
|
|
23
|
+
return { state: "none" };
|
|
24
|
+
if (row.resolveError !== undefined)
|
|
25
|
+
return { state: "invalid", error: row.resolveError };
|
|
26
|
+
const value = row.value;
|
|
27
|
+
// An API key under `opencode` (service account or workspace key) is not a sign-in.
|
|
28
|
+
if (value.type !== "oauth")
|
|
29
|
+
return { state: "none", reason: "not_oauth" };
|
|
30
|
+
const accessToken = typeof value.access === "string" ? value.access.trim() : "";
|
|
31
|
+
if (!accessToken) {
|
|
32
|
+
return { state: "invalid", error: "OpenCode Console credential has no access token" };
|
|
33
|
+
}
|
|
34
|
+
const metadata = (value.metadata ?? null);
|
|
35
|
+
const credential = {
|
|
36
|
+
accessToken,
|
|
37
|
+
refreshToken: typeof value.refresh === "string" && value.refresh.trim() ? value.refresh : undefined,
|
|
38
|
+
expiresAt: typeof value.expires === "number" ? value.expires : undefined,
|
|
39
|
+
accountId: typeof metadata?.accountID === "string" ? metadata.accountID : undefined,
|
|
40
|
+
orgId: typeof metadata?.orgID === "string" ? metadata.orgID : undefined,
|
|
41
|
+
orgName: typeof metadata?.orgName === "string" ? metadata.orgName : undefined,
|
|
42
|
+
email: typeof metadata?.email === "string" ? metadata.email : undefined,
|
|
43
|
+
server: typeof metadata?.server === "string" ? metadata.server : undefined,
|
|
44
|
+
};
|
|
45
|
+
const nowMs = params?.nowMs ?? Date.now();
|
|
46
|
+
if (credential.expiresAt !== undefined && credential.expiresAt <= nowMs) {
|
|
47
|
+
return { state: "expired", credential };
|
|
48
|
+
}
|
|
49
|
+
return { state: "configured", credential };
|
|
50
|
+
}
|
|
51
|
+
/** The Console server the login belongs to. */
|
|
52
|
+
export function consoleBaseUrl(credential) {
|
|
53
|
+
return credential.server ?? OPENCODE_CONSOLE_BASE_URL;
|
|
54
|
+
}
|
|
55
|
+
/** Console API request headers; `x-org-id` only when the login has an org. */
|
|
56
|
+
export function consoleHeaders(credential) {
|
|
57
|
+
return {
|
|
58
|
+
Authorization: `Bearer ${credential.accessToken}`,
|
|
59
|
+
Accept: "application/json",
|
|
60
|
+
...(typeof credential.orgId === "string" ? { "x-org-id": credential.orgId } : {}),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=opencode-console-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-console-auth.js","sourceRoot":"","sources":["../../src/lib/opencode-console-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode's SQLite database path, resolved the way OpenCode 2 does
|
|
3
|
+
* (`packages/cli/src/database-path.ts`): `OPENCODE_DB` (absolute, or relative
|
|
4
|
+
* to the data dir; `:memory:` passes through), else `<data dir>/opencode.db`.
|
|
5
|
+
*
|
|
6
|
+
* Credentials, sessions, and messages all live in this one database.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getOpenCodeDbPath(): string;
|
|
9
|
+
//# sourceMappingURL=opencode-db-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-db-path.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-db-path.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { resolve } from "path";
|
|
2
|
+
import { getOpencodeRuntimeDirs } from "./opencode-runtime-paths.js";
|
|
3
|
+
/**
|
|
4
|
+
* OpenCode's SQLite database path, resolved the way OpenCode 2 does
|
|
5
|
+
* (`packages/cli/src/database-path.ts`): `OPENCODE_DB` (absolute, or relative
|
|
6
|
+
* to the data dir; `:memory:` passes through), else `<data dir>/opencode.db`.
|
|
7
|
+
*
|
|
8
|
+
* Credentials, sessions, and messages all live in this one database.
|
|
9
|
+
*/
|
|
10
|
+
export function getOpenCodeDbPath() {
|
|
11
|
+
const override = process.env.OPENCODE_DB?.trim();
|
|
12
|
+
if (override === ":memory:")
|
|
13
|
+
return override;
|
|
14
|
+
return resolve(getOpencodeRuntimeDirs().dataDir, override || "opencode.db");
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=opencode-db-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-db-path.js","sourceRoot":"","sources":["../../src/lib/opencode-db-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,QAAQ,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC7C,OAAO,OAAO,CAAC,sBAAsB,EAAE,CAAC,OAAO,EAAE,QAAQ,IAAI,aAAa,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { InvalidAwareAuthDiagnostics, InvalidAwareAuthResult } from "./api-key-resolver.js";
|
|
2
2
|
export declare const DEFAULT_OPENCODE_GO_AUTH_CACHE_MAX_AGE_MS = 5000;
|
|
3
|
-
|
|
3
|
+
/** Integration IDs whose credential rows can hold OpenCode Go auth, in resolver precedence order. */
|
|
4
|
+
export declare const OPENCODE_GO_CREDENTIAL_INTEGRATION_IDS: readonly string[];
|
|
5
|
+
export type OpenCodeGoKeySource = "env:OPENCODE_API_KEY" | "opencode.json" | "opencode.jsonc" | "opencode.db";
|
|
4
6
|
export type ResolvedOpenCodeGoAuth = InvalidAwareAuthResult;
|
|
5
|
-
export type OpenCodeGoAuthDiagnostics = InvalidAwareAuthDiagnostics<OpenCodeGoKeySource, "
|
|
7
|
+
export type OpenCodeGoAuthDiagnostics = InvalidAwareAuthDiagnostics<OpenCodeGoKeySource, "opencode.db">;
|
|
6
8
|
export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
|
|
7
9
|
export declare function resolveOpenCodeGoAuth(auth: unknown): ResolvedOpenCodeGoAuth;
|
|
8
10
|
export declare function resolveOpenCodeGoAuthCached(params?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-go-auth.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-go-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAOjG,eAAO,MAAM,yCAAyC,OAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode-go-auth.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-go-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAOjG,eAAO,MAAM,yCAAyC,OAAQ,CAAC;AAM/D,qGAAqG;AACrG,eAAO,MAAM,sCAAsC,EAAE,SAAS,MAAM,EAA0B,CAAC;AAG/F,MAAM,MAAM,mBAAmB,GAC3B,sBAAsB,GACtB,eAAe,GACf,gBAAgB,GAChB,aAAa,CAAC;AAElB,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAC5D,MAAM,MAAM,yBAAyB,GAAG,2BAA2B,CACjE,mBAAmB,EACnB,aAAa,CACd,CAAC;AAEF,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAwBjH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,sBAAsB,CAE3E;AAED,wBAAsB,2BAA2B,CAAC,MAAM,CAAC,EAAE;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAElC;AAED,wBAAsB,4BAA4B,CAAC,MAAM,CAAC,EAAE;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAErC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { createProviderApiKeyResolver, getGlobalOpencodeConfigCandidatePaths, } from "./api-key-resolver.js";
|
|
2
|
-
import {
|
|
2
|
+
import { getCredentialDatabasePaths, readAuthFileCached } from "./opencode-auth.js";
|
|
3
3
|
export const DEFAULT_OPENCODE_GO_AUTH_CACHE_MAX_AGE_MS = 5_000;
|
|
4
4
|
// `opencode-go` is the provider id the OpenCode CLI writes via
|
|
5
|
-
// `opencode auth login
|
|
5
|
+
// `opencode auth login opencode-go` (shown as "OpenCode Go api" in `opencode auth list`).
|
|
6
6
|
// `opencode` stays as a fallback alias for existing manual setups.
|
|
7
7
|
const OPENCODE_GO_AUTH_KEYS = ["opencode-go", "opencode"];
|
|
8
8
|
const OPENCODE_GO_PROVIDER_KEYS = ["opencode-go", "opencode"];
|
|
9
|
+
/** Integration IDs whose credential rows can hold OpenCode Go auth, in resolver precedence order. */
|
|
10
|
+
export const OPENCODE_GO_CREDENTIAL_INTEGRATION_IDS = OPENCODE_GO_AUTH_KEYS;
|
|
9
11
|
const ALLOWED_OPENCODE_GO_ENV_VARS = ["OPENCODE_API_KEY"];
|
|
10
12
|
export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
|
|
11
13
|
const openCodeGoAuthResolver = createProviderApiKeyResolver({
|
|
@@ -18,12 +20,14 @@ const openCodeGoAuthResolver = createProviderApiKeyResolver({
|
|
|
18
20
|
auth: {
|
|
19
21
|
policy: "invalid-aware-api-key",
|
|
20
22
|
authKeys: OPENCODE_GO_AUTH_KEYS,
|
|
21
|
-
authSource: "
|
|
23
|
+
authSource: "opencode.db",
|
|
22
24
|
displayName: "OpenCode Go",
|
|
23
25
|
defaultMaxAgeMs: DEFAULT_OPENCODE_GO_AUTH_CACHE_MAX_AGE_MS,
|
|
24
26
|
unsupportedTypeError: "OpenCode Go auth entry has unsupported type",
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
// Key logins only: the active `opencode` login is usually the OpenCode Console
|
|
28
|
+
// sign-in, and resolving it here could refresh its token for nothing.
|
|
29
|
+
readAuth: (maxAgeMs) => readAuthFileCached({ maxAgeMs, integrationIds: OPENCODE_GO_AUTH_KEYS, methods: ["key"] }),
|
|
30
|
+
getCredentialDatabasePaths,
|
|
27
31
|
},
|
|
28
32
|
});
|
|
29
33
|
export function resolveOpenCodeGoAuth(auth) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-go-auth.js","sourceRoot":"","sources":["../../src/lib/opencode-go-auth.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"opencode-go-auth.js","sourceRoot":"","sources":["../../src/lib/opencode-go-auth.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,MAAM,CAAC,MAAM,yCAAyC,GAAG,KAAK,CAAC;AAC/D,+DAA+D;AAC/D,0FAA0F;AAC1F,mEAAmE;AACnE,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,UAAU,CAAU,CAAC;AACnE,MAAM,yBAAyB,GAAG,CAAC,aAAa,EAAE,UAAU,CAAU,CAAC;AACvE,qGAAqG;AACrG,MAAM,CAAC,MAAM,sCAAsC,GAAsB,qBAAqB,CAAC;AAC/F,MAAM,4BAA4B,GAAG,CAAC,kBAAkB,CAAU,CAAC;AAcnE,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAEjH,MAAM,sBAAsB,GAAG,4BAA4B,CAAqC;IAC9F,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACvE,YAAY,EAAE,yBAAyB;IACvC,cAAc,EAAE,4BAA4B;IAC5C,gBAAgB,EAAE,eAAe;IACjC,iBAAiB,EAAE,gBAAgB;IACnC,mBAAmB,EAAE,qCAAqC;IAC1D,IAAI,EAAE;QACJ,MAAM,EAAE,uBAAuB;QAC/B,QAAQ,EAAE,qBAAqB;QAC/B,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,aAAa;QAC1B,eAAe,EAAE,yCAAyC;QAC1D,oBAAoB,EAAE,6CAA6C;QACnE,+EAA+E;QAC/E,sEAAsE;QACtE,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CACrB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3F,0BAA0B;KAC3B;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,OAAO,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,MAEjD;IACC,OAAO,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,MAElD;IACC,OAAO,sBAAsB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
+
import { type OpenCodeConsoleCredential } from "./opencode-console-auth.js";
|
|
1
2
|
import type { OpenCodeGoResult } from "./types.js";
|
|
2
3
|
export declare function queryOpenCodeGoQuota(accessToken: string, options?: {
|
|
3
4
|
requestTimeoutMs?: number;
|
|
4
5
|
}): Promise<OpenCodeGoResult>;
|
|
6
|
+
/**
|
|
7
|
+
* Read OpenCode Go subscription windows from the Console API.
|
|
8
|
+
*
|
|
9
|
+
* The Console tracks Go plan access (five-hour, weekly, and monthly meters)
|
|
10
|
+
* for the member that owns the OAuth credential, so this works for fresh
|
|
11
|
+
* accounts without any pre-2.0 workspace API key. The request goes to the
|
|
12
|
+
* login's Console server, scoped to the login's org when it has one.
|
|
13
|
+
*/
|
|
14
|
+
export declare function queryOpenCodeGoConsoleStatus(credential: OpenCodeConsoleCredential, options?: {
|
|
15
|
+
requestTimeoutMs?: number;
|
|
16
|
+
}): Promise<OpenCodeGoResult>;
|
|
5
17
|
//# sourceMappingURL=opencode-go.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-go.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-go.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAyC,MAAM,YAAY,CAAC;AAiJ1F,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,gBAAgB,CAAC,CAkD3B"}
|
|
1
|
+
{"version":3,"file":"opencode-go.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-go.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAyC,MAAM,YAAY,CAAC;AAiJ1F,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,gBAAgB,CAAC,CAkD3B;AAuCD;;;;;;;GAOG;AACH,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,yBAAyB,EACrC,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1C,OAAO,CAAC,gBAAgB,CAAC,CA4E3B"}
|
package/dist/lib/opencode-go.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { sanitizeDisplayText } from "./display-sanitize.js";
|
|
2
2
|
import { fetchWithTimeout } from "./http.js";
|
|
3
|
+
import { consoleBaseUrl, consoleHeaders, } from "./opencode-console-auth.js";
|
|
3
4
|
const OPENCODE_GO_USAGE_URL = "https://opencode.ai/zen/go/v1/usage";
|
|
4
5
|
const OPENCODE_GO_WINDOW_ORDER = ["rolling", "weekly", "monthly"];
|
|
5
6
|
const OFFSET_ISO_TIMESTAMP = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/;
|
|
@@ -162,4 +163,116 @@ export async function queryOpenCodeGoQuota(accessToken, options = {}) {
|
|
|
162
163
|
return { success: false, error: errorMessage(error, accessToken), retryable: true };
|
|
163
164
|
}
|
|
164
165
|
}
|
|
166
|
+
function asMicroCents(value) {
|
|
167
|
+
const parsed = typeof value === "string" ? Number(value) : typeof value === "number" ? value : Number.NaN;
|
|
168
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
169
|
+
}
|
|
170
|
+
function normalizeConsoleMeter(windowKey, meter, fallbackResetsAtIso) {
|
|
171
|
+
const limit = asMicroCents(meter.limitMicroCents);
|
|
172
|
+
const used = asMicroCents(meter.usedMicroCents);
|
|
173
|
+
if (limit === null || used === null || limit < 0 || used < 0) {
|
|
174
|
+
return contractError(`console ${windowKey} meter microcents are invalid`);
|
|
175
|
+
}
|
|
176
|
+
const percent = limit === 0
|
|
177
|
+
? used > 0
|
|
178
|
+
? 100
|
|
179
|
+
: 0
|
|
180
|
+
: Math.min(100, Math.max(0, Math.round((used / limit) * 100)));
|
|
181
|
+
const resetsAt = typeof meter.resetsAt === "string" && meter.resetsAt ? meter.resetsAt : fallbackResetsAtIso;
|
|
182
|
+
if (!resetsAt || !Number.isFinite(Date.parse(resetsAt))) {
|
|
183
|
+
return contractError(`console ${windowKey} resetsAt is missing or invalid`);
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
status: percent >= 100 ? "rate-limited" : "ok",
|
|
187
|
+
usagePercent: percent,
|
|
188
|
+
percentRemaining: 100 - percent,
|
|
189
|
+
resetTimeIso: new Date(Date.parse(resetsAt)).toISOString(),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Read OpenCode Go subscription windows from the Console API.
|
|
194
|
+
*
|
|
195
|
+
* The Console tracks Go plan access (five-hour, weekly, and monthly meters)
|
|
196
|
+
* for the member that owns the OAuth credential, so this works for fresh
|
|
197
|
+
* accounts without any pre-2.0 workspace API key. The request goes to the
|
|
198
|
+
* login's Console server, scoped to the login's org when it has one.
|
|
199
|
+
*/
|
|
200
|
+
export async function queryOpenCodeGoConsoleStatus(credential, options = {}) {
|
|
201
|
+
try {
|
|
202
|
+
return await fetchWithTimeout(`${consoleBaseUrl(credential)}/api/go/status`, {
|
|
203
|
+
request: {
|
|
204
|
+
method: "GET",
|
|
205
|
+
headers: consoleHeaders(credential),
|
|
206
|
+
},
|
|
207
|
+
timeoutMs: options.requestTimeoutMs,
|
|
208
|
+
consume: async (response) => {
|
|
209
|
+
if (!response.ok) {
|
|
210
|
+
// 404 on this member-scoped route is read as "no Go subscription".
|
|
211
|
+
// 403 is kept ambiguous (it could be an access/permission issue on
|
|
212
|
+
// the console side rather than a subscription state), so callers
|
|
213
|
+
// fall back instead of showing a not-subscribed state.
|
|
214
|
+
if (response.status === 404) {
|
|
215
|
+
return {
|
|
216
|
+
success: false,
|
|
217
|
+
error: "OpenCode Go subscription not found for this console account (404)",
|
|
218
|
+
notSubscribed: true,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
success: false,
|
|
223
|
+
error: `OpenCode Console API error ${response.status} (/api/go/status)`,
|
|
224
|
+
retryable: isRetryableHttpStatus(response.status),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
let payload;
|
|
228
|
+
try {
|
|
229
|
+
payload = JSON.parse(await response.text());
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return contractError("console response is not valid JSON");
|
|
233
|
+
}
|
|
234
|
+
const root = asRecord(payload);
|
|
235
|
+
if (!root)
|
|
236
|
+
return contractError("console root must be an object");
|
|
237
|
+
const access = asRecord(root.access);
|
|
238
|
+
if (!access) {
|
|
239
|
+
return {
|
|
240
|
+
success: false,
|
|
241
|
+
error: "OpenCode Go subscription is not active",
|
|
242
|
+
notSubscribed: true,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
const meters = asRecord(access.meters);
|
|
246
|
+
if (!meters)
|
|
247
|
+
return contractError("console access meters are missing");
|
|
248
|
+
const endsAt = typeof access.endsAt === "string" ? access.endsAt : null;
|
|
249
|
+
const normalized = {};
|
|
250
|
+
const meterByKey = [
|
|
251
|
+
["rolling", "fiveHour"],
|
|
252
|
+
["weekly", "week"],
|
|
253
|
+
["monthly", "month"],
|
|
254
|
+
];
|
|
255
|
+
for (const [windowKey, meterKey] of meterByKey) {
|
|
256
|
+
const meter = meters[meterKey];
|
|
257
|
+
const meterRecord = asRecord(meter);
|
|
258
|
+
if (!meterRecord)
|
|
259
|
+
return contractError(`console ${meterKey} meter is missing`);
|
|
260
|
+
const window = normalizeConsoleMeter(windowKey, meterRecord, endsAt);
|
|
261
|
+
if ("success" in window)
|
|
262
|
+
return window;
|
|
263
|
+
normalized[windowKey] = window;
|
|
264
|
+
}
|
|
265
|
+
return {
|
|
266
|
+
success: true,
|
|
267
|
+
rolling: normalized.rolling,
|
|
268
|
+
weekly: normalized.weekly,
|
|
269
|
+
monthly: normalized.monthly,
|
|
270
|
+
};
|
|
271
|
+
},
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
return { success: false, error: errorMessage(error, credential.accessToken), retryable: true };
|
|
276
|
+
}
|
|
277
|
+
}
|
|
165
278
|
//# sourceMappingURL=opencode-go.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-go.js","sourceRoot":"","sources":["../../src/lib/opencode-go.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opencode-go.js","sourceRoot":"","sources":["../../src/lib/opencode-go.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,20 +4,14 @@ export interface OpencodeRuntimeDirs {
|
|
|
4
4
|
cacheDir: string;
|
|
5
5
|
stateDir: string;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
/**
|
|
8
|
+
* OpenCode 2's global dirs (oc2 packages/util/src/global-roots.ts): one dir per
|
|
9
|
+
* kind on every platform, `$XDG_<KIND>_HOME/opencode` or the XDG default under
|
|
10
|
+
* the home dir. `OPENCODE_CONFIG_DIR` replaces the config dir
|
|
11
|
+
* (oc2 packages/cli/src/index.ts `Global.layerWith({ config })`).
|
|
12
|
+
*/
|
|
13
13
|
export declare function getOpencodeRuntimeDirs(params?: {
|
|
14
14
|
env?: NodeJS.ProcessEnv;
|
|
15
15
|
homeDir?: string;
|
|
16
16
|
}): OpencodeRuntimeDirs;
|
|
17
|
-
export declare function getOpencodeRuntimeDirCandidates(params?: {
|
|
18
|
-
platform?: NodeJS.Platform;
|
|
19
|
-
env?: NodeJS.ProcessEnv;
|
|
20
|
-
homeDir?: string;
|
|
21
|
-
primary?: OpencodeRuntimeDirs;
|
|
22
|
-
}): OpencodeRuntimeDirCandidates;
|
|
23
17
|
//# sourceMappingURL=opencode-runtime-paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-runtime-paths.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-runtime-paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opencode-runtime-paths.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-runtime-paths.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,mBAAmB,CAgBtB"}
|
|
@@ -1,94 +1,24 @@
|
|
|
1
1
|
import { homedir } from "os";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
continue;
|
|
10
|
-
if (seen.has(item))
|
|
11
|
-
continue;
|
|
12
|
-
seen.add(item);
|
|
13
|
-
out.push(item);
|
|
14
|
-
}
|
|
15
|
-
return out;
|
|
16
|
-
}
|
|
2
|
+
import { join, resolve } from "path";
|
|
3
|
+
/**
|
|
4
|
+
* OpenCode 2's global dirs (oc2 packages/util/src/global-roots.ts): one dir per
|
|
5
|
+
* kind on every platform, `$XDG_<KIND>_HOME/opencode` or the XDG default under
|
|
6
|
+
* the home dir. `OPENCODE_CONFIG_DIR` replaces the config dir
|
|
7
|
+
* (oc2 packages/cli/src/index.ts `Global.layerWith({ config })`).
|
|
8
|
+
*/
|
|
17
9
|
export function getOpencodeRuntimeDirs(params) {
|
|
18
10
|
const env = params?.env ?? process.env;
|
|
19
11
|
const home = params?.homeDir ?? homedir();
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const defaultConfigDir = join(configBase, "opencode");
|
|
12
|
+
const dataBase = env.XDG_DATA_HOME?.trim() || join(home, ".local", "share");
|
|
13
|
+
const configBase = env.XDG_CONFIG_HOME?.trim() || join(home, ".config");
|
|
14
|
+
const cacheBase = env.XDG_CACHE_HOME?.trim() || join(home, ".cache");
|
|
15
|
+
const stateBase = env.XDG_STATE_HOME?.trim() || join(home, ".local", "state");
|
|
25
16
|
const configuredConfigDir = env.OPENCODE_CONFIG_DIR?.trim();
|
|
26
|
-
const configDir = configuredConfigDir
|
|
27
|
-
? isAbsolute(configuredConfigDir)
|
|
28
|
-
? configuredConfigDir
|
|
29
|
-
: resolve(defaultConfigDir, configuredConfigDir)
|
|
30
|
-
: defaultConfigDir;
|
|
31
|
-
const cacheBase = env.XDG_CACHE_HOME?.trim() || xdgCache || join(home, ".cache");
|
|
32
|
-
const stateBase = env.XDG_STATE_HOME?.trim() || xdgState || join(home, ".local", "state");
|
|
33
17
|
return {
|
|
34
18
|
dataDir: join(dataBase, "opencode"),
|
|
35
|
-
configDir,
|
|
19
|
+
configDir: configuredConfigDir ? resolve(configuredConfigDir) : join(configBase, "opencode"),
|
|
36
20
|
cacheDir: join(cacheBase, "opencode"),
|
|
37
21
|
stateDir: join(stateBase, "opencode"),
|
|
38
22
|
};
|
|
39
23
|
}
|
|
40
|
-
export function getOpencodeRuntimeDirCandidates(params) {
|
|
41
|
-
const platform = params?.platform ?? process.platform;
|
|
42
|
-
const env = params?.env ?? process.env;
|
|
43
|
-
const home = params?.homeDir ?? homedir();
|
|
44
|
-
const primary = params?.primary ?? getOpencodeRuntimeDirs({ env, homeDir: home });
|
|
45
|
-
const winAppData = env.APPDATA?.trim();
|
|
46
|
-
const winLocalAppData = env.LOCALAPPDATA?.trim();
|
|
47
|
-
const windowsRoamingFallback = join(home, "AppData", "Roaming");
|
|
48
|
-
const windowsLocalFallback = join(home, "AppData", "Local");
|
|
49
|
-
const dataDirs = [primary.dataDir];
|
|
50
|
-
const configDirs = [primary.configDir];
|
|
51
|
-
const cacheDirs = [primary.cacheDir];
|
|
52
|
-
const stateDirs = [primary.stateDir];
|
|
53
|
-
if (platform === "win32") {
|
|
54
|
-
// OpenCode uses xdg-basedir; on some Windows setups that can resolve to
|
|
55
|
-
// non-AppData locations (e.g. C:\\Users\\name.local\\share). However, many
|
|
56
|
-
// users and older installs place OpenCode data/config under APPDATA/LOCALAPPDATA.
|
|
57
|
-
const appDataBase = winAppData || windowsRoamingFallback;
|
|
58
|
-
const localAppDataBase = winLocalAppData || windowsLocalFallback;
|
|
59
|
-
// Data and config: include both roaming and local as alternates.
|
|
60
|
-
dataDirs.push(join(appDataBase, "opencode"));
|
|
61
|
-
dataDirs.push(join(localAppDataBase, "opencode"));
|
|
62
|
-
configDirs.push(join(appDataBase, "opencode"));
|
|
63
|
-
configDirs.push(join(localAppDataBase, "opencode"));
|
|
64
|
-
// Cache/state: local is more likely.
|
|
65
|
-
cacheDirs.push(join(localAppDataBase, "opencode"));
|
|
66
|
-
stateDirs.push(join(localAppDataBase, "opencode"));
|
|
67
|
-
}
|
|
68
|
-
else if (platform === "darwin") {
|
|
69
|
-
// Preserve compatibility with legacy Linux-style installs on macOS.
|
|
70
|
-
dataDirs.push(join(home, ".local", "share", "opencode"));
|
|
71
|
-
configDirs.push(join(home, ".config", "opencode"));
|
|
72
|
-
cacheDirs.push(join(home, ".cache", "opencode"));
|
|
73
|
-
stateDirs.push(join(home, ".local", "state", "opencode"));
|
|
74
|
-
// macOS canonical dirs (OpenCode xdg-basedir should already map here,
|
|
75
|
-
// but keep explicit candidates to aid diagnostics and migrations).
|
|
76
|
-
dataDirs.push(join(home, "Library", "Application Support", "opencode"));
|
|
77
|
-
configDirs.push(join(home, "Library", "Application Support", "opencode"));
|
|
78
|
-
cacheDirs.push(join(home, "Library", "Caches", "opencode"));
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// Linux / other: add common legacy fallbacks.
|
|
82
|
-
dataDirs.push(join(home, ".local", "share", "opencode"));
|
|
83
|
-
configDirs.push(join(home, ".config", "opencode"));
|
|
84
|
-
cacheDirs.push(join(home, ".cache", "opencode"));
|
|
85
|
-
stateDirs.push(join(home, ".local", "state", "opencode"));
|
|
86
|
-
}
|
|
87
|
-
return {
|
|
88
|
-
dataDirs: dedupe(dataDirs),
|
|
89
|
-
configDirs: dedupe(configDirs),
|
|
90
|
-
cacheDirs: dedupe(cacheDirs),
|
|
91
|
-
stateDirs: dedupe(stateDirs),
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
24
|
//# sourceMappingURL=opencode-runtime-paths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-runtime-paths.js","sourceRoot":"","sources":["../../src/lib/opencode-runtime-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"opencode-runtime-paths.js","sourceRoot":"","sources":["../../src/lib/opencode-runtime-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AASrC;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAGtC;IACC,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,IAAI,OAAO,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAE5D,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;QACnC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;QAC5F,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;QACrC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -3,5 +3,9 @@ export interface SqliteConn {
|
|
|
3
3
|
get<T = unknown>(sql: string, params?: unknown[]): T | null;
|
|
4
4
|
close(): void;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Open OpenCode's SQLite database read-only.
|
|
8
|
+
* Inside OpenCode 2 (Bun) this uses bun:sqlite; the Node CLI uses node:sqlite.
|
|
9
|
+
*/
|
|
6
10
|
export declare function openOpenCodeSqliteReadOnly(dbPath: string): Promise<SqliteConn>;
|
|
7
11
|
//# sourceMappingURL=opencode-sqlite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-sqlite.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-sqlite.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;IACvD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,IAAI,IAAI,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"opencode-sqlite.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-sqlite.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;IACvD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC5D,KAAK,IAAI,IAAI,CAAC;CACf;AA0HD;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAMpF"}
|
|
@@ -9,14 +9,6 @@ function runBunPragma(db, sql) {
|
|
|
9
9
|
// ignore
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
function runPreparedPragma(db, sql) {
|
|
13
|
-
try {
|
|
14
|
-
db.prepare(sql).run();
|
|
15
|
-
}
|
|
16
|
-
catch {
|
|
17
|
-
// ignore
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
12
|
function runNodePragma(db, sql) {
|
|
21
13
|
try {
|
|
22
14
|
db.exec(sql);
|
|
@@ -25,7 +17,17 @@ function runNodePragma(db, sql) {
|
|
|
25
17
|
// ignore
|
|
26
18
|
}
|
|
27
19
|
}
|
|
28
|
-
function
|
|
20
|
+
async function openWithNodeSqlite(dbPath) {
|
|
21
|
+
const mod = (await import("node:sqlite"));
|
|
22
|
+
const db = new mod.DatabaseSync(dbPath, {
|
|
23
|
+
readOnly: true,
|
|
24
|
+
enableForeignKeyConstraints: true,
|
|
25
|
+
open: true,
|
|
26
|
+
});
|
|
27
|
+
// Keep reads deterministic and avoid accidental writes.
|
|
28
|
+
runNodePragma(db, "PRAGMA query_only = ON;");
|
|
29
|
+
// Avoid transient SQLITE_BUSY errors (WAL).
|
|
30
|
+
runNodePragma(db, "PRAGMA busy_timeout = 5000;");
|
|
29
31
|
return {
|
|
30
32
|
all(sql, params) {
|
|
31
33
|
const stmt = db.prepare(sql);
|
|
@@ -73,51 +75,14 @@ async function openWithBunSqlite(dbPath) {
|
|
|
73
75
|
},
|
|
74
76
|
};
|
|
75
77
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
catch {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
async function openWithNodeSqlite(dbPath, mod) {
|
|
85
|
-
const db = new mod.DatabaseSync(dbPath, {
|
|
86
|
-
readOnly: true,
|
|
87
|
-
enableForeignKeyConstraints: true,
|
|
88
|
-
open: true,
|
|
89
|
-
});
|
|
90
|
-
// Keep reads deterministic and avoid accidental writes.
|
|
91
|
-
runNodePragma(db, "PRAGMA query_only = ON;");
|
|
92
|
-
// Avoid transient SQLITE_BUSY errors (WAL).
|
|
93
|
-
runNodePragma(db, "PRAGMA busy_timeout = 5000;");
|
|
94
|
-
return createPreparedSqliteConn(db);
|
|
95
|
-
}
|
|
96
|
-
async function openWithBetterSqlite3(dbPath) {
|
|
97
|
-
const mod = (await import("better-sqlite3"));
|
|
98
|
-
const db = new mod.default(dbPath, { readonly: true });
|
|
99
|
-
// Keep reads deterministic and avoid accidental writes.
|
|
100
|
-
runPreparedPragma(db, "PRAGMA query_only = ON;");
|
|
101
|
-
// Avoid transient SQLITE_BUSY errors (WAL).
|
|
102
|
-
runPreparedPragma(db, "PRAGMA busy_timeout = 5000;");
|
|
103
|
-
return createPreparedSqliteConn(db);
|
|
104
|
-
}
|
|
105
|
-
async function openWithNodeRuntimeSqlite(dbPath) {
|
|
106
|
-
const nodeSqlite = await importNodeSqlite();
|
|
107
|
-
if (nodeSqlite) {
|
|
108
|
-
return openWithNodeSqlite(dbPath, nodeSqlite);
|
|
109
|
-
}
|
|
110
|
-
try {
|
|
111
|
-
return await openWithBetterSqlite3(dbPath);
|
|
112
|
-
}
|
|
113
|
-
catch (cause) {
|
|
114
|
-
throw new Error("OpenCode SQLite backend unavailable in this Node runtime; node:sqlite or optional better-sqlite3 is required for local history reads.", { cause });
|
|
115
|
-
}
|
|
116
|
-
}
|
|
78
|
+
/**
|
|
79
|
+
* Open OpenCode's SQLite database read-only.
|
|
80
|
+
* Inside OpenCode 2 (Bun) this uses bun:sqlite; the Node CLI uses node:sqlite.
|
|
81
|
+
*/
|
|
117
82
|
export async function openOpenCodeSqliteReadOnly(dbPath) {
|
|
118
|
-
if (
|
|
83
|
+
if ("Bun" in globalThis) {
|
|
119
84
|
return openWithBunSqlite(dbPath);
|
|
120
85
|
}
|
|
121
|
-
return
|
|
86
|
+
return openWithNodeSqlite(dbPath);
|
|
122
87
|
}
|
|
123
88
|
//# sourceMappingURL=opencode-sqlite.js.map
|