@slkiser/opencode-quota 2.15.0 → 2.16.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 +84 -44
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/alibaba-auth.d.ts +6 -1
- package/dist/lib/alibaba-auth.d.ts.map +1 -1
- package/dist/lib/alibaba-auth.js +51 -7
- package/dist/lib/alibaba-auth.js.map +1 -1
- package/dist/lib/api-key-resolver.d.ts +30 -4
- package/dist/lib/api-key-resolver.d.ts.map +1 -1
- package/dist/lib/api-key-resolver.js +37 -23
- package/dist/lib/api-key-resolver.js.map +1 -1
- package/dist/lib/minimax-auth.d.ts +9 -3
- package/dist/lib/minimax-auth.d.ts.map +1 -1
- package/dist/lib/minimax-auth.js +49 -9
- package/dist/lib/minimax-auth.js.map +1 -1
- package/dist/lib/opencode-go-config.d.ts +35 -0
- package/dist/lib/opencode-go-config.d.ts.map +1 -0
- package/dist/lib/opencode-go-config.js +124 -0
- package/dist/lib/opencode-go-config.js.map +1 -0
- package/dist/lib/opencode-go.d.ts +15 -0
- package/dist/lib/opencode-go.d.ts.map +1 -0
- package/dist/lib/opencode-go.js +88 -0
- package/dist/lib/opencode-go.js.map +1 -0
- package/dist/lib/provider-metadata.d.ts +1 -1
- package/dist/lib/provider-metadata.d.ts.map +1 -1
- package/dist/lib/provider-metadata.js +13 -0
- package/dist/lib/provider-metadata.js.map +1 -1
- package/dist/lib/quota-status.d.ts.map +1 -1
- package/dist/lib/quota-status.js +58 -6
- package/dist/lib/quota-status.js.map +1 -1
- package/dist/lib/types.d.ts +12 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +10 -2
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/zai-auth.d.ts +6 -1
- package/dist/lib/zai-auth.d.ts.map +1 -1
- package/dist/lib/zai-auth.js +46 -7
- package/dist/lib/zai-auth.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +63 -40
- package/dist/plugin.js.map +1 -1
- package/dist/providers/opencode-go.d.ts +9 -0
- package/dist/providers/opencode-go.d.ts.map +1 -0
- package/dist/providers/opencode-go.js +80 -0
- package/dist/providers/opencode-go.js.map +1 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +2 -0
- package/dist/providers/registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimax-auth.d.ts","sourceRoot":"","sources":["../../src/lib/minimax-auth.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"minimax-auth.d.ts","sourceRoot":"","sources":["../../src/lib/minimax-auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAI5D,eAAO,MAAM,qCAAqC,OAAQ,CAAC;AAK3D,MAAM,MAAM,gBAAgB,GACxB,iCAAiC,GACjC,qBAAqB,GACrB,eAAe,GACf,gBAAgB,GAChB,WAAW,CAAC;AAEhB,MAAM,MAAM,mBAAmB,GAC3B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,MAAM,MAAM,sBAAsB,GAC9B;IACE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,IAAI,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,GACD;IACE,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,GACD;IACE,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,OAAO,EAAE,qCAAqC,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAqBjH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,CA2BzF;AA0CD,wBAAsB,wBAAwB,CAAC,MAAM,CAAC,EAAE;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAE/B;AAED,wBAAsB,yBAAyB,CAAC,MAAM,CAAC,EAAE;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAiClC"}
|
package/dist/lib/minimax-auth.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MiniMax auth resolver
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Resolves MiniMax credentials from trusted env vars, trusted user/global
|
|
5
|
+
* OpenCode config, and auth.json fallback into the standardized shape used
|
|
6
|
+
* by the MiniMax Coding Plan provider.
|
|
6
7
|
*/
|
|
7
|
-
import { getFirstAuthEntryValue } from "./api-key-resolver.js";
|
|
8
|
+
import { extractProviderOptionsApiKey, getApiKeyCheckedPaths, getFirstAuthEntryValue, getGlobalOpencodeConfigCandidatePaths, resolveApiKeyFromEnvAndConfig, } from "./api-key-resolver.js";
|
|
8
9
|
import { sanitizeDisplayText } from "./display-sanitize.js";
|
|
9
10
|
import { getAuthPaths, readAuthFileCached } from "./opencode-auth.js";
|
|
10
11
|
export const DEFAULT_MINIMAX_AUTH_CACHE_MAX_AGE_MS = 5_000;
|
|
11
12
|
const MINIMAX_AUTH_KEYS = ["minimax-coding-plan"];
|
|
13
|
+
const MINIMAX_PROVIDER_KEYS = ["minimax-coding-plan", "minimax"];
|
|
14
|
+
const ALLOWED_MINIMAX_ENV_VARS = ["MINIMAX_CODING_PLAN_API_KEY", "MINIMAX_API_KEY"];
|
|
15
|
+
export { getGlobalOpencodeConfigCandidatePaths as getOpencodeConfigCandidatePaths } from "./api-key-resolver.js";
|
|
12
16
|
function getMiniMaxAuthEntry(auth) {
|
|
13
17
|
return getFirstAuthEntryValue(auth, MINIMAX_AUTH_KEYS);
|
|
14
18
|
}
|
|
@@ -54,21 +58,55 @@ export function resolveMiniMaxAuth(auth) {
|
|
|
54
58
|
}
|
|
55
59
|
return { state: "configured", apiKey: credential };
|
|
56
60
|
}
|
|
57
|
-
|
|
61
|
+
async function resolveMiniMaxAuthWithSource(params) {
|
|
62
|
+
const resolvedFromEnvOrConfig = await resolveApiKeyFromEnvAndConfig({
|
|
63
|
+
envVars: [
|
|
64
|
+
{
|
|
65
|
+
name: "MINIMAX_CODING_PLAN_API_KEY",
|
|
66
|
+
source: "env:MINIMAX_CODING_PLAN_API_KEY",
|
|
67
|
+
},
|
|
68
|
+
{ name: "MINIMAX_API_KEY", source: "env:MINIMAX_API_KEY" },
|
|
69
|
+
],
|
|
70
|
+
extractFromConfig: (config) => extractProviderOptionsApiKey(config, {
|
|
71
|
+
providerKeys: MINIMAX_PROVIDER_KEYS,
|
|
72
|
+
allowedEnvVars: ALLOWED_MINIMAX_ENV_VARS,
|
|
73
|
+
}),
|
|
74
|
+
configJsonSource: "opencode.json",
|
|
75
|
+
configJsoncSource: "opencode.jsonc",
|
|
76
|
+
getConfigCandidates: getGlobalOpencodeConfigCandidatePaths,
|
|
77
|
+
});
|
|
78
|
+
if (resolvedFromEnvOrConfig) {
|
|
79
|
+
return {
|
|
80
|
+
auth: { state: "configured", apiKey: resolvedFromEnvOrConfig.key },
|
|
81
|
+
source: resolvedFromEnvOrConfig.source,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
58
84
|
const maxAgeMs = Math.max(0, params?.maxAgeMs ?? DEFAULT_MINIMAX_AUTH_CACHE_MAX_AGE_MS);
|
|
59
|
-
const
|
|
85
|
+
const authData = await readAuthFileCached({
|
|
60
86
|
maxAgeMs,
|
|
61
87
|
});
|
|
62
|
-
|
|
88
|
+
const auth = resolveMiniMaxAuth(authData);
|
|
89
|
+
return {
|
|
90
|
+
auth,
|
|
91
|
+
source: auth.state === "none" ? null : "auth.json",
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export async function resolveMiniMaxAuthCached(params) {
|
|
95
|
+
return (await resolveMiniMaxAuthWithSource(params)).auth;
|
|
63
96
|
}
|
|
64
97
|
export async function getMiniMaxAuthDiagnostics(params) {
|
|
65
|
-
const auth = await
|
|
66
|
-
const checkedPaths =
|
|
98
|
+
const { auth, source } = await resolveMiniMaxAuthWithSource(params);
|
|
99
|
+
const checkedPaths = getApiKeyCheckedPaths({
|
|
100
|
+
envVarNames: [...ALLOWED_MINIMAX_ENV_VARS],
|
|
101
|
+
getConfigCandidates: getGlobalOpencodeConfigCandidatePaths,
|
|
102
|
+
});
|
|
103
|
+
const authPaths = getAuthPaths();
|
|
67
104
|
if (auth.state === "none") {
|
|
68
105
|
return {
|
|
69
106
|
state: "none",
|
|
70
107
|
source: null,
|
|
71
108
|
checkedPaths,
|
|
109
|
+
authPaths,
|
|
72
110
|
};
|
|
73
111
|
}
|
|
74
112
|
if (auth.state === "invalid") {
|
|
@@ -76,13 +114,15 @@ export async function getMiniMaxAuthDiagnostics(params) {
|
|
|
76
114
|
state: "invalid",
|
|
77
115
|
source: "auth.json",
|
|
78
116
|
checkedPaths,
|
|
117
|
+
authPaths,
|
|
79
118
|
error: auth.error,
|
|
80
119
|
};
|
|
81
120
|
}
|
|
82
121
|
return {
|
|
83
122
|
state: "configured",
|
|
84
|
-
source: "auth.json",
|
|
123
|
+
source: source ?? "auth.json",
|
|
85
124
|
checkedPaths,
|
|
125
|
+
authPaths,
|
|
86
126
|
};
|
|
87
127
|
}
|
|
88
128
|
//# sourceMappingURL=minimax-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimax-auth.js","sourceRoot":"","sources":["../../src/lib/minimax-auth.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"minimax-auth.js","sourceRoot":"","sources":["../../src/lib/minimax-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface OpenCodeGoConfig {
|
|
2
|
+
workspaceId: string;
|
|
3
|
+
authCookie: string;
|
|
4
|
+
}
|
|
5
|
+
export type ResolvedOpenCodeGoConfig = {
|
|
6
|
+
state: "none";
|
|
7
|
+
} | {
|
|
8
|
+
state: "configured";
|
|
9
|
+
config: OpenCodeGoConfig;
|
|
10
|
+
source: string;
|
|
11
|
+
} | {
|
|
12
|
+
state: "incomplete";
|
|
13
|
+
source: string;
|
|
14
|
+
missing: string;
|
|
15
|
+
} | {
|
|
16
|
+
state: "invalid";
|
|
17
|
+
source: string;
|
|
18
|
+
error: string;
|
|
19
|
+
};
|
|
20
|
+
export interface OpenCodeGoConfigDiagnostics {
|
|
21
|
+
state: ResolvedOpenCodeGoConfig["state"];
|
|
22
|
+
source: string | null;
|
|
23
|
+
missing: string | null;
|
|
24
|
+
error: string | null;
|
|
25
|
+
checkedPaths: string[];
|
|
26
|
+
}
|
|
27
|
+
export declare function resolveOpenCodeGoConfigFromEnv(env?: NodeJS.ProcessEnv): ResolvedOpenCodeGoConfig | null;
|
|
28
|
+
export declare function resolveOpenCodeGoConfig(): Promise<ResolvedOpenCodeGoConfig>;
|
|
29
|
+
declare const DEFAULT_CACHE_MAX_AGE_MS = 30000;
|
|
30
|
+
export { DEFAULT_CACHE_MAX_AGE_MS as DEFAULT_OPENCODE_GO_CONFIG_CACHE_MAX_AGE_MS };
|
|
31
|
+
export declare function resolveOpenCodeGoConfigCached(params?: {
|
|
32
|
+
maxAgeMs?: number;
|
|
33
|
+
}): Promise<ResolvedOpenCodeGoConfig>;
|
|
34
|
+
export declare function getOpenCodeGoConfigDiagnostics(): Promise<OpenCodeGoConfigDiagnostics>;
|
|
35
|
+
//# sourceMappingURL=opencode-go-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-go-config.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-go-config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAsCD,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,wBAAwB,GAAG,IAAI,CAmBjC;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CA8BjF;AAKD,QAAA,MAAM,wBAAwB,QAAS,CAAC;AACxC,OAAO,EAAE,wBAAwB,IAAI,2CAA2C,EAAE,CAAC;AAEnF,wBAAsB,6BAA6B,CAAC,MAAM,CAAC,EAAE;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CASpC;AAED,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAmC3F"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { readFile } from "fs/promises";
|
|
2
|
+
import { join } from "path";
|
|
3
|
+
import { getOpencodeRuntimeDirCandidates } from "./opencode-runtime-paths.js";
|
|
4
|
+
function getConfigCandidatePaths() {
|
|
5
|
+
const { configDirs } = getOpencodeRuntimeDirCandidates();
|
|
6
|
+
return configDirs.map((dir) => join(dir, "opencode-quota", "opencode-go.json"));
|
|
7
|
+
}
|
|
8
|
+
function getConfigFileError(error) {
|
|
9
|
+
if (error instanceof SyntaxError) {
|
|
10
|
+
return `Failed to parse JSON: ${error.message}`;
|
|
11
|
+
}
|
|
12
|
+
if (error instanceof Error && error.message) {
|
|
13
|
+
return `Failed to read config file: ${error.message}`;
|
|
14
|
+
}
|
|
15
|
+
return `Failed to read config file: ${String(error)}`;
|
|
16
|
+
}
|
|
17
|
+
async function readConfigFile(path) {
|
|
18
|
+
try {
|
|
19
|
+
const data = await readFile(path, "utf-8");
|
|
20
|
+
const parsed = JSON.parse(data);
|
|
21
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
22
|
+
return { state: "invalid", error: "Config file must contain a JSON object" };
|
|
23
|
+
}
|
|
24
|
+
return { state: "loaded", config: parsed };
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (error?.code === "ENOENT") {
|
|
28
|
+
return { state: "missing" };
|
|
29
|
+
}
|
|
30
|
+
return { state: "invalid", error: getConfigFileError(error) };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function resolveOpenCodeGoConfigFromEnv(env = process.env) {
|
|
34
|
+
const workspaceId = env.OPENCODE_GO_WORKSPACE_ID?.trim();
|
|
35
|
+
const authCookie = env.OPENCODE_GO_AUTH_COOKIE?.trim();
|
|
36
|
+
if (!workspaceId && !authCookie)
|
|
37
|
+
return null;
|
|
38
|
+
if (workspaceId && authCookie) {
|
|
39
|
+
return {
|
|
40
|
+
state: "configured",
|
|
41
|
+
config: { workspaceId, authCookie },
|
|
42
|
+
source: "env",
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
state: "incomplete",
|
|
47
|
+
source: "env",
|
|
48
|
+
missing: workspaceId ? "OPENCODE_GO_AUTH_COOKIE" : "OPENCODE_GO_WORKSPACE_ID",
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export async function resolveOpenCodeGoConfig() {
|
|
52
|
+
const envResult = resolveOpenCodeGoConfigFromEnv();
|
|
53
|
+
if (envResult)
|
|
54
|
+
return envResult;
|
|
55
|
+
const candidates = getConfigCandidatePaths();
|
|
56
|
+
for (const path of candidates) {
|
|
57
|
+
const fileResult = await readConfigFile(path);
|
|
58
|
+
if (fileResult.state === "missing")
|
|
59
|
+
continue;
|
|
60
|
+
if (fileResult.state === "invalid") {
|
|
61
|
+
return { state: "invalid", source: path, error: fileResult.error };
|
|
62
|
+
}
|
|
63
|
+
const config = fileResult.config;
|
|
64
|
+
const workspaceId = typeof config.workspaceId === "string" ? config.workspaceId.trim() : "";
|
|
65
|
+
const authCookie = typeof config.authCookie === "string" ? config.authCookie.trim() : "";
|
|
66
|
+
if (workspaceId && authCookie) {
|
|
67
|
+
return {
|
|
68
|
+
state: "configured",
|
|
69
|
+
config: { workspaceId, authCookie },
|
|
70
|
+
source: path,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const missing = !workspaceId ? "workspaceId" : "authCookie";
|
|
74
|
+
return { state: "incomplete", source: path, missing };
|
|
75
|
+
}
|
|
76
|
+
return { state: "none" };
|
|
77
|
+
}
|
|
78
|
+
let cachedConfig = null;
|
|
79
|
+
let cachedAt = 0;
|
|
80
|
+
const DEFAULT_CACHE_MAX_AGE_MS = 30_000;
|
|
81
|
+
export { DEFAULT_CACHE_MAX_AGE_MS as DEFAULT_OPENCODE_GO_CONFIG_CACHE_MAX_AGE_MS };
|
|
82
|
+
export async function resolveOpenCodeGoConfigCached(params) {
|
|
83
|
+
const maxAgeMs = Math.max(0, params?.maxAgeMs ?? DEFAULT_CACHE_MAX_AGE_MS);
|
|
84
|
+
const now = Date.now();
|
|
85
|
+
if (cachedConfig && now - cachedAt < maxAgeMs) {
|
|
86
|
+
return cachedConfig;
|
|
87
|
+
}
|
|
88
|
+
cachedConfig = await resolveOpenCodeGoConfig();
|
|
89
|
+
cachedAt = now;
|
|
90
|
+
return cachedConfig;
|
|
91
|
+
}
|
|
92
|
+
export async function getOpenCodeGoConfigDiagnostics() {
|
|
93
|
+
const resolved = await resolveOpenCodeGoConfig();
|
|
94
|
+
const checkedPaths = getConfigCandidatePaths();
|
|
95
|
+
if (resolved.state === "none") {
|
|
96
|
+
return { state: "none", source: null, missing: null, error: null, checkedPaths };
|
|
97
|
+
}
|
|
98
|
+
if (resolved.state === "incomplete") {
|
|
99
|
+
return {
|
|
100
|
+
state: "incomplete",
|
|
101
|
+
source: resolved.source,
|
|
102
|
+
missing: resolved.missing,
|
|
103
|
+
error: null,
|
|
104
|
+
checkedPaths,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (resolved.state === "invalid") {
|
|
108
|
+
return {
|
|
109
|
+
state: "invalid",
|
|
110
|
+
source: resolved.source,
|
|
111
|
+
missing: null,
|
|
112
|
+
error: resolved.error,
|
|
113
|
+
checkedPaths,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
state: "configured",
|
|
118
|
+
source: resolved.source,
|
|
119
|
+
missing: null,
|
|
120
|
+
error: null,
|
|
121
|
+
checkedPaths,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=opencode-go-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-go-config.js","sourceRoot":"","sources":["../../src/lib/opencode-go-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode Go dashboard scraper.
|
|
3
|
+
*
|
|
4
|
+
* Fetches the OpenCode Go workspace page and parses SolidJS SSR hydration
|
|
5
|
+
* output for `monthlyUsage` containing `usagePercent` and `resetInSec`.
|
|
6
|
+
*/
|
|
7
|
+
import type { OpenCodeGoResult } from "./types.js";
|
|
8
|
+
interface ScrapedMonthlyUsage {
|
|
9
|
+
usagePercent: number;
|
|
10
|
+
resetInSec: number;
|
|
11
|
+
}
|
|
12
|
+
declare function parseMonthlyUsage(html: string): ScrapedMonthlyUsage | null;
|
|
13
|
+
export declare function queryOpenCodeGoQuota(workspaceId: string, authCookie: string): Promise<OpenCodeGoResult>;
|
|
14
|
+
export { parseMonthlyUsage as _parseMonthlyUsage };
|
|
15
|
+
//# sourceMappingURL=opencode-go.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-go.d.ts","sourceRoot":"","sources":["../../src/lib/opencode-go.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiBnD,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAoBnE;AAOD,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAqD3B;AAED,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode Go dashboard scraper.
|
|
3
|
+
*
|
|
4
|
+
* Fetches the OpenCode Go workspace page and parses SolidJS SSR hydration
|
|
5
|
+
* output for `monthlyUsage` containing `usagePercent` and `resetInSec`.
|
|
6
|
+
*/
|
|
7
|
+
import { fetchWithTimeout } from "./http.js";
|
|
8
|
+
import { sanitizeDisplayText } from "./display-sanitize.js";
|
|
9
|
+
const DASHBOARD_URL_PREFIX = "https://opencode.ai/workspace/";
|
|
10
|
+
const DASHBOARD_URL_SUFFIX = "/go";
|
|
11
|
+
const USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Gecko/20100101 Firefox/148.0";
|
|
12
|
+
const SCRAPE_TIMEOUT_MS = 10_000;
|
|
13
|
+
/**
|
|
14
|
+
* Regex patterns matching the SolidJS SSR hydration output.
|
|
15
|
+
* Field order may vary, so we try both orderings.
|
|
16
|
+
*/
|
|
17
|
+
const RE_MONTHLY_PCT_FIRST = /monthlyUsage:\$R\[\d+\]=\{[^}]*usagePercent:(\d+)[^}]*resetInSec:(\d+)[^}]*\}/;
|
|
18
|
+
const RE_MONTHLY_RESET_FIRST = /monthlyUsage:\$R\[\d+\]=\{[^}]*resetInSec:(\d+)[^}]*usagePercent:(\d+)[^}]*\}/;
|
|
19
|
+
function parseMonthlyUsage(html) {
|
|
20
|
+
const pctFirstMatch = RE_MONTHLY_PCT_FIRST.exec(html);
|
|
21
|
+
if (pctFirstMatch) {
|
|
22
|
+
const usagePercent = Number(pctFirstMatch[1]);
|
|
23
|
+
const resetInSec = Number(pctFirstMatch[2]);
|
|
24
|
+
if (Number.isFinite(usagePercent) && Number.isFinite(resetInSec)) {
|
|
25
|
+
return { usagePercent, resetInSec };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const resetFirstMatch = RE_MONTHLY_RESET_FIRST.exec(html);
|
|
29
|
+
if (resetFirstMatch) {
|
|
30
|
+
const resetInSec = Number(resetFirstMatch[1]);
|
|
31
|
+
const usagePercent = Number(resetFirstMatch[2]);
|
|
32
|
+
if (Number.isFinite(usagePercent) && Number.isFinite(resetInSec)) {
|
|
33
|
+
return { usagePercent, resetInSec };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
function sanitizeMessage(text, maxLength = 120) {
|
|
39
|
+
const sanitized = sanitizeDisplayText(text).replace(/\s+/g, " ").trim();
|
|
40
|
+
return (sanitized || "unknown").slice(0, maxLength);
|
|
41
|
+
}
|
|
42
|
+
export async function queryOpenCodeGoQuota(workspaceId, authCookie) {
|
|
43
|
+
try {
|
|
44
|
+
const url = `${DASHBOARD_URL_PREFIX}${encodeURIComponent(workspaceId)}${DASHBOARD_URL_SUFFIX}`;
|
|
45
|
+
const response = await fetchWithTimeout(url, {
|
|
46
|
+
method: "GET",
|
|
47
|
+
headers: {
|
|
48
|
+
"User-Agent": USER_AGENT,
|
|
49
|
+
Accept: "text/html",
|
|
50
|
+
Cookie: `auth=${authCookie}`,
|
|
51
|
+
},
|
|
52
|
+
}, SCRAPE_TIMEOUT_MS);
|
|
53
|
+
if (!response.ok) {
|
|
54
|
+
const text = await response.text();
|
|
55
|
+
return {
|
|
56
|
+
success: false,
|
|
57
|
+
error: `OpenCode Go dashboard error ${response.status}: ${sanitizeMessage(text)}`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const html = await response.text();
|
|
61
|
+
const monthly = parseMonthlyUsage(html);
|
|
62
|
+
if (!monthly) {
|
|
63
|
+
return {
|
|
64
|
+
success: false,
|
|
65
|
+
error: "Could not parse monthly usage from OpenCode Go dashboard",
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const usagePercent = Math.max(0, Math.min(100, monthly.usagePercent));
|
|
69
|
+
const percentRemaining = 100 - usagePercent;
|
|
70
|
+
const resetInSec = Math.max(0, monthly.resetInSec);
|
|
71
|
+
const resetTimeIso = new Date(Date.now() + resetInSec * 1000).toISOString();
|
|
72
|
+
return {
|
|
73
|
+
success: true,
|
|
74
|
+
usagePercent,
|
|
75
|
+
resetInSec,
|
|
76
|
+
percentRemaining,
|
|
77
|
+
resetTimeIso,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
return {
|
|
82
|
+
success: false,
|
|
83
|
+
error: sanitizeMessage(err instanceof Error ? err.message : String(err)),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export { parseMonthlyUsage as _parseMonthlyUsage };
|
|
88
|
+
//# sourceMappingURL=opencode-go.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-go.js","sourceRoot":"","sources":["../../src/lib/opencode-go.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AAC9D,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACnC,MAAM,UAAU,GAAG,8EAA8E,CAAC;AAElG,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC;;;GAGG;AACH,MAAM,oBAAoB,GACxB,+EAA+E,CAAC;AAClF,MAAM,sBAAsB,GAC1B,+EAA+E,CAAC;AAOlF,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG;IACpD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxE,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,oBAAoB,GAAG,kBAAkB,CAAC,WAAW,CAAC,GAAG,oBAAoB,EAAE,CAAC;QAE/F,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,GAAG,EACH;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,YAAY,EAAE,UAAU;gBACxB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,QAAQ,UAAU,EAAE;aAC7B;SACF,EACD,iBAAiB,CAClB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,+BAA+B,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,IAAI,CAAC,EAAE;aAClF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0DAA0D;aAClE,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,GAAG,GAAG,YAAY,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAE5E,OAAO;YACL,OAAO,EAAE,IAAI;YACb,YAAY;YACZ,UAAU;YACV,gBAAgB;YAChB,YAAY;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,eAAe,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACzE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type CanonicalQuotaProviderId = "anthropic" | "copilot" | "openai" | "cursor" | "qwen-code" | "alibaba-coding-plan" | "firmware" | "chutes" | "google-antigravity" | "zai" | "nanogpt" | "minimax-coding-plan";
|
|
1
|
+
export type CanonicalQuotaProviderId = "anthropic" | "copilot" | "openai" | "cursor" | "qwen-code" | "alibaba-coding-plan" | "firmware" | "chutes" | "google-antigravity" | "zai" | "nanogpt" | "minimax-coding-plan" | "opencode-go";
|
|
2
2
|
export type QuotaProviderAutoSetup = "yes" | "usually" | "needs_quick_setup";
|
|
3
3
|
export type QuotaProviderAuthentication = "opencode_auth_oauth_token" | "opencode_auth_api_key" | "companion_auth_oauth_token" | "local_cli_auth" | "github_oauth_or_pat" | "state_only";
|
|
4
4
|
export type QuotaProviderAuthFallback = "env_api_key" | "global_opencode_config";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-metadata.d.ts","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,qBAAqB,GACrB,UAAU,GACV,QAAQ,GACR,oBAAoB,GACpB,KAAK,GACL,SAAS,GACT,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-metadata.d.ts","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,qBAAqB,GACrB,UAAU,GACV,QAAQ,GACR,oBAAoB,GACpB,KAAK,GACL,SAAS,GACT,qBAAqB,GACrB,aAAa,CAAC;AAElB,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,SAAS,GAAG,mBAAmB,CAAC;AAE7E,MAAM,MAAM,2BAA2B,GACnC,2BAA2B,GAC3B,uBAAuB,GACvB,4BAA4B,GAC5B,gBAAgB,GAChB,qBAAqB,GACrB,YAAY,CAAC;AAEjB,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,wBAAwB,CAAC;AAEjF,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,kBAAkB,GAClB,0BAA0B,GAC1B,kBAAkB,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,wBAAwB,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;IAClC,cAAc,EAAE,2BAA2B,CAAC;IAC5C,aAAa,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;AAEpG,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAclE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcvE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,uBAcxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAwF9D,CAAC;AAMF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGhF;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAOxE"}
|
|
@@ -11,6 +11,7 @@ export const QUOTA_PROVIDER_LABELS = {
|
|
|
11
11
|
zai: "Z.ai",
|
|
12
12
|
nanogpt: "NanoGPT",
|
|
13
13
|
"minimax-coding-plan": "MiniMax Coding Plan",
|
|
14
|
+
"opencode-go": "OpenCode Go",
|
|
14
15
|
};
|
|
15
16
|
export const QUOTA_PROVIDER_ID_SYNONYMS = {
|
|
16
17
|
"github-copilot": "copilot",
|
|
@@ -25,6 +26,7 @@ export const QUOTA_PROVIDER_ID_SYNONYMS = {
|
|
|
25
26
|
alibaba: "alibaba-coding-plan",
|
|
26
27
|
"nano-gpt": "nanogpt",
|
|
27
28
|
minimax: "minimax-coding-plan",
|
|
29
|
+
"opencode-go-subscription": "opencode-go",
|
|
28
30
|
};
|
|
29
31
|
export const QUOTA_PROVIDER_RUNTIME_IDS = {
|
|
30
32
|
anthropic: ["anthropic"],
|
|
@@ -39,6 +41,7 @@ export const QUOTA_PROVIDER_RUNTIME_IDS = {
|
|
|
39
41
|
zai: ["zai", "glm", "zai-coding-plan"],
|
|
40
42
|
nanogpt: ["nanogpt", "nano-gpt"],
|
|
41
43
|
"minimax-coding-plan": ["minimax-coding-plan", "minimax"],
|
|
44
|
+
"opencode-go": ["opencode-go"],
|
|
42
45
|
};
|
|
43
46
|
export const QUOTA_PROVIDER_SHAPES = [
|
|
44
47
|
{
|
|
@@ -77,6 +80,7 @@ export const QUOTA_PROVIDER_SHAPES = [
|
|
|
77
80
|
id: "alibaba-coding-plan",
|
|
78
81
|
autoSetup: "yes",
|
|
79
82
|
authentication: "opencode_auth_api_key",
|
|
83
|
+
authFallbacks: ["env_api_key", "global_opencode_config"],
|
|
80
84
|
quota: "local_estimation",
|
|
81
85
|
},
|
|
82
86
|
{
|
|
@@ -103,6 +107,7 @@ export const QUOTA_PROVIDER_SHAPES = [
|
|
|
103
107
|
id: "zai",
|
|
104
108
|
autoSetup: "yes",
|
|
105
109
|
authentication: "opencode_auth_api_key",
|
|
110
|
+
authFallbacks: ["env_api_key", "global_opencode_config"],
|
|
106
111
|
quota: "remote_api",
|
|
107
112
|
},
|
|
108
113
|
{
|
|
@@ -116,7 +121,15 @@ export const QUOTA_PROVIDER_SHAPES = [
|
|
|
116
121
|
id: "minimax-coding-plan",
|
|
117
122
|
autoSetup: "yes",
|
|
118
123
|
authentication: "opencode_auth_api_key",
|
|
124
|
+
authFallbacks: ["env_api_key", "global_opencode_config"],
|
|
125
|
+
quota: "remote_api",
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: "opencode-go",
|
|
129
|
+
autoSetup: "needs_quick_setup",
|
|
130
|
+
authentication: "state_only",
|
|
119
131
|
quota: "remote_api",
|
|
132
|
+
notes: "Scrapes the OpenCode Go dashboard; requires workspaceId and authCookie",
|
|
120
133
|
},
|
|
121
134
|
];
|
|
122
135
|
const QUOTA_PROVIDER_SHAPES_BY_ID = Object.fromEntries(QUOTA_PROVIDER_SHAPES.map((shape) => [shape.id, shape]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-metadata.js","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-metadata.js","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota-status.d.ts","sourceRoot":"","sources":["../../src/lib/quota-status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quota-status.d.ts","sourceRoot":"","sources":["../../src/lib/quota-status.ts"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAUzE,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAiQD,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,GAAG,KAAK,CAAC;IACtC,UAAU,EAAE,eAAe,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,YAAY,CAAC;IACvD,oBAAoB,EAAE,KAAK,CAAC;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC,CAAC;IACH,aAAa,CAAC,EAAE;QACd,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrD,CAAC;IACF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6qBlB"}
|