@slkiser/opencode-quota 4.0.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -28
- package/dist/bin/opencode-quota.d.ts.map +1 -1
- package/dist/bin/opencode-quota.js +8 -0
- package/dist/bin/opencode-quota.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/anthropic.d.ts.map +1 -1
- package/dist/lib/anthropic.js +78 -72
- package/dist/lib/anthropic.js.map +1 -1
- package/dist/lib/api-key-resolver.d.ts +73 -22
- package/dist/lib/api-key-resolver.d.ts.map +1 -1
- package/dist/lib/api-key-resolver.js +116 -39
- package/dist/lib/api-key-resolver.js.map +1 -1
- package/dist/lib/atomic-json.d.ts +3 -1
- package/dist/lib/atomic-json.d.ts.map +1 -1
- package/dist/lib/atomic-json.js +23 -9
- package/dist/lib/atomic-json.js.map +1 -1
- package/dist/lib/chutes-config.d.ts.map +1 -1
- package/dist/lib/chutes-config.js +2 -4
- package/dist/lib/chutes-config.js.map +1 -1
- package/dist/lib/chutes.d.ts.map +1 -1
- package/dist/lib/chutes.js +28 -23
- package/dist/lib/chutes.js.map +1 -1
- package/dist/lib/cli-show.d.ts +9 -0
- package/dist/lib/cli-show.d.ts.map +1 -1
- package/dist/lib/cli-show.js +34 -5
- package/dist/lib/cli-show.js.map +1 -1
- package/dist/lib/cli-status.d.ts +8 -0
- package/dist/lib/cli-status.d.ts.map +1 -0
- package/dist/lib/cli-status.js +125 -0
- package/dist/lib/cli-status.js.map +1 -0
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +47 -12
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/copilot.d.ts +11 -5
- package/dist/lib/copilot.d.ts.map +1 -1
- package/dist/lib/copilot.js +378 -79
- package/dist/lib/copilot.js.map +1 -1
- package/dist/lib/deepseek-auth.d.ts.map +1 -1
- package/dist/lib/deepseek-auth.js +3 -7
- package/dist/lib/deepseek-auth.js.map +1 -1
- package/dist/lib/deepseek.d.ts.map +1 -1
- package/dist/lib/deepseek.js +22 -17
- package/dist/lib/deepseek.js.map +1 -1
- package/dist/lib/display-sanitize.d.ts.map +1 -1
- package/dist/lib/display-sanitize.js +8 -0
- package/dist/lib/display-sanitize.js.map +1 -1
- package/dist/lib/entries.d.ts +14 -0
- package/dist/lib/entries.d.ts.map +1 -1
- package/dist/lib/entries.js.map +1 -1
- package/dist/lib/format-utils.d.ts +7 -0
- package/dist/lib/format-utils.d.ts.map +1 -1
- package/dist/lib/format-utils.js +18 -0
- package/dist/lib/format-utils.js.map +1 -1
- package/dist/lib/format.d.ts +1 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +22 -7
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/glm-coding-plan.d.ts +18 -0
- package/dist/lib/glm-coding-plan.d.ts.map +1 -0
- package/dist/lib/glm-coding-plan.js +68 -0
- package/dist/lib/glm-coding-plan.js.map +1 -0
- package/dist/lib/google-agy-companion.d.ts +4 -25
- package/dist/lib/google-agy-companion.d.ts.map +1 -1
- package/dist/lib/google-agy-companion.js +47 -272
- package/dist/lib/google-agy-companion.js.map +1 -1
- package/dist/lib/google-agy.d.ts.map +1 -1
- package/dist/lib/google-agy.js +204 -111
- package/dist/lib/google-agy.js.map +1 -1
- package/dist/lib/google-antigravity-companion.d.ts +4 -25
- package/dist/lib/google-antigravity-companion.d.ts.map +1 -1
- package/dist/lib/google-antigravity-companion.js +44 -283
- package/dist/lib/google-antigravity-companion.js.map +1 -1
- package/dist/lib/google-companion-credentials.d.ts +70 -0
- package/dist/lib/google-companion-credentials.d.ts.map +1 -0
- package/dist/lib/google-companion-credentials.js +265 -0
- package/dist/lib/google-companion-credentials.js.map +1 -0
- package/dist/lib/google-gemini-cli-companion.d.ts +4 -25
- package/dist/lib/google-gemini-cli-companion.d.ts.map +1 -1
- package/dist/lib/google-gemini-cli-companion.js +47 -258
- package/dist/lib/google-gemini-cli-companion.js.map +1 -1
- package/dist/lib/google-gemini-cli.d.ts.map +1 -1
- package/dist/lib/google-gemini-cli.js +55 -61
- package/dist/lib/google-gemini-cli.js.map +1 -1
- package/dist/lib/google-token-cache.d.ts.map +1 -1
- package/dist/lib/google-token-cache.js +87 -34
- package/dist/lib/google-token-cache.js.map +1 -1
- package/dist/lib/google.d.ts.map +1 -1
- package/dist/lib/google.js +80 -84
- package/dist/lib/google.js.map +1 -1
- package/dist/lib/grouped-entry-normalization.d.ts.map +1 -1
- package/dist/lib/grouped-entry-normalization.js +7 -1
- package/dist/lib/grouped-entry-normalization.js.map +1 -1
- package/dist/lib/http.d.ts +12 -7
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +28 -15
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/init-installer.d.ts +2 -1
- package/dist/lib/init-installer.d.ts.map +1 -1
- package/dist/lib/init-installer.js +29 -2
- package/dist/lib/init-installer.js.map +1 -1
- package/dist/lib/kimi-auth.d.ts +3 -26
- package/dist/lib/kimi-auth.d.ts.map +1 -1
- package/dist/lib/kimi-auth.js +24 -91
- package/dist/lib/kimi-auth.js.map +1 -1
- package/dist/lib/kimi.d.ts.map +1 -1
- package/dist/lib/kimi.js +20 -15
- package/dist/lib/kimi.js.map +1 -1
- package/dist/lib/maintainer-announcements.d.ts.map +1 -1
- package/dist/lib/maintainer-announcements.js +5 -0
- package/dist/lib/maintainer-announcements.js.map +1 -1
- package/dist/lib/map-with-concurrency.d.ts +2 -0
- package/dist/lib/map-with-concurrency.d.ts.map +1 -0
- package/dist/lib/map-with-concurrency.js +17 -0
- package/dist/lib/map-with-concurrency.js.map +1 -0
- package/dist/lib/mimo-config.d.ts +29 -0
- package/dist/lib/mimo-config.d.ts.map +1 -0
- package/dist/lib/mimo-config.js +147 -0
- package/dist/lib/mimo-config.js.map +1 -0
- package/dist/lib/mimo.d.ts +35 -0
- package/dist/lib/mimo.d.ts.map +1 -0
- package/dist/lib/mimo.js +236 -0
- package/dist/lib/mimo.js.map +1 -0
- package/dist/lib/modelsdev-pricing.d.ts.map +1 -1
- package/dist/lib/modelsdev-pricing.js +39 -27
- package/dist/lib/modelsdev-pricing.js.map +1 -1
- package/dist/lib/nanogpt-config.d.ts.map +1 -1
- package/dist/lib/nanogpt-config.js +2 -4
- package/dist/lib/nanogpt-config.js.map +1 -1
- package/dist/lib/nanogpt.d.ts.map +1 -1
- package/dist/lib/nanogpt.js +40 -30
- package/dist/lib/nanogpt.js.map +1 -1
- package/dist/lib/ollama-cloud.d.ts +1 -1
- package/dist/lib/ollama-cloud.d.ts.map +1 -1
- package/dist/lib/ollama-cloud.js +73 -68
- package/dist/lib/ollama-cloud.js.map +1 -1
- package/dist/lib/openai.d.ts.map +1 -1
- package/dist/lib/openai.js +53 -48
- package/dist/lib/openai.js.map +1 -1
- package/dist/lib/opencode-config-providers.d.ts.map +1 -1
- package/dist/lib/opencode-config-providers.js +13 -16
- package/dist/lib/opencode-config-providers.js.map +1 -1
- package/dist/lib/opencode-config-read.d.ts +23 -0
- package/dist/lib/opencode-config-read.d.ts.map +1 -0
- package/dist/lib/opencode-config-read.js +30 -0
- package/dist/lib/opencode-config-read.js.map +1 -0
- package/dist/lib/opencode-go.d.ts.map +1 -1
- package/dist/lib/opencode-go.js +44 -39
- package/dist/lib/opencode-go.js.map +1 -1
- package/dist/lib/opencode-zen-config.d.ts +34 -0
- package/dist/lib/opencode-zen-config.d.ts.map +1 -0
- package/dist/lib/opencode-zen-config.js +103 -0
- package/dist/lib/opencode-zen-config.js.map +1 -0
- package/dist/lib/opencode-zen.d.ts +27 -0
- package/dist/lib/opencode-zen.d.ts.map +1 -0
- package/dist/lib/opencode-zen.js +143 -0
- package/dist/lib/opencode-zen.js.map +1 -0
- package/dist/lib/openrouter.d.ts +13 -0
- package/dist/lib/openrouter.d.ts.map +1 -0
- package/dist/lib/openrouter.js +41 -0
- package/dist/lib/openrouter.js.map +1 -0
- package/dist/lib/provider-add-command.d.ts.map +1 -1
- package/dist/lib/provider-add-command.js +4 -12
- package/dist/lib/provider-add-command.js.map +1 -1
- package/dist/lib/provider-add-json-v1-questionnaire.d.ts +32 -0
- package/dist/lib/provider-add-json-v1-questionnaire.d.ts.map +1 -0
- package/dist/lib/provider-add-json-v1-questionnaire.js +336 -0
- package/dist/lib/provider-add-json-v1-questionnaire.js.map +1 -0
- package/dist/lib/provider-availability.d.ts +2 -2
- package/dist/lib/provider-availability.d.ts.map +1 -1
- package/dist/lib/provider-availability.js +2 -3
- package/dist/lib/provider-availability.js.map +1 -1
- package/dist/lib/provider-metadata.d.ts +300 -1
- package/dist/lib/provider-metadata.d.ts.map +1 -1
- package/dist/lib/provider-metadata.js +332 -227
- package/dist/lib/provider-metadata.js.map +1 -1
- package/dist/lib/quota-command-format.d.ts.map +1 -1
- package/dist/lib/quota-command-format.js +12 -16
- package/dist/lib/quota-command-format.js.map +1 -1
- package/dist/lib/quota-dialog-commands.d.ts +59 -2
- package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
- package/dist/lib/quota-dialog-commands.js +73 -39
- package/dist/lib/quota-dialog-commands.js.map +1 -1
- package/dist/lib/quota-entry-display.d.ts +2 -0
- package/dist/lib/quota-entry-display.d.ts.map +1 -1
- package/dist/lib/quota-entry-display.js +27 -13
- package/dist/lib/quota-entry-display.js.map +1 -1
- package/dist/lib/quota-providers-remote.d.ts +0 -1
- package/dist/lib/quota-providers-remote.d.ts.map +1 -1
- package/dist/lib/quota-providers-remote.js +3 -16
- package/dist/lib/quota-providers-remote.js.map +1 -1
- package/dist/lib/quota-render-data.d.ts +4 -0
- package/dist/lib/quota-render-data.d.ts.map +1 -1
- package/dist/lib/quota-render-data.js +118 -127
- package/dist/lib/quota-render-data.js.map +1 -1
- package/dist/lib/quota-runtime-context.d.ts +9 -1
- package/dist/lib/quota-runtime-context.d.ts.map +1 -1
- package/dist/lib/quota-runtime-context.js +5 -0
- package/dist/lib/quota-runtime-context.js.map +1 -1
- package/dist/lib/quota-state.d.ts.map +1 -1
- package/dist/lib/quota-state.js +25 -1
- package/dist/lib/quota-state.js.map +1 -1
- package/dist/lib/quota-stats.d.ts +1 -0
- package/dist/lib/quota-stats.d.ts.map +1 -1
- package/dist/lib/quota-stats.js +14 -4
- package/dist/lib/quota-stats.js.map +1 -1
- package/dist/lib/quota-status.d.ts +7 -17
- package/dist/lib/quota-status.d.ts.map +1 -1
- package/dist/lib/quota-status.js +123 -948
- package/dist/lib/quota-status.js.map +1 -1
- package/dist/lib/runtime-provider-ids.d.ts +4 -0
- package/dist/lib/runtime-provider-ids.d.ts.map +1 -0
- package/dist/lib/runtime-provider-ids.js +10 -0
- package/dist/lib/runtime-provider-ids.js.map +1 -0
- package/dist/lib/session-tokens.d.ts +2 -0
- package/dist/lib/session-tokens.d.ts.map +1 -1
- package/dist/lib/session-tokens.js +4 -2
- package/dist/lib/session-tokens.js.map +1 -1
- package/dist/lib/synthetic-config.d.ts.map +1 -1
- package/dist/lib/synthetic-config.js +2 -4
- package/dist/lib/synthetic-config.js.map +1 -1
- package/dist/lib/synthetic.d.ts.map +1 -1
- package/dist/lib/synthetic.js +37 -32
- package/dist/lib/synthetic.js.map +1 -1
- package/dist/lib/toast-format-grouped.d.ts +1 -0
- package/dist/lib/toast-format-grouped.d.ts.map +1 -1
- package/dist/lib/toast-format-grouped.js +33 -29
- package/dist/lib/toast-format-grouped.js.map +1 -1
- package/dist/lib/tui-refresh-lifecycle.d.ts +17 -0
- package/dist/lib/tui-refresh-lifecycle.d.ts.map +1 -0
- package/dist/lib/tui-refresh-lifecycle.js +83 -0
- package/dist/lib/tui-refresh-lifecycle.js.map +1 -0
- package/dist/lib/tui-runtime.d.ts +0 -5
- package/dist/lib/tui-runtime.d.ts.map +1 -1
- package/dist/lib/tui-runtime.js +1 -6
- package/dist/lib/tui-runtime.js.map +1 -1
- package/dist/lib/tui-sidebar-format.d.ts +1 -1
- package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
- package/dist/lib/tui-sidebar-format.js +1 -0
- package/dist/lib/tui-sidebar-format.js.map +1 -1
- package/dist/lib/types.d.ts +72 -8
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/xai.d.ts +39 -0
- package/dist/lib/xai.d.ts.map +1 -0
- package/dist/lib/xai.js +153 -0
- package/dist/lib/xai.js.map +1 -0
- package/dist/lib/zai-auth.d.ts +3 -26
- package/dist/lib/zai-auth.d.ts.map +1 -1
- package/dist/lib/zai-auth.js +24 -94
- package/dist/lib/zai-auth.js.map +1 -1
- package/dist/lib/zai.d.ts +1 -8
- package/dist/lib/zai.d.ts.map +1 -1
- package/dist/lib/zai.js +11 -91
- package/dist/lib/zai.js.map +1 -1
- package/dist/lib/zhipu-auth.d.ts +3 -26
- package/dist/lib/zhipu-auth.d.ts.map +1 -1
- package/dist/lib/zhipu-auth.js +24 -94
- package/dist/lib/zhipu-auth.js.map +1 -1
- package/dist/lib/zhipu.d.ts +1 -8
- package/dist/lib/zhipu.d.ts.map +1 -1
- package/dist/lib/zhipu.js +10 -84
- package/dist/lib/zhipu.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +20 -145
- package/dist/plugin.js.map +1 -1
- package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
- package/dist/providers/alibaba-coding-plan.js +33 -6
- package/dist/providers/alibaba-coding-plan.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +35 -7
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/chutes.d.ts.map +1 -1
- package/dist/providers/chutes.js +10 -3
- package/dist/providers/chutes.js.map +1 -1
- package/dist/providers/copilot.d.ts.map +1 -1
- package/dist/providers/copilot.js +102 -31
- package/dist/providers/copilot.js.map +1 -1
- package/dist/providers/cursor.d.ts.map +1 -1
- package/dist/providers/cursor.js +34 -6
- package/dist/providers/cursor.js.map +1 -1
- package/dist/providers/deepseek.d.ts.map +1 -1
- package/dist/providers/deepseek.js +10 -3
- package/dist/providers/deepseek.js.map +1 -1
- package/dist/providers/glm-coding-plan-provider.d.ts +44 -0
- package/dist/providers/glm-coding-plan-provider.d.ts.map +1 -0
- package/dist/providers/glm-coding-plan-provider.js +62 -0
- package/dist/providers/glm-coding-plan-provider.js.map +1 -0
- package/dist/providers/google-agy.d.ts.map +1 -1
- package/dist/providers/google-agy.js +83 -42
- package/dist/providers/google-agy.js.map +1 -1
- package/dist/providers/google-antigravity.d.ts.map +1 -1
- package/dist/providers/google-antigravity.js +31 -6
- package/dist/providers/google-antigravity.js.map +1 -1
- package/dist/providers/google-gemini-cli.d.ts.map +1 -1
- package/dist/providers/google-gemini-cli.js +24 -6
- package/dist/providers/google-gemini-cli.js.map +1 -1
- package/dist/providers/kimi-code.d.ts.map +1 -1
- package/dist/providers/kimi-code.js +27 -8
- package/dist/providers/kimi-code.js.map +1 -1
- package/dist/providers/mimo.d.ts +3 -0
- package/dist/providers/mimo.d.ts.map +1 -0
- package/dist/providers/mimo.js +127 -0
- package/dist/providers/mimo.js.map +1 -0
- package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
- package/dist/providers/minimax-coding-plan.js +68 -32
- package/dist/providers/minimax-coding-plan.js.map +1 -1
- package/dist/providers/nanogpt.d.ts.map +1 -1
- package/dist/providers/nanogpt.js +41 -4
- package/dist/providers/nanogpt.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +20 -3
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/opencode-go.d.ts.map +1 -1
- package/dist/providers/opencode-go.js +33 -15
- package/dist/providers/opencode-go.js.map +1 -1
- package/dist/providers/opencode-zen.d.ts +3 -0
- package/dist/providers/opencode-zen.d.ts.map +1 -0
- package/dist/providers/opencode-zen.js +99 -0
- package/dist/providers/opencode-zen.js.map +1 -0
- package/dist/providers/openrouter.d.ts +6 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +25 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/quota-providers.d.ts.map +1 -1
- package/dist/providers/quota-providers.js +3 -3
- package/dist/providers/quota-providers.js.map +1 -1
- package/dist/providers/qwen-code.d.ts.map +1 -1
- package/dist/providers/qwen-code.js +19 -5
- package/dist/providers/qwen-code.js.map +1 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +8 -0
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/result-helpers.d.ts +29 -1
- package/dist/providers/result-helpers.d.ts.map +1 -1
- package/dist/providers/result-helpers.js +69 -0
- package/dist/providers/result-helpers.js.map +1 -1
- package/dist/providers/synthetic.d.ts.map +1 -1
- package/dist/providers/synthetic.js +10 -3
- package/dist/providers/synthetic.js.map +1 -1
- package/dist/providers/xai.d.ts +6 -0
- package/dist/providers/xai.d.ts.map +1 -0
- package/dist/providers/xai.js +51 -0
- package/dist/providers/xai.js.map +1 -0
- package/dist/providers/zai.d.ts +1 -7
- package/dist/providers/zai.d.ts.map +1 -1
- package/dist/providers/zai.js +11 -46
- package/dist/providers/zai.js.map +1 -1
- package/dist/providers/zhipu.d.ts +1 -7
- package/dist/providers/zhipu.d.ts.map +1 -1
- package/dist/providers/zhipu.js +11 -46
- package/dist/providers/zhipu.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +47 -136
- package/dist/tui.tsx +62 -179
- package/package.json +1 -1
|
@@ -1,300 +1,61 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { pathToFileURL } from "node:url";
|
|
6
|
-
import { getOpencodeRuntimeDirCandidates } from "./opencode-runtime-paths.js";
|
|
7
|
-
const require = createRequire(import.meta.url);
|
|
8
|
-
const COMPANION_PACKAGE_NAME = "opencode-antigravity-auth";
|
|
9
|
-
const COMPANION_JS_IMPORT_SPECIFIERS = [
|
|
10
|
-
`${COMPANION_PACKAGE_NAME}/dist/src/constants.js`,
|
|
11
|
-
`${COMPANION_PACKAGE_NAME}/src/constants.js`,
|
|
12
|
-
];
|
|
13
|
-
const COMPANION_SOURCE_IMPORT_SPECIFIER = `${COMPANION_PACKAGE_NAME}/src/constants.ts`;
|
|
14
|
-
const COMPANION_PACKAGE_JSON_SPECIFIER = `${COMPANION_PACKAGE_NAME}/package.json`;
|
|
15
|
-
const COMPANION_DIRECT_CANDIDATE_PATHS = [
|
|
1
|
+
import { createGoogleCompanionCredentialResolver, } from "./google-companion-credentials.js";
|
|
2
|
+
const PACKAGE_NAME = "opencode-antigravity-auth";
|
|
3
|
+
const SOURCE_SPECIFIER = `${PACKAGE_NAME}/src/constants.ts`;
|
|
4
|
+
const RUNTIME_CANDIDATES = [
|
|
16
5
|
["dist", "src", "constants.js"],
|
|
17
6
|
["src", "constants.ts"],
|
|
18
7
|
["src", "constants.js"],
|
|
19
8
|
["dist", "index.js"],
|
|
20
9
|
];
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return message.includes("Cannot find module");
|
|
34
|
-
}
|
|
35
|
-
function isPackagePathNotExportedError(error) {
|
|
36
|
-
if (!error || typeof error !== "object") {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
return "code" in error && error.code === "ERR_PACKAGE_PATH_NOT_EXPORTED";
|
|
40
|
-
}
|
|
41
|
-
function isFallthroughResolutionError(error) {
|
|
42
|
-
return isModuleNotFoundError(error) || isPackagePathNotExportedError(error);
|
|
43
|
-
}
|
|
44
|
-
function normalizeCredential(value) {
|
|
45
|
-
return typeof value === "string" ? value.trim() : "";
|
|
46
|
-
}
|
|
47
|
-
function getCompanionResolvePaths() {
|
|
48
|
-
const paths = [
|
|
49
|
-
...getOpencodeRuntimeDirCandidates().cacheDirs,
|
|
50
|
-
];
|
|
51
|
-
return paths;
|
|
52
|
-
}
|
|
53
|
-
function getRuntimePackageRoots() {
|
|
54
|
-
const cacheDirs = getOpencodeRuntimeDirCandidates().cacheDirs;
|
|
55
|
-
const packageRoots = cacheDirs.map((cacheDir) => join(cacheDir, "node_modules", COMPANION_PACKAGE_NAME));
|
|
56
|
-
for (const cacheDir of cacheDirs) {
|
|
57
|
-
try {
|
|
58
|
-
const packagesDir = join(cacheDir, "packages");
|
|
59
|
-
const entries = readdirSync(packagesDir, { withFileTypes: true });
|
|
60
|
-
for (const entry of entries) {
|
|
61
|
-
if (entry.isDirectory() && entry.name.startsWith(COMPANION_PACKAGE_NAME)) {
|
|
62
|
-
packageRoots.push(join(packagesDir, entry.name));
|
|
63
|
-
packageRoots.push(join(packagesDir, entry.name, "node_modules", COMPANION_PACKAGE_NAME));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
// Ignore if packages dir doesn't exist
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return packageRoots;
|
|
72
|
-
}
|
|
73
|
-
function markPackageFoundForExportBlock(error, context) {
|
|
74
|
-
if (isPackagePathNotExportedError(error)) {
|
|
75
|
-
context.packageFound = true;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function resolveCompanionSpecifier(specifier, context) {
|
|
79
|
-
try {
|
|
80
|
-
return require.resolve(specifier);
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
83
|
-
markPackageFoundForExportBlock(error, context);
|
|
84
|
-
if (!isFallthroughResolutionError(error)) {
|
|
85
|
-
throw error;
|
|
86
|
-
}
|
|
87
|
-
try {
|
|
88
|
-
return require.resolve(specifier, { paths: getCompanionResolvePaths() });
|
|
89
|
-
}
|
|
90
|
-
catch (resolvePathsError) {
|
|
91
|
-
markPackageFoundForExportBlock(resolvePathsError, context);
|
|
92
|
-
throw resolvePathsError;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
function buildConfiguredState(params) {
|
|
97
|
-
return {
|
|
98
|
-
presence: {
|
|
99
|
-
state: "present",
|
|
100
|
-
importSpecifier: params.importSpecifier,
|
|
101
|
-
resolvedPath: params.resolvedPath,
|
|
10
|
+
const descriptor = {
|
|
11
|
+
packageName: PACKAGE_NAME,
|
|
12
|
+
packageScan: "unscoped",
|
|
13
|
+
clientIdExport: "ANTIGRAVITY_CLIENT_ID",
|
|
14
|
+
clientSecretExport: "ANTIGRAVITY_CLIENT_SECRET",
|
|
15
|
+
missingImportSpecifier: SOURCE_SPECIFIER,
|
|
16
|
+
missingError: `Install ${PACKAGE_NAME} separately to enable Google Antigravity quota`,
|
|
17
|
+
invalidError: `Installed ${PACKAGE_NAME} package is incompatible`,
|
|
18
|
+
stages: [
|
|
19
|
+
{
|
|
20
|
+
kind: "dynamic-import",
|
|
21
|
+
specifiers: [`${PACKAGE_NAME}/dist/src/constants.js`, `${PACKAGE_NAME}/src/constants.js`],
|
|
102
22
|
},
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
23
|
+
{
|
|
24
|
+
kind: "runtime-files",
|
|
25
|
+
importSpecifier: SOURCE_SPECIFIER,
|
|
26
|
+
candidatePaths: RUNTIME_CANDIDATES,
|
|
27
|
+
readErrors: "fallthrough-missing",
|
|
108
28
|
},
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
state: "invalid",
|
|
115
|
-
importSpecifier,
|
|
116
|
-
...(resolvedPath ? { resolvedPath } : {}),
|
|
117
|
-
error: COMPANION_INVALID_ERROR,
|
|
118
|
-
},
|
|
119
|
-
credentials: {
|
|
120
|
-
state: "invalid",
|
|
121
|
-
...(resolvedPath ? { resolvedPath } : {}),
|
|
122
|
-
error: COMPANION_INVALID_ERROR,
|
|
29
|
+
{
|
|
30
|
+
kind: "source-specifier",
|
|
31
|
+
importSpecifier: SOURCE_SPECIFIER,
|
|
32
|
+
searchRuntimePaths: true,
|
|
33
|
+
readErrors: "fallthrough-missing",
|
|
123
34
|
},
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
?.trim() ?? "";
|
|
133
|
-
return clientId && clientSecret ? { clientId, clientSecret } : null;
|
|
134
|
-
}
|
|
135
|
-
function getPackageCredentialPaths(packageRoot) {
|
|
136
|
-
return COMPANION_DIRECT_CANDIDATE_PATHS.map((parts) => join(packageRoot, ...parts));
|
|
137
|
-
}
|
|
138
|
-
function getRuntimeCredentialPaths() {
|
|
139
|
-
return getRuntimePackageRoots().flatMap((packageRoot) => getPackageCredentialPaths(packageRoot));
|
|
140
|
-
}
|
|
141
|
-
function isMissingFileError(error) {
|
|
142
|
-
if (!error || typeof error !== "object") {
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
const code = "code" in error ? error.code : undefined;
|
|
146
|
-
return code === "ENOENT" || code === "ENOTDIR";
|
|
147
|
-
}
|
|
148
|
-
async function tryReadCredentialsPath(importSpecifier, resolvedPath) {
|
|
149
|
-
let content;
|
|
150
|
-
try {
|
|
151
|
-
content = await readFile(resolvedPath, "utf8");
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
return isMissingFileError(error) ? null : buildInvalidState(importSpecifier, resolvedPath);
|
|
155
|
-
}
|
|
156
|
-
const credentials = parseSourceCredentials(content);
|
|
157
|
-
if (!credentials) {
|
|
158
|
-
return buildInvalidState(importSpecifier, resolvedPath);
|
|
159
|
-
}
|
|
160
|
-
return buildConfiguredState({
|
|
161
|
-
importSpecifier,
|
|
162
|
-
resolvedPath,
|
|
163
|
-
clientId: credentials.clientId,
|
|
164
|
-
clientSecret: credentials.clientSecret,
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
async function tryResolveJsConstants(importSpecifier, context) {
|
|
168
|
-
let resolvedPath;
|
|
169
|
-
try {
|
|
170
|
-
resolvedPath = resolveCompanionSpecifier(importSpecifier, context);
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
if (isFallthroughResolutionError(error)) {
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
return buildInvalidState(importSpecifier);
|
|
177
|
-
}
|
|
178
|
-
let companionModule;
|
|
179
|
-
try {
|
|
180
|
-
companionModule = (await import(pathToFileURL(resolvedPath).href));
|
|
181
|
-
}
|
|
182
|
-
catch {
|
|
183
|
-
return buildInvalidState(importSpecifier, resolvedPath);
|
|
184
|
-
}
|
|
185
|
-
const clientId = normalizeCredential(companionModule.ANTIGRAVITY_CLIENT_ID);
|
|
186
|
-
const clientSecret = normalizeCredential(companionModule.ANTIGRAVITY_CLIENT_SECRET);
|
|
187
|
-
if (!clientId || !clientSecret) {
|
|
188
|
-
return buildInvalidState(importSpecifier, resolvedPath);
|
|
189
|
-
}
|
|
190
|
-
return buildConfiguredState({ importSpecifier, resolvedPath, clientId, clientSecret });
|
|
191
|
-
}
|
|
192
|
-
async function tryRuntimeCredentialPaths() {
|
|
193
|
-
for (const candidatePath of getRuntimeCredentialPaths()) {
|
|
194
|
-
const resolved = await tryReadCredentialsPath(COMPANION_SOURCE_IMPORT_SPECIFIER, candidatePath);
|
|
195
|
-
if (resolved) {
|
|
196
|
-
return resolved;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return null;
|
|
200
|
-
}
|
|
201
|
-
async function tryResolveSourceConstants(context) {
|
|
202
|
-
let resolvedPath;
|
|
203
|
-
try {
|
|
204
|
-
resolvedPath = resolveCompanionSpecifier(COMPANION_SOURCE_IMPORT_SPECIFIER, context);
|
|
205
|
-
}
|
|
206
|
-
catch (error) {
|
|
207
|
-
return isFallthroughResolutionError(error)
|
|
208
|
-
? null
|
|
209
|
-
: buildInvalidState(COMPANION_SOURCE_IMPORT_SPECIFIER);
|
|
210
|
-
}
|
|
211
|
-
return ((await tryReadCredentialsPath(COMPANION_SOURCE_IMPORT_SPECIFIER, resolvedPath)) ??
|
|
212
|
-
buildInvalidState(COMPANION_SOURCE_IMPORT_SPECIFIER, resolvedPath));
|
|
213
|
-
}
|
|
214
|
-
async function tryResolvePackageJson(context) {
|
|
215
|
-
let packageJsonPath;
|
|
216
|
-
try {
|
|
217
|
-
packageJsonPath = resolveCompanionSpecifier(COMPANION_PACKAGE_JSON_SPECIFIER, context);
|
|
218
|
-
}
|
|
219
|
-
catch (error) {
|
|
220
|
-
return isFallthroughResolutionError(error)
|
|
221
|
-
? null
|
|
222
|
-
: buildInvalidState(COMPANION_PACKAGE_JSON_SPECIFIER);
|
|
223
|
-
}
|
|
224
|
-
const packageRoot = dirname(packageJsonPath);
|
|
225
|
-
for (const candidatePath of getPackageCredentialPaths(packageRoot)) {
|
|
226
|
-
const resolved = await tryReadCredentialsPath(COMPANION_PACKAGE_JSON_SPECIFIER, candidatePath);
|
|
227
|
-
if (resolved) {
|
|
228
|
-
return resolved;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return buildInvalidState(COMPANION_PACKAGE_JSON_SPECIFIER, packageJsonPath);
|
|
232
|
-
}
|
|
233
|
-
async function tryResolvePackageEntry(context) {
|
|
234
|
-
let packageEntryPath;
|
|
235
|
-
try {
|
|
236
|
-
packageEntryPath = resolveCompanionSpecifier(COMPANION_PACKAGE_NAME, context);
|
|
237
|
-
}
|
|
238
|
-
catch (error) {
|
|
239
|
-
return isFallthroughResolutionError(error) ? null : buildInvalidState(COMPANION_PACKAGE_NAME);
|
|
240
|
-
}
|
|
241
|
-
return ((await tryReadCredentialsPath(COMPANION_PACKAGE_NAME, packageEntryPath)) ??
|
|
242
|
-
buildInvalidState(COMPANION_PACKAGE_NAME, packageEntryPath));
|
|
243
|
-
}
|
|
244
|
-
async function resolveCompanionState() {
|
|
245
|
-
const context = { packageFound: false };
|
|
246
|
-
for (const importSpecifier of COMPANION_JS_IMPORT_SPECIFIERS) {
|
|
247
|
-
const resolved = await tryResolveJsConstants(importSpecifier, context);
|
|
248
|
-
if (resolved) {
|
|
249
|
-
return resolved;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
const runtimeResolved = await tryRuntimeCredentialPaths();
|
|
253
|
-
if (runtimeResolved) {
|
|
254
|
-
return runtimeResolved;
|
|
255
|
-
}
|
|
256
|
-
const sourceResolved = await tryResolveSourceConstants(context);
|
|
257
|
-
if (sourceResolved) {
|
|
258
|
-
return sourceResolved;
|
|
259
|
-
}
|
|
260
|
-
const packageJsonResolved = await tryResolvePackageJson(context);
|
|
261
|
-
if (packageJsonResolved) {
|
|
262
|
-
return packageJsonResolved;
|
|
263
|
-
}
|
|
264
|
-
const packageEntryResolved = await tryResolvePackageEntry(context);
|
|
265
|
-
if (packageEntryResolved) {
|
|
266
|
-
return packageEntryResolved;
|
|
267
|
-
}
|
|
268
|
-
if (context.packageFound) {
|
|
269
|
-
return buildInvalidState(COMPANION_PACKAGE_NAME);
|
|
270
|
-
}
|
|
271
|
-
return {
|
|
272
|
-
presence: {
|
|
273
|
-
state: "missing",
|
|
274
|
-
importSpecifier: COMPANION_SOURCE_IMPORT_SPECIFIER,
|
|
275
|
-
error: COMPANION_MISSING_ERROR,
|
|
35
|
+
{
|
|
36
|
+
kind: "package-json",
|
|
37
|
+
importSpecifier: `${PACKAGE_NAME}/package.json`,
|
|
38
|
+
candidateImportSpecifier: `${PACKAGE_NAME}/package.json`,
|
|
39
|
+
candidatePaths: RUNTIME_CANDIDATES,
|
|
40
|
+
readErrors: "fallthrough-missing",
|
|
41
|
+
resolutionErrorImportSpecifier: `${PACKAGE_NAME}/package.json`,
|
|
42
|
+
exhaustedInvalidPath: "package-json",
|
|
276
43
|
},
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
44
|
+
{
|
|
45
|
+
kind: "package-entry",
|
|
46
|
+
importSpecifier: PACKAGE_NAME,
|
|
47
|
+
readErrors: "fallthrough-missing",
|
|
280
48
|
},
|
|
281
|
-
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
if (!resolvedCompanionStatePromise) {
|
|
285
|
-
resolvedCompanionStatePromise = resolveCompanionState();
|
|
286
|
-
}
|
|
287
|
-
return resolvedCompanionStatePromise;
|
|
288
|
-
}
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
const resolver = createGoogleCompanionCredentialResolver(descriptor);
|
|
289
52
|
export async function inspectAntigravityCompanionPresence() {
|
|
290
|
-
|
|
291
|
-
return resolved.presence;
|
|
53
|
+
return resolver.inspect();
|
|
292
54
|
}
|
|
293
55
|
export async function resolveAntigravityClientCredentials() {
|
|
294
|
-
|
|
295
|
-
return resolved.credentials;
|
|
56
|
+
return resolver.resolveCredentials();
|
|
296
57
|
}
|
|
297
58
|
export function clearAntigravityCompanionCacheForTests() {
|
|
298
|
-
|
|
59
|
+
resolver.clearCacheForTests();
|
|
299
60
|
}
|
|
300
61
|
//# sourceMappingURL=google-antigravity-companion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-antigravity-companion.js","sourceRoot":"","sources":["../../src/lib/google-antigravity-companion.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"google-antigravity-companion.js","sourceRoot":"","sources":["../../src/lib/google-antigravity-companion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uCAAuC,GAKxC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,YAAY,GAAG,2BAA2B,CAAC;AACjD,MAAM,gBAAgB,GAAG,GAAG,YAAY,mBAAmB,CAAC;AAC5D,MAAM,kBAAkB,GAAG;IACzB,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC;IAC/B,CAAC,KAAK,EAAE,cAAc,CAAC;IACvB,CAAC,KAAK,EAAE,cAAc,CAAC;IACvB,CAAC,MAAM,EAAE,UAAU,CAAC;CACZ,CAAC;AAEX,MAAM,UAAU,GAAG;IACjB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,UAAU;IACvB,cAAc,EAAE,uBAAuB;IACvC,kBAAkB,EAAE,2BAA2B;IAC/C,sBAAsB,EAAE,gBAAgB;IACxC,YAAY,EAAE,WAAW,YAAY,gDAAgD;IACrF,YAAY,EAAE,aAAa,YAAY,0BAA0B;IACjE,MAAM,EAAE;QACN;YACE,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE,CAAC,GAAG,YAAY,wBAAwB,EAAE,GAAG,YAAY,mBAAmB,CAAC;SAC1F;QACD;YACE,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,gBAAgB;YACjC,cAAc,EAAE,kBAAkB;YAClC,UAAU,EAAE,qBAAqB;SAClC;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,eAAe,EAAE,gBAAgB;YACjC,kBAAkB,EAAE,IAAI;YACxB,UAAU,EAAE,qBAAqB;SAClC;QACD;YACE,IAAI,EAAE,cAAc;YACpB,eAAe,EAAE,GAAG,YAAY,eAAe;YAC/C,wBAAwB,EAAE,GAAG,YAAY,eAAe;YACxD,cAAc,EAAE,kBAAkB;YAClC,UAAU,EAAE,qBAAqB;YACjC,8BAA8B,EAAE,GAAG,YAAY,eAAe;YAC9D,oBAAoB,EAAE,cAAc;SACrC;QACD;YACE,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,YAAY;YAC7B,UAAU,EAAE,qBAAqB;SAClC;KACF;CAC2C,CAAC;AAE/C,MAAM,QAAQ,GAAG,uCAAuC,CAAC,UAAU,CAAC,CAAC;AAMrE,MAAM,CAAC,KAAK,UAAU,mCAAmC;IACvD,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mCAAmC;IACvD,OAAO,QAAQ,CAAC,kBAAkB,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,sCAAsC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
type RelativePath = readonly string[];
|
|
2
|
+
type ReadErrorPolicy = "fallthrough-all" | "fallthrough-missing";
|
|
3
|
+
export type GoogleCompanionPresence = {
|
|
4
|
+
state: "present";
|
|
5
|
+
importSpecifier: string;
|
|
6
|
+
resolvedPath: string;
|
|
7
|
+
} | {
|
|
8
|
+
state: "missing";
|
|
9
|
+
importSpecifier: string;
|
|
10
|
+
error: string;
|
|
11
|
+
} | {
|
|
12
|
+
state: "invalid";
|
|
13
|
+
importSpecifier: string;
|
|
14
|
+
error: string;
|
|
15
|
+
resolvedPath?: string;
|
|
16
|
+
};
|
|
17
|
+
export type GoogleCompanionConfiguredCredentials = {
|
|
18
|
+
state: "configured";
|
|
19
|
+
clientId: string;
|
|
20
|
+
clientSecret: string;
|
|
21
|
+
resolvedPath: string;
|
|
22
|
+
};
|
|
23
|
+
export type GoogleCompanionClientCredentials = GoogleCompanionConfiguredCredentials | {
|
|
24
|
+
state: "missing" | "invalid";
|
|
25
|
+
error: string;
|
|
26
|
+
resolvedPath?: string;
|
|
27
|
+
};
|
|
28
|
+
export type GoogleCompanionResolutionStage = {
|
|
29
|
+
kind: "dynamic-import";
|
|
30
|
+
specifiers: readonly string[];
|
|
31
|
+
} | {
|
|
32
|
+
kind: "runtime-files";
|
|
33
|
+
importSpecifier: string;
|
|
34
|
+
candidatePaths: readonly RelativePath[];
|
|
35
|
+
readErrors: ReadErrorPolicy;
|
|
36
|
+
} | {
|
|
37
|
+
kind: "source-specifier";
|
|
38
|
+
importSpecifier: string;
|
|
39
|
+
searchRuntimePaths: boolean;
|
|
40
|
+
readErrors: ReadErrorPolicy;
|
|
41
|
+
} | {
|
|
42
|
+
kind: "package-json";
|
|
43
|
+
importSpecifier: string;
|
|
44
|
+
candidateImportSpecifier: string;
|
|
45
|
+
candidatePaths: readonly RelativePath[];
|
|
46
|
+
readErrors: ReadErrorPolicy;
|
|
47
|
+
resolutionErrorImportSpecifier: string;
|
|
48
|
+
exhaustedInvalidPath: "package-json" | "first-candidate";
|
|
49
|
+
} | {
|
|
50
|
+
kind: "package-entry";
|
|
51
|
+
importSpecifier: string;
|
|
52
|
+
readErrors: ReadErrorPolicy;
|
|
53
|
+
};
|
|
54
|
+
export type GoogleCompanionDescriptor = {
|
|
55
|
+
packageName: string;
|
|
56
|
+
packageScan: "scoped" | "unscoped";
|
|
57
|
+
clientIdExport: string;
|
|
58
|
+
clientSecretExport: string;
|
|
59
|
+
missingImportSpecifier: string;
|
|
60
|
+
missingError: string;
|
|
61
|
+
invalidError: string;
|
|
62
|
+
stages: readonly GoogleCompanionResolutionStage[];
|
|
63
|
+
};
|
|
64
|
+
export declare function createGoogleCompanionCredentialResolver(descriptor: GoogleCompanionDescriptor): {
|
|
65
|
+
inspect: () => Promise<GoogleCompanionPresence>;
|
|
66
|
+
resolveCredentials: () => Promise<GoogleCompanionClientCredentials>;
|
|
67
|
+
clearCacheForTests: () => void;
|
|
68
|
+
};
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=google-companion-credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-companion-credentials.d.ts","sourceRoot":"","sources":["../../src/lib/google-companion-credentials.ts"],"names":[],"mappings":"AAUA,KAAK,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;AACtC,KAAK,eAAe,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAEjE,MAAM,MAAM,uBAAuB,GAC/B;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5D;IACE,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,MAAM,MAAM,oCAAoC,GAAG;IACjD,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GACxC,oCAAoC,GACpC;IACE,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AASN,MAAM,MAAM,8BAA8B,GACtC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACzD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,UAAU,EAAE,eAAe,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,eAAe,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,UAAU,EAAE,eAAe,CAAC;IAC5B,8BAA8B,EAAE,MAAM,CAAC;IACvC,oBAAoB,EAAE,cAAc,GAAG,iBAAiB,CAAC;CAC1D,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEN,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,QAAQ,GAAG,UAAU,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,8BAA8B,EAAE,CAAC;CACnD,CAAC;AAsSF,wBAAgB,uCAAuC,CAAC,UAAU,EAAE,yBAAyB,GAAG;IAC9F,OAAO,EAAE,MAAM,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAChD,kBAAkB,EAAE,MAAM,OAAO,CAAC,gCAAgC,CAAC,CAAC;IACpE,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC,CAmCA"}
|