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,464 @@
1
+ import { getActiveTheme, setPreviewTheme } from "../themes.js";
2
+ import { exportKeys, applyImport, resetFailures, toggleKey, writeExportFile, addKey, } from "../storage.js";
3
+ import { safeSaveStore } from "./state.js";
4
+ import { BenchmarkRunner } from "./benchmark.js";
5
+ import { state, navigate, callRenderApp, refreshStore, setStatus, } from "./state.js";
6
+ import { authorizeAntigravity, exchangeAntigravity, getOrRefreshAntigravityAccessToken, fetchLiveAntigravityModels, startLocalCallbackServer, openUrlInBrowser, } from "../antigravity.js";
7
+ import { syncOpencodeModels } from "../opencode-sync.js";
8
+ export function handleKeyAction(action) {
9
+ if (!state.selectedKeyId)
10
+ return;
11
+ const entry = state.store.keys.find((k) => k.id === state.selectedKeyId);
12
+ const theme = getActiveTheme();
13
+ switch (action) {
14
+ case "toggle":
15
+ if (entry) {
16
+ toggleKey(state.store, state.selectedKeyId);
17
+ safeSaveStore();
18
+ refreshStore();
19
+ setStatus(`Toggled "${entry.name}" to ${entry.enabled ? "ON" : "OFF"}`, theme.success);
20
+ }
21
+ navigate("key-actions");
22
+ break;
23
+ case "rename":
24
+ state.renameTargetId = state.selectedKeyId;
25
+ navigate("rename");
26
+ break;
27
+ case "delete":
28
+ state.deleteTargetId = state.selectedKeyId;
29
+ navigate("confirm-delete");
30
+ break;
31
+ case "back":
32
+ navigate("key-selector");
33
+ break;
34
+ }
35
+ }
36
+ export async function handleMenuSelect(value) {
37
+ const theme = getActiveTheme();
38
+ const provider = state.activeProvider;
39
+ switch (value) {
40
+ case "add":
41
+ navigate("add-name");
42
+ break;
43
+ case "manage":
44
+ navigate("key-selector");
45
+ break;
46
+ case "reset-failures":
47
+ resetFailures(state.store);
48
+ safeSaveStore();
49
+ refreshStore();
50
+ setStatus("All failure counts reset", theme.success);
51
+ navigate("list");
52
+ break;
53
+ case "toggle-strategy": {
54
+ const current = state.store.rotationStrategy;
55
+ state.store.rotationStrategy = current === "round-robin" ? "least-failures" : "round-robin";
56
+ safeSaveStore();
57
+ refreshStore();
58
+ setStatus(`Strategy: ${state.store.rotationStrategy}`, theme.primary);
59
+ navigate("list");
60
+ break;
61
+ }
62
+ case "theme":
63
+ setPreviewTheme(null);
64
+ navigate("theme-selector");
65
+ break;
66
+ case "sync-models": {
67
+ const res = await syncOpencodeModels(state.store.fallbackChains.antigravity);
68
+ if (res.success) {
69
+ setStatus(`Synced ${res.count} models to opencode.json`, theme.success);
70
+ }
71
+ else {
72
+ setStatus(`Sync failed: ${res.error}`, theme.error);
73
+ }
74
+ navigate("list");
75
+ break;
76
+ }
77
+ case "export":
78
+ navigate("export-path");
79
+ break;
80
+ case "import":
81
+ navigate("import-path");
82
+ break;
83
+ case "quit":
84
+ if (state.oauthCleanup) {
85
+ state.oauthCleanup();
86
+ state.oauthCleanup = null;
87
+ }
88
+ if (state.renderer)
89
+ state.renderer.destroy();
90
+ process.exit(0);
91
+ }
92
+ }
93
+ export function handleExport(filePath) {
94
+ const theme = getActiveTheme();
95
+ const path = filePath.trim();
96
+ if (!path) {
97
+ setStatus("File path is required", theme.error);
98
+ callRenderApp();
99
+ return;
100
+ }
101
+ try {
102
+ const payload = exportKeys(state.store);
103
+ writeExportFile(payload, path);
104
+ setStatus(`Exported ${payload.keys.length} key(s) to ${path}`, theme.success);
105
+ navigate("list");
106
+ }
107
+ catch (err) {
108
+ console.error("[nimsuper] Export failed:", err);
109
+ setStatus(`Export failed: check file path and permissions`, theme.error);
110
+ callRenderApp();
111
+ }
112
+ }
113
+ export function handleImportConfirm(value) {
114
+ const theme = getActiveTheme();
115
+ if (value !== "yes" || !state.pendingImportResult) {
116
+ state.pendingImportPath = "";
117
+ state.pendingImportResult = null;
118
+ navigate("list");
119
+ return;
120
+ }
121
+ const { added, skipped } = applyImport(state.store, state.pendingImportResult.pendingKeys);
122
+ safeSaveStore();
123
+ refreshStore();
124
+ const parts = [];
125
+ if (added > 0)
126
+ parts.push(`${added} added`);
127
+ if (skipped > 0)
128
+ parts.push(`${skipped} skipped`);
129
+ setStatus(`Import complete: ${parts.join(", ")}`, theme.success);
130
+ state.pendingImportPath = "";
131
+ state.pendingImportResult = null;
132
+ navigate("list");
133
+ }
134
+ export function handleFallbackMenuSelect(value) {
135
+ switch (value) {
136
+ case "edit-chain":
137
+ const provider = state.activeProvider;
138
+ state.fallbackChainIndex[provider] = 0;
139
+ state.fallbackChainScrollOffset[provider] = 0;
140
+ navigate("fallback-chain");
141
+ break;
142
+ case "settings":
143
+ navigate("fallback-settings");
144
+ break;
145
+ }
146
+ }
147
+ export async function fetchModels(provider) {
148
+ if (provider === "nvidia") {
149
+ await fetchNimModels();
150
+ }
151
+ else if (provider === "google") {
152
+ await fetchGoogleModels();
153
+ }
154
+ else {
155
+ await fetchAntigravityModels();
156
+ }
157
+ }
158
+ async function fetchNimModels() {
159
+ try {
160
+ const res = await fetch("https://integrate.api.nvidia.com/v1/models", {
161
+ signal: AbortSignal.timeout(15000),
162
+ });
163
+ if (!res.ok) {
164
+ setStatus("Failed to fetch models from NVIDIA NIM", "#FF5555");
165
+ return;
166
+ }
167
+ const data = (await res.json());
168
+ if (!data.data || !Array.isArray(data.data)) {
169
+ setStatus("Invalid response from NVIDIA NIM", "#FF5555");
170
+ return;
171
+ }
172
+ state.availableModels.nvidia = data.data.map((m) => ({
173
+ id: m.id,
174
+ name: m.name ?? m.id,
175
+ }));
176
+ state.modelsLoaded.nvidia = true;
177
+ }
178
+ catch (err) {
179
+ console.error("[nimsuper] Failed to fetch NVIDIA models:", err);
180
+ setStatus("Failed to fetch models from NVIDIA NIM", "#FF5555");
181
+ }
182
+ }
183
+ async function fetchGoogleModels() {
184
+ const googleKey = state.store.keys.find((k) => k.provider === "google" && k.enabled)?.key ||
185
+ process.env.GOOGLE_API_KEY;
186
+ if (!googleKey) {
187
+ setStatus("Add a Google API key first to fetch models", getActiveTheme().warning);
188
+ return;
189
+ }
190
+ try {
191
+ const res = await fetch(`https://generativelanguage.googleapis.com/v1beta/models?key=${googleKey}`, { signal: AbortSignal.timeout(15000) });
192
+ if (!res.ok) {
193
+ setStatus("Failed to fetch models from Google Gemini", "#FF5555");
194
+ return;
195
+ }
196
+ const data = (await res.json());
197
+ if (!data.models || !Array.isArray(data.models)) {
198
+ setStatus("Invalid response from Google Gemini", "#FF5555");
199
+ return;
200
+ }
201
+ state.availableModels.google = data.models
202
+ .filter((m) => m.supportedGenerationMethods?.includes("generateContent"))
203
+ .map((m) => ({
204
+ id: m.name.replace("models/", ""),
205
+ name: m.displayName ?? m.name.replace("models/", ""),
206
+ }));
207
+ state.modelsLoaded.google = true;
208
+ }
209
+ catch (err) {
210
+ console.error("[nimsuper] Failed to fetch Google models:", err);
211
+ setStatus("Failed to fetch models from Google Gemini", "#FF5555");
212
+ }
213
+ }
214
+ async function fetchAntigravityModels() {
215
+ const antigravityKey = state.store.keys.find((k) => k.provider === "antigravity" && k.enabled)?.key ||
216
+ process.env.ANTIGRAVITY_API_KEY;
217
+ let accessToken;
218
+ let projectId;
219
+ if (antigravityKey) {
220
+ const auth = await getOrRefreshAntigravityAccessToken(antigravityKey);
221
+ accessToken = auth?.accessToken;
222
+ projectId = auth?.projectId;
223
+ }
224
+ try {
225
+ const models = await fetchLiveAntigravityModels(accessToken, projectId);
226
+ state.availableModels.antigravity = models;
227
+ state.modelsLoaded.antigravity = true;
228
+ }
229
+ catch (err) {
230
+ console.error("[nimsuper] Failed to fetch Antigravity models:", err);
231
+ setStatus("Failed to fetch models from Antigravity", "#FF5555");
232
+ }
233
+ }
234
+ export function addFallbackModel(id, name) {
235
+ const provider = state.activeProvider;
236
+ const chain = state.store.fallbackChains[provider];
237
+ if (chain.some((m) => m.id === id)) {
238
+ setStatus(`Model "${name}" (${id}) is already in the fallback chain`, getActiveTheme().warning);
239
+ callRenderApp();
240
+ return;
241
+ }
242
+ const insertIndex = state.fallbackChainIndex[provider] >= chain.length
243
+ ? chain.length
244
+ : state.fallbackChainIndex[provider] + 1;
245
+ chain.splice(insertIndex, 0, {
246
+ id,
247
+ name,
248
+ benchmarkTtfb: undefined,
249
+ benchmarkTps: undefined,
250
+ benchmarkStatus: "idle",
251
+ });
252
+ safeSaveStore();
253
+ refreshStore();
254
+ state.fallbackChainIndex[provider] = insertIndex;
255
+ }
256
+ export function cancelBenchmark(modelId) {
257
+ if (modelId) {
258
+ const runner = state.benchmarkRunners.get(modelId);
259
+ if (runner) {
260
+ runner.cancel();
261
+ state.benchmarkRunners.delete(modelId);
262
+ const model = state.store.fallbackChains[state.activeProvider].find((m) => m.id === modelId);
263
+ if (model && model.benchmarkStatus === "running") {
264
+ model.benchmarkStatus = "idle";
265
+ delete model.benchmarkTps;
266
+ delete model.benchmarkTtfb;
267
+ delete model.benchmarkError;
268
+ }
269
+ safeSaveStore();
270
+ callRenderApp();
271
+ }
272
+ }
273
+ else {
274
+ for (const [id, runner] of state.benchmarkRunners) {
275
+ runner.cancel();
276
+ const model = state.store.fallbackChains[state.activeProvider].find((m) => m.id === id);
277
+ if (model && model.benchmarkStatus === "running") {
278
+ model.benchmarkStatus = "idle";
279
+ delete model.benchmarkTps;
280
+ delete model.benchmarkTtfb;
281
+ delete model.benchmarkError;
282
+ }
283
+ }
284
+ state.benchmarkRunners.clear();
285
+ safeSaveStore();
286
+ callRenderApp();
287
+ }
288
+ }
289
+ export async function startBenchmark() {
290
+ const provider = state.activeProvider;
291
+ const chain = state.store.fallbackChains[provider];
292
+ const idx = state.fallbackChainIndex[provider];
293
+ if (idx >= chain.length) {
294
+ setStatus("No model selected to benchmark", getActiveTheme().warning);
295
+ return;
296
+ }
297
+ const model = chain[idx];
298
+ let apiKey = state.store.keys.find((k) => k.enabled && k.provider === provider)?.key ||
299
+ (provider === "nvidia"
300
+ ? process.env.NVIDIA_API_KEY
301
+ : provider === "google"
302
+ ? process.env.GOOGLE_API_KEY
303
+ : process.env.ANTIGRAVITY_API_KEY);
304
+ if (provider === "antigravity" && apiKey) {
305
+ const auth = await getOrRefreshAntigravityAccessToken(apiKey);
306
+ if (auth?.accessToken) {
307
+ apiKey = `${auth.accessToken}|${auth.projectId}`;
308
+ }
309
+ }
310
+ if (!apiKey) {
311
+ setStatus(`No API key available for ${getProviderDisplayName(provider)} benchmarking`, getActiveTheme().error);
312
+ return;
313
+ }
314
+ const existing = state.benchmarkRunners.get(model.id);
315
+ if (existing) {
316
+ existing.cancel();
317
+ state.benchmarkRunners.delete(model.id);
318
+ }
319
+ model.benchmarkStatus = "idle";
320
+ delete model.benchmarkTps;
321
+ delete model.benchmarkTtfb;
322
+ delete model.benchmarkError;
323
+ const runner = new BenchmarkRunner(provider);
324
+ state.benchmarkRunners.set(model.id, runner);
325
+ model.benchmarkStatus = "running";
326
+ callRenderApp();
327
+ await runner.run(model, apiKey);
328
+ if (state.benchmarkRunners.get(model.id) === runner) {
329
+ state.benchmarkRunners.delete(model.id);
330
+ runner.applyResultToModel(model);
331
+ safeSaveStore();
332
+ callRenderApp();
333
+ }
334
+ }
335
+ export function getProviderDisplayName(provider) {
336
+ if (provider === "nvidia")
337
+ return "NVIDIA NIM";
338
+ if (provider === "google")
339
+ return "Google Gemini";
340
+ return "Antigravity (Google OAuth)";
341
+ }
342
+ export function handleStartOAuthLogin() {
343
+ if (state.oauthCleanup) {
344
+ state.oauthCleanup();
345
+ state.oauthCleanup = null;
346
+ }
347
+ const auth = authorizeAntigravity();
348
+ state.pendingOAuthUrl = auth.url;
349
+ state.pendingOAuthState = auth.state;
350
+ openUrlInBrowser(auth.url);
351
+ state.oauthCleanup = startLocalCallbackServer(async (code, stateStr) => {
352
+ try {
353
+ const res = await exchangeAntigravity(code, stateStr || state.pendingOAuthState);
354
+ if (res.type === "success") {
355
+ const name = state.pendingKeyName || res.email || "antigravity-account";
356
+ addKey(state.store, name, res.refresh, "antigravity");
357
+ safeSaveStore();
358
+ refreshStore();
359
+ await syncOpencodeModels(state.store.fallbackChains.antigravity);
360
+ setStatus(`Added Antigravity account "${name}" & synced models`, getActiveTheme().success);
361
+ state.pendingKeyName = "";
362
+ state.pendingOAuthUrl = "";
363
+ state.pendingOAuthState = "";
364
+ navigate("list");
365
+ }
366
+ else {
367
+ setStatus(`OAuth failed: ${res.error}`, getActiveTheme().error);
368
+ callRenderApp();
369
+ }
370
+ }
371
+ catch (err) {
372
+ setStatus(`OAuth error: ${err instanceof Error ? err.message : String(err)}`, getActiveTheme().error);
373
+ callRenderApp();
374
+ }
375
+ });
376
+ navigate("oauth-login");
377
+ }
378
+ export function handleFallbackChainKey(keyName) {
379
+ const provider = state.activeProvider;
380
+ const chain = state.store.fallbackChains[provider];
381
+ const totalItems = chain.length + 1;
382
+ switch (keyName) {
383
+ case "up":
384
+ state.fallbackChainIndex[provider] = Math.max(0, state.fallbackChainIndex[provider] - 1);
385
+ callRenderApp();
386
+ break;
387
+ case "down":
388
+ state.fallbackChainIndex[provider] = Math.min(totalItems - 1, state.fallbackChainIndex[provider] + 1);
389
+ callRenderApp();
390
+ break;
391
+ case "x": {
392
+ // Remove item
393
+ if (state.fallbackChainIndex[provider] < chain.length) {
394
+ const removed = chain[state.fallbackChainIndex[provider]];
395
+ cancelBenchmark(removed.id);
396
+ chain.splice(state.fallbackChainIndex[provider], 1);
397
+ safeSaveStore();
398
+ refreshStore();
399
+ if (state.fallbackChainIndex[provider] >= chain.length) {
400
+ state.fallbackChainIndex[provider] = Math.max(0, chain.length - 1);
401
+ }
402
+ callRenderApp();
403
+ }
404
+ break;
405
+ }
406
+ case "j": {
407
+ // Move item down
408
+ const jIndex = state.fallbackChainIndex[provider];
409
+ if (jIndex < chain.length - 1) {
410
+ const temp = chain[jIndex];
411
+ chain[jIndex] = chain[jIndex + 1];
412
+ chain[jIndex + 1] = temp;
413
+ state.fallbackChainIndex[provider] = jIndex + 1;
414
+ safeSaveStore();
415
+ refreshStore();
416
+ callRenderApp();
417
+ }
418
+ break;
419
+ }
420
+ case "k": {
421
+ // Move item up
422
+ const kIndex = state.fallbackChainIndex[provider];
423
+ if (kIndex > 0 && kIndex < chain.length) {
424
+ const temp = chain[kIndex];
425
+ chain[kIndex] = chain[kIndex - 1];
426
+ chain[kIndex - 1] = temp;
427
+ state.fallbackChainIndex[provider] = kIndex - 1;
428
+ safeSaveStore();
429
+ refreshStore();
430
+ callRenderApp();
431
+ }
432
+ break;
433
+ }
434
+ case "a": {
435
+ // Add new model below current item
436
+ state.modelSelectorIndex[provider] = 0;
437
+ state.modelSelectorScrollOffset[provider] = 0;
438
+ navigate("model-selector");
439
+ break;
440
+ }
441
+ case "b": {
442
+ startBenchmark();
443
+ break;
444
+ }
445
+ case "c": {
446
+ const selectedModel = chain[state.fallbackChainIndex[provider]];
447
+ if (selectedModel) {
448
+ cancelBenchmark(selectedModel.id);
449
+ }
450
+ break;
451
+ }
452
+ case "return":
453
+ case "enter": {
454
+ if (state.fallbackChainIndex[provider] >= chain.length) {
455
+ // "Add model" selected
456
+ state.modelSelectorIndex[provider] = 0;
457
+ state.modelSelectorScrollOffset[provider] = 0;
458
+ navigate("model-selector");
459
+ }
460
+ break;
461
+ }
462
+ }
463
+ }
464
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/tui/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function initApp(): void;
2
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/tui/app.ts"],"names":[],"mappings":"AAuCA,wBAAgB,OAAO,IAAI,IAAI,CAuK9B"}