@kenkaiiii/gg-core 5.64.3 → 5.65.1
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/dist/{chunk-WXKRLK5P.js → chunk-PLJE3KJA.js} +63 -27
- package/dist/chunk-PLJE3KJA.js.map +1 -0
- package/dist/index.cjs +63 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/model-registry.cjs +55 -25
- package/dist/model-registry.cjs.map +1 -1
- package/dist/model-registry.js +1 -1
- package/package.json +2 -2
- package/dist/chunk-WXKRLK5P.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1894,7 +1894,14 @@ var AuthStorage = class {
|
|
|
1894
1894
|
if (opts?.storageKeys && !(opts.storageKeys.length === 1 && opts.storageKeys[0] === provider)) {
|
|
1895
1895
|
for (const key of opts.storageKeys) {
|
|
1896
1896
|
const creds2 = this.data[key];
|
|
1897
|
-
if (creds2)
|
|
1897
|
+
if (!creds2) continue;
|
|
1898
|
+
if (key !== provider && dualAuthProviderByOAuthKey(key)) {
|
|
1899
|
+
return await this.resolveCredentials(key, {
|
|
1900
|
+
...opts.forceRefresh ? { forceRefresh: true } : {},
|
|
1901
|
+
...opts.rejectedToken !== void 0 ? { rejectedToken: opts.rejectedToken } : {}
|
|
1902
|
+
});
|
|
1903
|
+
}
|
|
1904
|
+
return creds2;
|
|
1898
1905
|
}
|
|
1899
1906
|
throw new NotLoggedInError(provider);
|
|
1900
1907
|
}
|
|
@@ -2185,10 +2192,12 @@ var MODELS = [
|
|
|
2185
2192
|
},
|
|
2186
2193
|
// ── Sakana (Fugu) ──────────────────────────────────────
|
|
2187
2194
|
// Sakana Fugu is a multi-agent system surfaced as a standard LLM via the
|
|
2188
|
-
// OpenAI-compatible Sakana API (https://api.sakana.ai/v1).
|
|
2189
|
-
// text + image input
|
|
2190
|
-
// `fugu`
|
|
2191
|
-
//
|
|
2195
|
+
// OpenAI-compatible Sakana API (https://api.sakana.ai/v1). All three take
|
|
2196
|
+
// text + image input (verified against the live /models list, 2026-09-28).
|
|
2197
|
+
// `fugu` balances latency and quality; `fugu-max` (v1.0, 2026-09-11) is the
|
|
2198
|
+
// cost tier over the largest open-weight pool ($2/$6 per 1M); `fugu-ultra`
|
|
2199
|
+
// is the heavier quality tier (may need larger client timeouts). Plain Fugu
|
|
2200
|
+
// and Fugu Max stop at xhigh — Sakana documents max as the same effort there.
|
|
2192
2201
|
{
|
|
2193
2202
|
id: "fugu",
|
|
2194
2203
|
name: "Fugu",
|
|
@@ -2201,6 +2210,18 @@ var MODELS = [
|
|
|
2201
2210
|
costTier: "medium",
|
|
2202
2211
|
maxThinkingLevel: "xhigh"
|
|
2203
2212
|
},
|
|
2213
|
+
{
|
|
2214
|
+
id: "fugu-max",
|
|
2215
|
+
name: "Fugu Max",
|
|
2216
|
+
provider: "sakana",
|
|
2217
|
+
contextWindow: 1e6,
|
|
2218
|
+
maxOutputTokens: 128e3,
|
|
2219
|
+
supportsThinking: true,
|
|
2220
|
+
supportsImages: true,
|
|
2221
|
+
supportsVideo: false,
|
|
2222
|
+
costTier: "medium",
|
|
2223
|
+
maxThinkingLevel: "xhigh"
|
|
2224
|
+
},
|
|
2204
2225
|
{
|
|
2205
2226
|
id: "fugu-ultra",
|
|
2206
2227
|
name: "Fugu Ultra",
|
|
@@ -2211,7 +2232,7 @@ var MODELS = [
|
|
|
2211
2232
|
supportsImages: true,
|
|
2212
2233
|
supportsVideo: false,
|
|
2213
2234
|
costTier: "high",
|
|
2214
|
-
// The rolling alias now serves
|
|
2235
|
+
// The rolling alias now serves v2.0 (2026-09-11), which keeps max effort.
|
|
2215
2236
|
maxThinkingLevel: "max"
|
|
2216
2237
|
},
|
|
2217
2238
|
// ── xAI (Grok) ─────────────────────────────────────────
|
|
@@ -2355,7 +2376,27 @@ var MODELS = [
|
|
|
2355
2376
|
costTier: "high",
|
|
2356
2377
|
maxThinkingLevel: "max"
|
|
2357
2378
|
},
|
|
2358
|
-
//
|
|
2379
|
+
// K2.8 Preview (2026-09-11) is served only on the Kimi For Coding OAuth
|
|
2380
|
+
// endpoint, under its rolling `kimi-for-coding` id (live /models, 2026-09-28:
|
|
2381
|
+
// display_name "K2.8 Preview", 1M context, image + video input, efforts
|
|
2382
|
+
// low/high/max default max). The public API-key endpoint does not serve it,
|
|
2383
|
+
// so it resolves from the Kimi sign-in credential only.
|
|
2384
|
+
{
|
|
2385
|
+
id: "kimi-for-coding",
|
|
2386
|
+
name: "Kimi K2.8 Preview",
|
|
2387
|
+
provider: "moonshot",
|
|
2388
|
+
contextWindow: 1048576,
|
|
2389
|
+
maxOutputTokens: 131072,
|
|
2390
|
+
supportsThinking: true,
|
|
2391
|
+
supportsImages: true,
|
|
2392
|
+
supportsVideo: true,
|
|
2393
|
+
maxVideoBytes: 100 * 1024 * 1024,
|
|
2394
|
+
costTier: "medium",
|
|
2395
|
+
maxThinkingLevel: "max",
|
|
2396
|
+
authStorageKeys: [MOONSHOT_OAUTH_KEY]
|
|
2397
|
+
},
|
|
2398
|
+
// K2.7 Code is requested by its pinned id (not the `kimi-for-coding` alias
|
|
2399
|
+
// that moved to K2.8), so it stays the real K2.7 on both endpoints.
|
|
2359
2400
|
{
|
|
2360
2401
|
id: "kimi-k2.7-code",
|
|
2361
2402
|
name: "Kimi K2.7 Code",
|
|
@@ -2486,10 +2527,14 @@ var MODELS = [
|
|
|
2486
2527
|
authStorageKeys: [XIAOMI_CREDITS_KEY]
|
|
2487
2528
|
},
|
|
2488
2529
|
// ── DeepSeek ───────────────────────────────────────────
|
|
2530
|
+
// The live /models list (2026-09-28) serves exactly `deepseek-flash` and
|
|
2531
|
+
// `deepseek-v4-pro`. V4 Flash and V4 Flash Vision Exp are retired; their old
|
|
2532
|
+
// ids only temporarily route to V4.1 Flash, so they are retired here too.
|
|
2489
2533
|
{
|
|
2490
2534
|
// `deepseek-v4-pro` now serves DeepSeek-V4-Pro-0813 (released 2026-08-13,
|
|
2491
2535
|
// first STABLE V4 Pro — supersedes the April preview; calling name
|
|
2492
2536
|
// unchanged, same 1.6T/49B MoE). 1M context, text-only, low/high/max effort.
|
|
2537
|
+
// DeepSeek reversed its planned 2026-09-14 retirement, so it stays served.
|
|
2493
2538
|
// Docs abbreviate output as 384K; use the same conservative 384,000-token
|
|
2494
2539
|
// application cap across V4 models rather than mixing decimal/binary units.
|
|
2495
2540
|
id: "deepseek-v4-pro",
|
|
@@ -2504,21 +2549,10 @@ var MODELS = [
|
|
|
2504
2549
|
maxThinkingLevel: "max"
|
|
2505
2550
|
},
|
|
2506
2551
|
{
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
maxOutputTokens: 384e3,
|
|
2512
|
-
supportsThinking: true,
|
|
2513
|
-
supportsImages: false,
|
|
2514
|
-
supportsVideo: false,
|
|
2515
|
-
costTier: "low",
|
|
2516
|
-
maxThinkingLevel: "max"
|
|
2517
|
-
},
|
|
2518
|
-
// Opt-in experimental vision sibling; never replaces the stable summary model.
|
|
2519
|
-
{
|
|
2520
|
-
id: "deepseek-v4-flash-vision-exp",
|
|
2521
|
-
name: "DeepSeek V4 Flash Vision (Experimental)",
|
|
2552
|
+
// `deepseek-flash` is the rolling alias for the latest Flash — currently
|
|
2553
|
+
// V4.1 Flash (2026-09-10): native image input, 1M context, 384K output.
|
|
2554
|
+
id: "deepseek-flash",
|
|
2555
|
+
name: "DeepSeek V4.1 Flash",
|
|
2522
2556
|
provider: "deepseek",
|
|
2523
2557
|
contextWindow: 1048576,
|
|
2524
2558
|
maxOutputTokens: 384e3,
|
|
@@ -2530,11 +2564,13 @@ var MODELS = [
|
|
|
2530
2564
|
},
|
|
2531
2565
|
// ── OpenRouter ─────────────────────────────────────────
|
|
2532
2566
|
{
|
|
2533
|
-
|
|
2534
|
-
|
|
2567
|
+
// Qwen3.8 Max — Alibaba's flagship (live /endpoints, 2026-09-28): 1M
|
|
2568
|
+
// context, 131,072 output, text + image + video input, reasoning on.
|
|
2569
|
+
id: "qwen/qwen3.8-max",
|
|
2570
|
+
name: "Qwen3.8 Max",
|
|
2535
2571
|
provider: "openrouter",
|
|
2536
2572
|
contextWindow: 1e6,
|
|
2537
|
-
maxOutputTokens:
|
|
2573
|
+
maxOutputTokens: 131072,
|
|
2538
2574
|
supportsThinking: true,
|
|
2539
2575
|
supportsImages: true,
|
|
2540
2576
|
supportsVideo: true,
|
|
@@ -2628,7 +2664,7 @@ function getDefaultModel(provider) {
|
|
|
2628
2664
|
if (provider === "deepseek") return MODELS.find((m) => m.id === "deepseek-v4-pro");
|
|
2629
2665
|
if (provider === "huggingface")
|
|
2630
2666
|
return MODELS.find((m) => m.id === "Qwen/Qwen3-Coder-480B-A35B-Instruct");
|
|
2631
|
-
if (provider === "openrouter") return MODELS.find((m) => m.id === "qwen/qwen3.
|
|
2667
|
+
if (provider === "openrouter") return MODELS.find((m) => m.id === "qwen/qwen3.8-max");
|
|
2632
2668
|
if (provider === "sakana") return MODELS.find((m) => m.id === "fugu");
|
|
2633
2669
|
if (provider === "xai") return MODELS.find((m) => m.id === "grok-4.7");
|
|
2634
2670
|
if (provider === "local") {
|
|
@@ -2724,7 +2760,7 @@ function isXaiModel(provider) {
|
|
|
2724
2760
|
return provider === "xai";
|
|
2725
2761
|
}
|
|
2726
2762
|
function isMoonshotK3Model(provider, model) {
|
|
2727
|
-
return provider === "moonshot" && model === "kimi-k3";
|
|
2763
|
+
return provider === "moonshot" && (model === "kimi-k3" || model === "kimi-for-coding");
|
|
2728
2764
|
}
|
|
2729
2765
|
function isGlmModel(provider) {
|
|
2730
2766
|
return provider === "glm";
|