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.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/bin/nimsuper.js +21 -0
- package/bin/nimsuper.ts +10 -0
- package/bin/superoc.js +21 -0
- package/bin/superoc.ts +10 -0
- package/dist/antigravity.d.ts +59 -0
- package/dist/antigravity.d.ts.map +1 -0
- package/dist/antigravity.js +423 -0
- package/dist/antigravity.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +122 -0
- package/dist/errors.js.map +1 -0
- package/dist/errors.test.d.ts +2 -0
- package/dist/errors.test.d.ts.map +1 -0
- package/dist/errors.test.js +137 -0
- package/dist/errors.test.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +809 -0
- package/dist/index.js.map +1 -0
- package/dist/opencode-sync.d.ts +9 -0
- package/dist/opencode-sync.d.ts.map +1 -0
- package/dist/opencode-sync.js +157 -0
- package/dist/opencode-sync.js.map +1 -0
- package/dist/provider.d.ts +5 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +100 -0
- package/dist/provider.js.map +1 -0
- package/dist/provider.test.d.ts +2 -0
- package/dist/provider.test.d.ts.map +1 -0
- package/dist/provider.test.js +94 -0
- package/dist/provider.test.js.map +1 -0
- package/dist/quota.d.ts +12 -0
- package/dist/quota.d.ts.map +1 -0
- package/dist/quota.js +105 -0
- package/dist/quota.js.map +1 -0
- package/dist/quota.test.d.ts +2 -0
- package/dist/quota.test.d.ts.map +1 -0
- package/dist/quota.test.js +20 -0
- package/dist/quota.test.js.map +1 -0
- package/dist/storage.d.ts +43 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +447 -0
- package/dist/storage.js.map +1 -0
- package/dist/themes.d.ts +64 -0
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +424 -0
- package/dist/themes.js.map +1 -0
- package/dist/tui/actions.d.ts +14 -0
- package/dist/tui/actions.d.ts.map +1 -0
- package/dist/tui/actions.js +464 -0
- package/dist/tui/actions.js.map +1 -0
- package/dist/tui/app.d.ts +2 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +323 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/benchmark.d.ts +42 -0
- package/dist/tui/benchmark.d.ts.map +1 -0
- package/dist/tui/benchmark.js +379 -0
- package/dist/tui/benchmark.js.map +1 -0
- package/dist/tui/screens.d.ts +23 -0
- package/dist/tui/screens.d.ts.map +1 -0
- package/dist/tui/screens.js +791 -0
- package/dist/tui/screens.js.map +1 -0
- package/dist/tui/state.d.ts +54 -0
- package/dist/tui/state.d.ts.map +1 -0
- package/dist/tui/state.js +85 -0
- package/dist/tui/state.js.map +1 -0
- package/dist/tui/types.d.ts +16 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +2 -0
- package/dist/tui/types.js.map +1 -0
- package/dist/tui/ui.d.ts +17 -0
- package/dist/tui/ui.d.ts.map +1 -0
- package/dist/tui/ui.js +77 -0
- package/dist/tui/ui.js.map +1 -0
- package/dist/types.d.ts +52 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +68 -0
- package/scripts/postinstall.js +77 -0
- 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"}
|
package/dist/provider.js
ADDED
|
@@ -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":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAIzD,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC;QACrE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IAChD,OAAO,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IAChD,OAAO,CAAC,CAAC,KAAK,IAAI,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB;IACrD,OAAO,CACL,CAAC,CAAC,KAAK;QACP,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;YAC/B,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC9B,iFAAiF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACjG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,MAAM,GAAI,KAA6C,IAAI,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA+C,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAA4C,CAAC;IAElE,MAAM,UAAU,GAAG,SAAS,CACzB,QAAQ,EAAE,EAAc;QACtB,QAAQ,EAAE,UAAsB;QAChC,QAAQ,EAAE,IAAgB;QAC1B,QAAQ,EAAE,IAA4C,EAAE,EAAE,CAC9D,CAAC;IACF,MAAM,eAAe,GAAG,SAAS,CAC9B,KAAK,EAAE,UAAsB;QAC3B,KAAK,EAAE,WAAuB;QAC9B,KAAK,EAAE,QAAoB;QAC3B,KAAK,EAAE,YAAwB;QAC/B,KAAK,EAAE,aAAyB,CACpC,CAAC;IACF,MAAM,GAAG,GAAG,SAAS,CAClB,KAAK,EAAE,GAAe;QACpB,KAAK,EAAE,GAAe;QACtB,KAAK,EAAE,QAAoB;QAC3B,QAAQ,EAAE,GAAe;QACzB,QAAQ,EAAE,GAAe,CAC7B,CAAC;IACF,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,EAAa,CAAC,CAAC;IAEhD,oDAAoD;IACpD,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,qEAAqE,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,aAAa,CAAC;QAC1G,IAAI,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC9D,IAAI,sDAAsD,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;IACxF,CAAC;IAED,kEAAkE;IAClE,IAAI,oBAAoB,CAAC,OAAO,CAAC;QAAE,OAAO,aAAa,CAAC;IACxD,IAAI,eAAe,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,eAAe,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE9C,6BAA6B;IAC7B,IAAI,oBAAoB,CAAC,eAAe,CAAC;QAAE,OAAO,aAAa,CAAC;IAChE,IAAI,eAAe,CAAC,eAAe,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtD,IAAI,eAAe,CAAC,eAAe,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEtD,0DAA0D;IAC1D,IAAI,oBAAoB,CAAC,UAAU,CAAC;QAAE,OAAO,aAAa,CAAC;IAC3D,IAAI,eAAe,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjD,IAAI,eAAe,CAAC,UAAU,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAA2B,EAAE,MAAc;IAC5E,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO;YACL,aAAa,EAAE,UAAU,MAAM,EAAE;YACjC,aAAa,EAAE,UAAU,MAAM,EAAE;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -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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"}
|
package/dist/quota.d.ts
ADDED
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"quota.test.d.ts","sourceRoot":"","sources":["../src/quota.test.ts"],"names":[],"mappings":""}
|