@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.
Files changed (51) hide show
  1. package/README.md +84 -44
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +12 -6
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/alibaba-auth.d.ts +6 -1
  7. package/dist/lib/alibaba-auth.d.ts.map +1 -1
  8. package/dist/lib/alibaba-auth.js +51 -7
  9. package/dist/lib/alibaba-auth.js.map +1 -1
  10. package/dist/lib/api-key-resolver.d.ts +30 -4
  11. package/dist/lib/api-key-resolver.d.ts.map +1 -1
  12. package/dist/lib/api-key-resolver.js +37 -23
  13. package/dist/lib/api-key-resolver.js.map +1 -1
  14. package/dist/lib/minimax-auth.d.ts +9 -3
  15. package/dist/lib/minimax-auth.d.ts.map +1 -1
  16. package/dist/lib/minimax-auth.js +49 -9
  17. package/dist/lib/minimax-auth.js.map +1 -1
  18. package/dist/lib/opencode-go-config.d.ts +35 -0
  19. package/dist/lib/opencode-go-config.d.ts.map +1 -0
  20. package/dist/lib/opencode-go-config.js +124 -0
  21. package/dist/lib/opencode-go-config.js.map +1 -0
  22. package/dist/lib/opencode-go.d.ts +15 -0
  23. package/dist/lib/opencode-go.d.ts.map +1 -0
  24. package/dist/lib/opencode-go.js +88 -0
  25. package/dist/lib/opencode-go.js.map +1 -0
  26. package/dist/lib/provider-metadata.d.ts +1 -1
  27. package/dist/lib/provider-metadata.d.ts.map +1 -1
  28. package/dist/lib/provider-metadata.js +13 -0
  29. package/dist/lib/provider-metadata.js.map +1 -1
  30. package/dist/lib/quota-status.d.ts.map +1 -1
  31. package/dist/lib/quota-status.js +58 -6
  32. package/dist/lib/quota-status.js.map +1 -1
  33. package/dist/lib/types.d.ts +12 -0
  34. package/dist/lib/types.d.ts.map +1 -1
  35. package/dist/lib/types.js +10 -2
  36. package/dist/lib/types.js.map +1 -1
  37. package/dist/lib/zai-auth.d.ts +6 -1
  38. package/dist/lib/zai-auth.d.ts.map +1 -1
  39. package/dist/lib/zai-auth.js +46 -7
  40. package/dist/lib/zai-auth.js.map +1 -1
  41. package/dist/plugin.d.ts.map +1 -1
  42. package/dist/plugin.js +63 -40
  43. package/dist/plugin.js.map +1 -1
  44. package/dist/providers/opencode-go.d.ts +9 -0
  45. package/dist/providers/opencode-go.d.ts.map +1 -0
  46. package/dist/providers/opencode-go.js +80 -0
  47. package/dist/providers/opencode-go.js.map +1 -0
  48. package/dist/providers/registry.d.ts.map +1 -1
  49. package/dist/providers/registry.js +2 -0
  50. package/dist/providers/registry.js.map +1 -1
  51. 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;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAI5D,eAAO,MAAM,qCAAqC,OAAQ,CAAC;AAG3D,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;CACxB,GACD;IACE,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,GACD;IACE,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAqBN;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,CA2BzF;AAED,wBAAsB,wBAAwB,CAAC,MAAM,CAAC,EAAE;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAM/B;AAED,wBAAsB,yBAAyB,CAAC,MAAM,CAAC,EAAE;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA0BlC"}
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"}
@@ -1,14 +1,18 @@
1
1
  /**
2
2
  * MiniMax auth resolver
3
3
  *
4
- * Reads MiniMax credentials from OpenCode auth.json and resolves
5
- * them into a standardized format for the MiniMax Coding Plan provider.
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
- export async function resolveMiniMaxAuthCached(params) {
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 auth = await readAuthFileCached({
85
+ const authData = await readAuthFileCached({
60
86
  maxAgeMs,
61
87
  });
62
- return resolveMiniMaxAuth(auth);
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 resolveMiniMaxAuthCached(params);
66
- const checkedPaths = getAuthPaths();
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":"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"}
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":"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"}
@@ -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;AAE1B,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,GACjC,aAAa,GACb,wBAAwB,CAAC;AAE7B,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,CAC5C,MAAM,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC,CACpD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAalE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAavE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,uBAaxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EA8E9D,CAAC;AAQF,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"}
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":"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"}
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":"AAgEA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIzE,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA2PD,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,CAinBlB"}
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"}