superoc 0.1.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 (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/bin/nimsuper.js +21 -0
  4. package/bin/nimsuper.ts +10 -0
  5. package/bin/superoc.js +21 -0
  6. package/bin/superoc.ts +10 -0
  7. package/dist/antigravity.d.ts +59 -0
  8. package/dist/antigravity.d.ts.map +1 -0
  9. package/dist/antigravity.js +423 -0
  10. package/dist/antigravity.js.map +1 -0
  11. package/dist/errors.d.ts +22 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +122 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/errors.test.d.ts +2 -0
  16. package/dist/errors.test.d.ts.map +1 -0
  17. package/dist/errors.test.js +137 -0
  18. package/dist/errors.test.js.map +1 -0
  19. package/dist/index.d.ts +5 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +809 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/opencode-sync.d.ts +9 -0
  24. package/dist/opencode-sync.d.ts.map +1 -0
  25. package/dist/opencode-sync.js +157 -0
  26. package/dist/opencode-sync.js.map +1 -0
  27. package/dist/provider.d.ts +5 -0
  28. package/dist/provider.d.ts.map +1 -0
  29. package/dist/provider.js +100 -0
  30. package/dist/provider.js.map +1 -0
  31. package/dist/provider.test.d.ts +2 -0
  32. package/dist/provider.test.d.ts.map +1 -0
  33. package/dist/provider.test.js +94 -0
  34. package/dist/provider.test.js.map +1 -0
  35. package/dist/quota.d.ts +12 -0
  36. package/dist/quota.d.ts.map +1 -0
  37. package/dist/quota.js +105 -0
  38. package/dist/quota.js.map +1 -0
  39. package/dist/quota.test.d.ts +2 -0
  40. package/dist/quota.test.d.ts.map +1 -0
  41. package/dist/quota.test.js +20 -0
  42. package/dist/quota.test.js.map +1 -0
  43. package/dist/storage.d.ts +43 -0
  44. package/dist/storage.d.ts.map +1 -0
  45. package/dist/storage.js +447 -0
  46. package/dist/storage.js.map +1 -0
  47. package/dist/themes.d.ts +64 -0
  48. package/dist/themes.d.ts.map +1 -0
  49. package/dist/themes.js +424 -0
  50. package/dist/themes.js.map +1 -0
  51. package/dist/tui/actions.d.ts +14 -0
  52. package/dist/tui/actions.d.ts.map +1 -0
  53. package/dist/tui/actions.js +464 -0
  54. package/dist/tui/actions.js.map +1 -0
  55. package/dist/tui/app.d.ts +2 -0
  56. package/dist/tui/app.d.ts.map +1 -0
  57. package/dist/tui/app.js +323 -0
  58. package/dist/tui/app.js.map +1 -0
  59. package/dist/tui/benchmark.d.ts +42 -0
  60. package/dist/tui/benchmark.d.ts.map +1 -0
  61. package/dist/tui/benchmark.js +379 -0
  62. package/dist/tui/benchmark.js.map +1 -0
  63. package/dist/tui/screens.d.ts +23 -0
  64. package/dist/tui/screens.d.ts.map +1 -0
  65. package/dist/tui/screens.js +791 -0
  66. package/dist/tui/screens.js.map +1 -0
  67. package/dist/tui/state.d.ts +54 -0
  68. package/dist/tui/state.d.ts.map +1 -0
  69. package/dist/tui/state.js +85 -0
  70. package/dist/tui/state.js.map +1 -0
  71. package/dist/tui/types.d.ts +16 -0
  72. package/dist/tui/types.d.ts.map +1 -0
  73. package/dist/tui/types.js +2 -0
  74. package/dist/tui/types.js.map +1 -0
  75. package/dist/tui/ui.d.ts +17 -0
  76. package/dist/tui/ui.d.ts.map +1 -0
  77. package/dist/tui/ui.js +77 -0
  78. package/dist/tui/ui.js.map +1 -0
  79. package/dist/types.d.ts +52 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +2 -0
  82. package/dist/types.js.map +1 -0
  83. package/package.json +68 -0
  84. package/scripts/postinstall.js +77 -0
  85. package/scripts/uninstall.js +119 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { FallbackModel } from "./types.js";
2
+ export declare function getOpencodeConfigPath(): string;
3
+ export declare function syncOpencodeModels(customModels?: FallbackModel[]): Promise<{
4
+ success: boolean;
5
+ configPath: string;
6
+ count: number;
7
+ error?: string;
8
+ }>;
9
+ //# sourceMappingURL=opencode-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-sync.d.ts","sourceRoot":"","sources":["../src/opencode-sync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,wBAAgB,qBAAqB,IAAI,MAAM,CAO9C;AAKD,wBAAsB,kBAAkB,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAChF,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA6ID"}
@@ -0,0 +1,157 @@
1
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
2
+ import { join, dirname } from "node:path";
3
+ import { homedir } from "node:os";
4
+ const DEFAULT_MODALITIES = {
5
+ input: ["text", "image", "pdf"],
6
+ output: ["text"],
7
+ };
8
+ export function getOpencodeConfigPath() {
9
+ const xdgConfig = process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
10
+ const configDir = join(xdgConfig, "opencode");
11
+ const jsoncPath = join(configDir, "opencode.jsonc");
12
+ const jsonPath = join(configDir, "opencode.json");
13
+ if (existsSync(jsoncPath))
14
+ return jsoncPath;
15
+ return jsonPath;
16
+ }
17
+ import { loadStore } from "./storage.js";
18
+ import { getNormalizedQuota } from "./quota.js";
19
+ export async function syncOpencodeModels(customModels) {
20
+ const configPath = getOpencodeConfigPath();
21
+ try {
22
+ let config = {
23
+ $schema: "https://opencode.ai/config.json",
24
+ plugin: [],
25
+ provider: {},
26
+ };
27
+ if (existsSync(configPath)) {
28
+ const raw = readFileSync(configPath, "utf-8");
29
+ try {
30
+ config = JSON.parse(raw);
31
+ }
32
+ catch { }
33
+ }
34
+ if (!Array.isArray(config.plugin))
35
+ config.plugin = [];
36
+ if (!config.provider || typeof config.provider !== "object")
37
+ config.provider = {};
38
+ // Remove custom provider.antigravity if present since OpenCode doesn't have an internal driver for it
39
+ if (config.provider.antigravity) {
40
+ delete config.provider.antigravity;
41
+ }
42
+ if (!config.provider.google || typeof config.provider.google !== "object") {
43
+ config.provider.google = {};
44
+ }
45
+ if (!config.provider.google.models || typeof config.provider.google.models !== "object") {
46
+ config.provider.google.models = {};
47
+ }
48
+ const baseModels = {
49
+ "antigravity-gemini-3.7-flash": {
50
+ name: "Gemini 3.7 Flash (Antigravity)",
51
+ limit: { context: 1048576, output: 65536 },
52
+ modalities: DEFAULT_MODALITIES,
53
+ },
54
+ "antigravity-gemini-3.7-flash-tiered": {
55
+ name: "Gemini 3.7 Flash Tiered (Antigravity)",
56
+ limit: { context: 1048576, output: 65536 },
57
+ modalities: DEFAULT_MODALITIES,
58
+ },
59
+ "antigravity-gemini-3.6-flash-high": {
60
+ name: "Gemini 3.6 Flash High (Antigravity)",
61
+ limit: { context: 1048576, output: 65536 },
62
+ modalities: DEFAULT_MODALITIES,
63
+ },
64
+ "antigravity-gemini-3.6-flash-medium": {
65
+ name: "Gemini 3.6 Flash Medium (Antigravity)",
66
+ limit: { context: 1048576, output: 65536 },
67
+ modalities: DEFAULT_MODALITIES,
68
+ },
69
+ "antigravity-gemini-3.6-flash-low": {
70
+ name: "Gemini 3.6 Flash Low (Antigravity)",
71
+ limit: { context: 1048576, output: 65536 },
72
+ modalities: DEFAULT_MODALITIES,
73
+ },
74
+ "antigravity-gemini-pro-agent": {
75
+ name: "Gemini 3.1 Pro Agent (Antigravity)",
76
+ limit: { context: 1048576, output: 65535 },
77
+ modalities: DEFAULT_MODALITIES,
78
+ },
79
+ "antigravity-gemini-3.1-pro-low": {
80
+ name: "Gemini 3.1 Pro Low (Antigravity)",
81
+ limit: { context: 1048576, output: 65535 },
82
+ modalities: DEFAULT_MODALITIES,
83
+ },
84
+ "antigravity-gemini-3-flash-agent": {
85
+ name: "Gemini 3.5 Flash Agent (Antigravity)",
86
+ limit: { context: 1048576, output: 65536 },
87
+ modalities: DEFAULT_MODALITIES,
88
+ },
89
+ "antigravity-claude-sonnet-4-6": {
90
+ name: "Claude Sonnet 4.6 (Antigravity)",
91
+ limit: { context: 200000, output: 64000 },
92
+ modalities: DEFAULT_MODALITIES,
93
+ },
94
+ "antigravity-claude-opus-4-6-thinking": {
95
+ name: "Claude Opus 4.6 Thinking (Antigravity)",
96
+ limit: { context: 200000, output: 64000 },
97
+ modalities: DEFAULT_MODALITIES,
98
+ },
99
+ "antigravity-gpt-oss-120b-medium": {
100
+ name: "GPT-OSS 120B Medium (Antigravity)",
101
+ limit: { context: 131072, output: 32768 },
102
+ modalities: DEFAULT_MODALITIES,
103
+ },
104
+ "antigravity-gemini-2.5-pro": {
105
+ name: "Gemini 2.5 Pro (Antigravity)",
106
+ limit: { context: 1048576, output: 65536 },
107
+ modalities: DEFAULT_MODALITIES,
108
+ },
109
+ "antigravity-gemini-2.5-flash": {
110
+ name: "Gemini 2.5 Flash (Antigravity)",
111
+ limit: { context: 1048576, output: 65536 },
112
+ modalities: DEFAULT_MODALITIES,
113
+ },
114
+ };
115
+ if (customModels && Array.isArray(customModels)) {
116
+ for (const m of customModels) {
117
+ if (!baseModels[m.id]) {
118
+ baseModels[m.id] = {
119
+ name: m.name,
120
+ limit: { context: 1048576, output: 65536 },
121
+ modalities: DEFAULT_MODALITIES,
122
+ };
123
+ }
124
+ }
125
+ }
126
+ const store = loadStore();
127
+ if (store) {
128
+ for (const [id, model] of Object.entries(baseModels)) {
129
+ try {
130
+ const quota = await getNormalizedQuota(store.keys, id);
131
+ const cleanName = model.name.replace(/\s+5h:.*$/, "");
132
+ model.name = `${cleanName} 5h: ${quota.fiveHourPercent}% W: ${quota.weeklyPercent}%`;
133
+ }
134
+ catch { }
135
+ }
136
+ }
137
+ config.provider.google.models = baseModels;
138
+ const dir = dirname(configPath);
139
+ if (!existsSync(dir))
140
+ mkdirSync(dir, { recursive: true });
141
+ writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
142
+ return {
143
+ success: true,
144
+ configPath,
145
+ count: Object.keys(baseModels).length,
146
+ };
147
+ }
148
+ catch (err) {
149
+ return {
150
+ success: false,
151
+ configPath,
152
+ count: 0,
153
+ error: err instanceof Error ? err.message : String(err),
154
+ };
155
+ }
156
+ }
157
+ //# sourceMappingURL=opencode-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-sync.js","sourceRoot":"","sources":["../src/opencode-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ProviderId } from "./types.js";
2
+ export type { ProviderId };
3
+ export declare function detectProviderForRequest(input: unknown): ProviderId | null;
4
+ export declare function getProviderHeaders(provider: ProviderId | null, apiKey: string): Record<string, string>;
5
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,YAAY,EAAE,UAAU,EAAE,CAAC;AAmC3B,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAkD1E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBtG"}
@@ -0,0 +1,100 @@
1
+ import { getAntigravityHeaders } from "./antigravity.js";
2
+ function normalize(value) {
3
+ if (typeof value === "string") {
4
+ const trimmed = value.trim();
5
+ return trimmed.length > 0 ? trimmed.toLowerCase() : undefined;
6
+ }
7
+ if (typeof value === "object" && value !== null) {
8
+ const obj = value;
9
+ const urlStr = obj.url ?? obj.baseURL ?? obj.baseUrl ?? obj.endpoint;
10
+ if (typeof urlStr === "string") {
11
+ const trimmed = urlStr.trim();
12
+ return trimmed.length > 0 ? trimmed.toLowerCase() : undefined;
13
+ }
14
+ }
15
+ return undefined;
16
+ }
17
+ function looksLikeNvidia(value) {
18
+ return !!value && /nvidia|nim/i.test(value);
19
+ }
20
+ function looksLikeGoogle(value) {
21
+ return !!value && /google|gemini|generativelanguage/i.test(value);
22
+ }
23
+ function looksLikeAntigravity(value) {
24
+ return (!!value &&
25
+ (value.startsWith("antigravity-") ||
26
+ value.endsWith(":antigravity") ||
27
+ /antigravity|agy|cloudcode|claude|gpt-oss|gemini-pro-agent|gemini-3-flash-agent/i.test(value)));
28
+ }
29
+ export function detectProviderForRequest(input) {
30
+ const record = input ?? {};
31
+ const provider = record.provider;
32
+ const model = record.model;
33
+ const providerId = normalize(provider?.id ??
34
+ provider?.providerID ??
35
+ provider?.name ??
36
+ provider?.info?.id);
37
+ const modelProviderId = normalize(model?.providerID ??
38
+ model?.provider_id ??
39
+ model?.provider ??
40
+ model?.providerName ??
41
+ model?.provider_name);
42
+ const api = normalize(model?.api ??
43
+ model?.url ??
44
+ model?.endpoint ??
45
+ provider?.api ??
46
+ provider?.url);
47
+ const modelId = normalize(model?.id);
48
+ // 1. Check API endpoint URL first (most definitive)
49
+ if (api) {
50
+ if (/cloudcode-pa\.googleapis\.com|sandbox\.googleapis\.com|antigravity/i.test(api))
51
+ return "antigravity";
52
+ if (/integrate\.api\.nvidia\.com/i.test(api))
53
+ return "nvidia";
54
+ if (/generativelanguage\.googleapis\.com|googleapis\.com/i.test(api))
55
+ return "google";
56
+ }
57
+ // 2. Check model ID (highly specific for model fallback requests)
58
+ if (looksLikeAntigravity(modelId))
59
+ return "antigravity";
60
+ if (looksLikeNvidia(modelId))
61
+ return "nvidia";
62
+ if (looksLikeGoogle(modelId))
63
+ return "google";
64
+ // 3. Check model provider ID
65
+ if (looksLikeAntigravity(modelProviderId))
66
+ return "antigravity";
67
+ if (looksLikeNvidia(modelProviderId))
68
+ return "nvidia";
69
+ if (looksLikeGoogle(modelProviderId))
70
+ return "google";
71
+ // 4. Check session provider ID (least specific, fallback)
72
+ if (looksLikeAntigravity(providerId))
73
+ return "antigravity";
74
+ if (looksLikeNvidia(providerId))
75
+ return "nvidia";
76
+ if (looksLikeGoogle(providerId))
77
+ return "google";
78
+ return null;
79
+ }
80
+ export function getProviderHeaders(provider, apiKey) {
81
+ if (!apiKey)
82
+ return {};
83
+ if (provider === "google") {
84
+ return { "x-goog-api-key": apiKey };
85
+ }
86
+ if (provider === "nvidia") {
87
+ return {
88
+ Authorization: `Bearer ${apiKey}`,
89
+ authorization: `Bearer ${apiKey}`,
90
+ };
91
+ }
92
+ if (provider === "antigravity") {
93
+ const parts = apiKey.split("|");
94
+ const token = parts[0];
95
+ const projectId = parts[1];
96
+ return getAntigravityHeaders(token, projectId);
97
+ }
98
+ return {};
99
+ }
100
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.test.d.ts","sourceRoot":"","sources":["../src/provider.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,94 @@
1
+ import { describe, expect, it } from "bun:test";
2
+ import { detectProviderForRequest, getProviderHeaders } from "./provider.js";
3
+ import { generatePKCE, encodeState, decodeState, authorizeAntigravity } from "./antigravity.js";
4
+ describe("detectProviderForRequest", () => {
5
+ it("detects NVIDIA requests from provider info and API URL", () => {
6
+ expect(detectProviderForRequest({
7
+ provider: { info: { id: "nvidia" } },
8
+ model: { providerID: "nvidia", api: "https://integrate.api.nvidia.com/v1/models" },
9
+ })).toBe("nvidia");
10
+ });
11
+ it("detects NVIDIA requests when provider object has direct id (no info wrapper)", () => {
12
+ expect(detectProviderForRequest({
13
+ provider: { id: "nvidia" },
14
+ model: { id: "meta/llama-3.3-70b-instruct" },
15
+ })).toBe("nvidia");
16
+ });
17
+ it("detects NVIDIA requests from nested API url object", () => {
18
+ expect(detectProviderForRequest({
19
+ provider: { id: "custom" },
20
+ model: { api: { baseURL: "https://integrate.api.nvidia.com/v1" } },
21
+ })).toBe("nvidia");
22
+ });
23
+ it("detects Google requests from Gemini provider info", () => {
24
+ expect(detectProviderForRequest({
25
+ provider: { info: { id: "google" } },
26
+ model: { providerID: "google", api: "https://generativelanguage.googleapis.com/v1beta/models" },
27
+ })).toBe("google");
28
+ });
29
+ it("detects Google requests from gemini provider ID", () => {
30
+ expect(detectProviderForRequest({
31
+ provider: { info: { id: "openai" } },
32
+ model: { providerID: "gemini", api: "https://generativelanguage.googleapis.com/v1beta/models" },
33
+ })).toBe("google");
34
+ });
35
+ it("detects Antigravity requests from cloudcode endpoint", () => {
36
+ expect(detectProviderForRequest({
37
+ provider: { id: "custom" },
38
+ model: { api: "https://cloudcode-pa.googleapis.com/v1internal:streamGenerateContent" },
39
+ })).toBe("antigravity");
40
+ });
41
+ it("detects Antigravity requests from provider ID", () => {
42
+ expect(detectProviderForRequest({
43
+ provider: { id: "antigravity" },
44
+ model: { id: "claude-sonnet-4-6" },
45
+ })).toBe("antigravity");
46
+ });
47
+ });
48
+ describe("getProviderHeaders", () => {
49
+ it("uses bearer auth for NVIDIA", () => {
50
+ expect(getProviderHeaders("nvidia", "abc123")).toEqual({
51
+ Authorization: "Bearer abc123",
52
+ authorization: "Bearer abc123",
53
+ });
54
+ });
55
+ it("uses x-goog-api-key for Google", () => {
56
+ expect(getProviderHeaders("google", "abc123")).toEqual({ "x-goog-api-key": "abc123" });
57
+ });
58
+ it("generates Cloud Code headers for Antigravity", () => {
59
+ const headers = getProviderHeaders("antigravity", "mock-token|my-project-123");
60
+ expect(headers["Authorization"]).toBe("Bearer mock-token");
61
+ expect(headers["x-goog-user-project"]).toBe("my-project-123");
62
+ expect(headers["X-Goog-Api-Client"]).toBe("google-cloud-sdk vscode_cloudshelleditor/0.1");
63
+ expect(headers["Client-Metadata"]).toContain('"ideType":"ANTIGRAVITY"');
64
+ });
65
+ it("returns no headers when provider is unknown", () => {
66
+ expect(getProviderHeaders(null, "abc123")).toEqual({});
67
+ });
68
+ });
69
+ describe("Antigravity PKCE and State Helpers", () => {
70
+ it("generates valid PKCE verifier and challenge", () => {
71
+ const pkce = generatePKCE();
72
+ expect(pkce.verifier).toBeDefined();
73
+ expect(pkce.challenge).toBeDefined();
74
+ expect(pkce.verifier.length).toBeGreaterThan(20);
75
+ expect(pkce.challenge.length).toBeGreaterThan(20);
76
+ });
77
+ it("encodes and decodes OAuth state with PKCE verifier and project ID", () => {
78
+ const payload = { verifier: "test-verifier-12345", projectId: "test-project-99" };
79
+ const encoded = encodeState(payload);
80
+ const decoded = decodeState(encoded);
81
+ expect(decoded.verifier).toBe(payload.verifier);
82
+ expect(decoded.projectId).toBe(payload.projectId);
83
+ });
84
+ it("generates complete Google OAuth URL with PKCE parameters", () => {
85
+ const auth = authorizeAntigravity("my-proj");
86
+ const u = new URL(auth.url);
87
+ expect(u.searchParams.get("client_id")).toBeDefined();
88
+ expect(u.searchParams.get("response_type")).toBe("code");
89
+ expect(u.searchParams.get("code_challenge")).toBeDefined();
90
+ expect(u.searchParams.get("code_challenge_method")).toBe("S256");
91
+ expect(u.searchParams.get("state")).toBeDefined();
92
+ });
93
+ });
94
+ //# sourceMappingURL=provider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.test.js","sourceRoot":"","sources":["../src/provider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ApiKeyEntry } from "./types.js";
2
+ export interface QuotaSummary {
3
+ fiveHourPercent: number;
4
+ weeklyPercent: number;
5
+ }
6
+ export declare function fetchSingleAccountQuota(apiKey: string, modelId: string): Promise<{
7
+ fiveHourFraction: number;
8
+ weeklyFraction: number;
9
+ } | null>;
10
+ export declare function getNormalizedQuota(keys: ApiKeyEntry[], modelId: string, forceRefresh?: boolean): Promise<QuotaSummary>;
11
+ export declare function formatMinimalQuotaString(quota: QuotaSummary): string;
12
+ //# sourceMappingURL=quota.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAkBD,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA4DtE;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,WAAW,EAAE,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,YAAY,CAAC,CAyCvB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAEpE"}
package/dist/quota.js ADDED
@@ -0,0 +1,105 @@
1
+ import { getAntigravityHeaders, getOrRefreshAntigravityAccessToken } from "./antigravity.js";
2
+ const QUOTA_CACHE_TTL_MS = 2 * 60 * 1000; // 2 minutes
3
+ const quotaCache = new Map();
4
+ function resolveQuotaModelKey(modelId) {
5
+ const clean = modelId.replace(/^antigravity-/, "").toLowerCase();
6
+ if (clean.includes("claude"))
7
+ return "claude-sonnet-4-6";
8
+ if (clean.includes("gpt-oss"))
9
+ return "gpt-oss-120b-medium";
10
+ if (clean.includes("gemini-pro") || clean.includes("3.1-pro"))
11
+ return "gemini-pro-agent";
12
+ return "gemini-3.6-flash-high";
13
+ }
14
+ export async function fetchSingleAccountQuota(apiKey, modelId) {
15
+ try {
16
+ const auth = await getOrRefreshAntigravityAccessToken(apiKey);
17
+ if (!auth)
18
+ return null;
19
+ const targetModel = resolveQuotaModelKey(modelId);
20
+ const headers = {
21
+ ...getAntigravityHeaders(auth.accessToken),
22
+ "Content-Type": "application/json",
23
+ };
24
+ const projectId = auth.projectId || "rising-fact-p41fc";
25
+ // 1. Fetch 5-hour rolling limit from fetchAvailableModels
26
+ let fiveHourFraction = 1.0;
27
+ try {
28
+ const modelsRes = await fetch("https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels", {
29
+ method: "POST",
30
+ headers,
31
+ body: JSON.stringify({ project: projectId }),
32
+ });
33
+ if (modelsRes.ok) {
34
+ const data = (await modelsRes.json());
35
+ const modelEntry = data.models?.[targetModel] ?? data.models?.[modelId];
36
+ if (modelEntry?.quotaInfo?.remainingFraction != null) {
37
+ fiveHourFraction = Number(modelEntry.quotaInfo.remainingFraction);
38
+ }
39
+ }
40
+ }
41
+ catch { }
42
+ // 2. Fetch Weekly/Daily quota from retrieveUserQuota
43
+ let weeklyFraction = 1.0;
44
+ try {
45
+ const quotaRes = await fetch("https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota", {
46
+ method: "POST",
47
+ headers: {
48
+ Authorization: `Bearer ${auth.accessToken}`,
49
+ "Content-Type": "application/json",
50
+ "User-Agent": "GeminiCLI/1.0.0/gemini-2.5-pro (windows; amd64)",
51
+ },
52
+ body: JSON.stringify({ project: projectId }),
53
+ });
54
+ if (quotaRes.ok) {
55
+ const quotaData = (await quotaRes.json());
56
+ if (Array.isArray(quotaData.buckets) && quotaData.buckets.length > 0) {
57
+ const matchingBucket = quotaData.buckets.find((b) => b.modelId === targetModel) ??
58
+ quotaData.buckets.find((b) => b.modelId?.includes("gemini")) ??
59
+ quotaData.buckets[0];
60
+ if (matchingBucket?.remainingFraction != null) {
61
+ weeklyFraction = Number(matchingBucket.remainingFraction);
62
+ }
63
+ }
64
+ }
65
+ }
66
+ catch { }
67
+ return { fiveHourFraction, weeklyFraction };
68
+ }
69
+ catch {
70
+ return null;
71
+ }
72
+ }
73
+ export async function getNormalizedQuota(keys, modelId, forceRefresh = false) {
74
+ const activeKeys = keys.filter((k) => k.provider === "antigravity" && k.enabled);
75
+ if (activeKeys.length === 0) {
76
+ return { fiveHourPercent: 100, weeklyPercent: 100 };
77
+ }
78
+ const targetModel = resolveQuotaModelKey(modelId);
79
+ const cacheKey = `${targetModel}:${activeKeys.map((k) => k.id).sort().join(",")}`;
80
+ const cached = quotaCache.get(cacheKey);
81
+ if (!forceRefresh && cached && Date.now() - cached.timestamp < QUOTA_CACHE_TTL_MS) {
82
+ return cached.data;
83
+ }
84
+ const results = await Promise.all(activeKeys.map((k) => fetchSingleAccountQuota(k.key, targetModel)));
85
+ const validResults = results.filter((r) => r != null);
86
+ if (validResults.length === 0) {
87
+ return { fiveHourPercent: 100, weeklyPercent: 100 };
88
+ }
89
+ // Normalize: sum of remaining fractions / count * 100
90
+ const avgFiveHour = validResults.reduce((acc, r) => acc + r.fiveHourFraction, 0) / validResults.length;
91
+ const avgWeekly = validResults.reduce((acc, r) => acc + r.weeklyFraction, 0) / validResults.length;
92
+ const data = {
93
+ fiveHourPercent: Math.min(100, Math.max(0, Number((avgFiveHour * 100).toFixed(1)))),
94
+ weeklyPercent: Math.min(100, Math.max(0, Number((avgWeekly * 100).toFixed(1)))),
95
+ };
96
+ quotaCache.set(cacheKey, {
97
+ timestamp: Date.now(),
98
+ data,
99
+ });
100
+ return data;
101
+ }
102
+ export function formatMinimalQuotaString(quota) {
103
+ return `5h: ${quota.fiveHourPercent}% | W: ${quota.weeklyPercent}%`;
104
+ }
105
+ //# sourceMappingURL=quota.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=quota.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota.test.d.ts","sourceRoot":"","sources":["../src/quota.test.ts"],"names":[],"mappings":""}