@kenkaiiii/gg-core 5.69.0 → 5.71.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/dist/{chunk-7WTRAERP.js → chunk-Y3AHAB37.js} +39 -25
- package/dist/chunk-Y3AHAB37.js.map +1 -0
- package/dist/index.cjs +70 -33
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -2
- package/dist/index.d.ts +12 -2
- package/dist/index.js +35 -12
- package/dist/index.js.map +1 -1
- package/dist/model-registry.cjs +11 -17
- package/dist/model-registry.cjs.map +1 -1
- package/dist/model-registry.d.cts +11 -19
- package/dist/model-registry.d.ts +11 -19
- package/dist/model-registry.js +1 -3
- package/package.json +2 -2
- package/dist/chunk-7WTRAERP.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { ModelInfo } from './model-registry.cjs';
|
|
2
|
-
export { ContextWindowOptions, DEFAULT_MAX_VIDEO_BYTES, MODELS, clearRuntimeModels, getAllModels, getAuthStorageKey, getAuthStorageKeys, getContextWindow, getDefaultModel, getDefaultThinkingLevel,
|
|
2
|
+
export { ContextWindowOptions, DEFAULT_MAX_VIDEO_BYTES, MODELS, clearRuntimeModels, getAllModels, getAuthStorageKey, getAuthStorageKeys, getContextWindow, getDefaultModel, getDefaultThinkingLevel, getMaxThinkingLevel, getModel, getModelsForProvider, getSummaryModel, getToolResultCharLimit, getVideoByteLimit, registerRuntimeModels, usesOpenAICodexTransport } from './model-registry.cjs';
|
|
3
3
|
import { ThinkingLevel, Provider } from '@kenkaiiii/gg-ai';
|
|
4
4
|
export { AppPaths, getAppPaths } from './paths.cjs';
|
|
5
5
|
|
|
6
6
|
declare function getSupportedThinkingLevels(provider: Provider, model: string): readonly ThinkingLevel[];
|
|
7
|
+
/**
|
|
8
|
+
* The lowest effort `model` accepts — the first rung of its ladder, never
|
|
9
|
+
* "off". Used for background work (compaction summaries, `model: fast`
|
|
10
|
+
* agents) that runs on the active model but doesn't need deep reasoning.
|
|
11
|
+
* Undefined only when the model cannot reason at all, since sending it any
|
|
12
|
+
* effort would be rejected.
|
|
13
|
+
*/
|
|
14
|
+
declare function getLowestThinkingLevel(provider: Provider, model: string): ThinkingLevel | undefined;
|
|
7
15
|
declare function isThinkingLevelSupported(provider: Provider, model: string, level: ThinkingLevel): boolean;
|
|
8
16
|
declare function getNextThinkingLevel(provider: Provider, model: string, current: ThinkingLevel | undefined): ThinkingLevel | undefined;
|
|
9
17
|
/**
|
|
@@ -656,6 +664,8 @@ declare class TelegramBot {
|
|
|
656
664
|
private allowedUserId;
|
|
657
665
|
private offset;
|
|
658
666
|
private running;
|
|
667
|
+
/** Aborts the in-flight long poll so stop() takes effect immediately. */
|
|
668
|
+
private pollAbort;
|
|
659
669
|
private onMessage;
|
|
660
670
|
private onVoiceMessage;
|
|
661
671
|
private onCallback;
|
|
@@ -749,4 +759,4 @@ interface AutoUpdater {
|
|
|
749
759
|
}
|
|
750
760
|
declare function createAutoUpdater(config: AutoUpdateConfig): AutoUpdater;
|
|
751
761
|
|
|
752
|
-
export { AuthStorage, type AutoUpdateConfig, type AutoUpdater, DEFAULT_LOCAL_ENDPOINTS, type DiscoverOptions, type DiscoveryResult, type DualAuthProvider, FALLBACK_CONTEXT_WINDOW, type InlineButton, LOCAL_API_KEY_PLACEHOLDER, LOCAL_AUTH_KEY_PREFIX, type LocalEndpoint, type LocalEndpointKind, type LocalEndpointProbe, type LocalModel, type LogLevel, MOONSHOT_OAUTH_KEY, ModelInfo, NotLoggedInError, type OAuthCredentials, type OAuthLoginCallbacks, PLAN_MODE_THINKING_CAP, type ProbeOptions, type ProgressCallback, SubscriptionUsageError, type SubscriptionUsageProvider, type SubscriptionUsageSnapshot, type SubscriptionUsageWindow, TelegramBot, type TelegramConfig, type TelegramMessage, type TelegramUpdate, type TelegramVoiceMessage, XAI_OAUTH_KEY, XIAOMI_CREDITS_KEY, clampThinkingForPlanMode, clearLocalDiscoveryCache, closeLogger, createAutoUpdater, decodeOggOpus, discoverLocalModels, downmixToMono, dualAuthProvider, dualAuthProviderByOAuthKey, endpointRoot, fetchSubscriptionUsage, findProbedModel, formatLocalModelId, generatePKCE, getClaudeCliUserAgent, getClaudeCodeVersion, getNextThinkingLevel, getSessionId, getSupportedThinkingLevels, grokCliBaseUrl, grokCliHeaders, isGrokCliEndpoint, isKimiCodingEndpoint, isLocalModelId, isLoggerOpen, isModelLoaded, isThinkingLevelSupported, kimiCodeBaseUrl, kimiCodingHeaders, localAuthStorageKey, log, loginAnthropic, loginGemini, loginKimi, loginOpenAI, loginXai, oauthStorageKey, openLog, parseLocalModelId, probeEndpoint, providerStorageKeys, readStoredBaseUrlSync, refreshAnthropicToken, refreshGeminiToken, refreshKimiToken, refreshOpenAIToken, refreshXaiToken, registerLogCleanup, resample, setProgressCallback, toModelInfo, transcribeVoice, withFileLock };
|
|
762
|
+
export { AuthStorage, type AutoUpdateConfig, type AutoUpdater, DEFAULT_LOCAL_ENDPOINTS, type DiscoverOptions, type DiscoveryResult, type DualAuthProvider, FALLBACK_CONTEXT_WINDOW, type InlineButton, LOCAL_API_KEY_PLACEHOLDER, LOCAL_AUTH_KEY_PREFIX, type LocalEndpoint, type LocalEndpointKind, type LocalEndpointProbe, type LocalModel, type LogLevel, MOONSHOT_OAUTH_KEY, ModelInfo, NotLoggedInError, type OAuthCredentials, type OAuthLoginCallbacks, PLAN_MODE_THINKING_CAP, type ProbeOptions, type ProgressCallback, SubscriptionUsageError, type SubscriptionUsageProvider, type SubscriptionUsageSnapshot, type SubscriptionUsageWindow, TelegramBot, type TelegramConfig, type TelegramMessage, type TelegramUpdate, type TelegramVoiceMessage, XAI_OAUTH_KEY, XIAOMI_CREDITS_KEY, clampThinkingForPlanMode, clearLocalDiscoveryCache, closeLogger, createAutoUpdater, decodeOggOpus, discoverLocalModels, downmixToMono, dualAuthProvider, dualAuthProviderByOAuthKey, endpointRoot, fetchSubscriptionUsage, findProbedModel, formatLocalModelId, generatePKCE, getClaudeCliUserAgent, getClaudeCodeVersion, getLowestThinkingLevel, getNextThinkingLevel, getSessionId, getSupportedThinkingLevels, grokCliBaseUrl, grokCliHeaders, isGrokCliEndpoint, isKimiCodingEndpoint, isLocalModelId, isLoggerOpen, isModelLoaded, isThinkingLevelSupported, kimiCodeBaseUrl, kimiCodingHeaders, localAuthStorageKey, log, loginAnthropic, loginGemini, loginKimi, loginOpenAI, loginXai, oauthStorageKey, openLog, parseLocalModelId, probeEndpoint, providerStorageKeys, readStoredBaseUrlSync, refreshAnthropicToken, refreshGeminiToken, refreshKimiToken, refreshOpenAIToken, refreshXaiToken, registerLogCleanup, resample, setProgressCallback, toModelInfo, transcribeVoice, withFileLock };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { ModelInfo } from './model-registry.js';
|
|
2
|
-
export { ContextWindowOptions, DEFAULT_MAX_VIDEO_BYTES, MODELS, clearRuntimeModels, getAllModels, getAuthStorageKey, getAuthStorageKeys, getContextWindow, getDefaultModel, getDefaultThinkingLevel,
|
|
2
|
+
export { ContextWindowOptions, DEFAULT_MAX_VIDEO_BYTES, MODELS, clearRuntimeModels, getAllModels, getAuthStorageKey, getAuthStorageKeys, getContextWindow, getDefaultModel, getDefaultThinkingLevel, getMaxThinkingLevel, getModel, getModelsForProvider, getSummaryModel, getToolResultCharLimit, getVideoByteLimit, registerRuntimeModels, usesOpenAICodexTransport } from './model-registry.js';
|
|
3
3
|
import { ThinkingLevel, Provider } from '@kenkaiiii/gg-ai';
|
|
4
4
|
export { AppPaths, getAppPaths } from './paths.js';
|
|
5
5
|
|
|
6
6
|
declare function getSupportedThinkingLevels(provider: Provider, model: string): readonly ThinkingLevel[];
|
|
7
|
+
/**
|
|
8
|
+
* The lowest effort `model` accepts — the first rung of its ladder, never
|
|
9
|
+
* "off". Used for background work (compaction summaries, `model: fast`
|
|
10
|
+
* agents) that runs on the active model but doesn't need deep reasoning.
|
|
11
|
+
* Undefined only when the model cannot reason at all, since sending it any
|
|
12
|
+
* effort would be rejected.
|
|
13
|
+
*/
|
|
14
|
+
declare function getLowestThinkingLevel(provider: Provider, model: string): ThinkingLevel | undefined;
|
|
7
15
|
declare function isThinkingLevelSupported(provider: Provider, model: string, level: ThinkingLevel): boolean;
|
|
8
16
|
declare function getNextThinkingLevel(provider: Provider, model: string, current: ThinkingLevel | undefined): ThinkingLevel | undefined;
|
|
9
17
|
/**
|
|
@@ -656,6 +664,8 @@ declare class TelegramBot {
|
|
|
656
664
|
private allowedUserId;
|
|
657
665
|
private offset;
|
|
658
666
|
private running;
|
|
667
|
+
/** Aborts the in-flight long poll so stop() takes effect immediately. */
|
|
668
|
+
private pollAbort;
|
|
659
669
|
private onMessage;
|
|
660
670
|
private onVoiceMessage;
|
|
661
671
|
private onCallback;
|
|
@@ -749,4 +759,4 @@ interface AutoUpdater {
|
|
|
749
759
|
}
|
|
750
760
|
declare function createAutoUpdater(config: AutoUpdateConfig): AutoUpdater;
|
|
751
761
|
|
|
752
|
-
export { AuthStorage, type AutoUpdateConfig, type AutoUpdater, DEFAULT_LOCAL_ENDPOINTS, type DiscoverOptions, type DiscoveryResult, type DualAuthProvider, FALLBACK_CONTEXT_WINDOW, type InlineButton, LOCAL_API_KEY_PLACEHOLDER, LOCAL_AUTH_KEY_PREFIX, type LocalEndpoint, type LocalEndpointKind, type LocalEndpointProbe, type LocalModel, type LogLevel, MOONSHOT_OAUTH_KEY, ModelInfo, NotLoggedInError, type OAuthCredentials, type OAuthLoginCallbacks, PLAN_MODE_THINKING_CAP, type ProbeOptions, type ProgressCallback, SubscriptionUsageError, type SubscriptionUsageProvider, type SubscriptionUsageSnapshot, type SubscriptionUsageWindow, TelegramBot, type TelegramConfig, type TelegramMessage, type TelegramUpdate, type TelegramVoiceMessage, XAI_OAUTH_KEY, XIAOMI_CREDITS_KEY, clampThinkingForPlanMode, clearLocalDiscoveryCache, closeLogger, createAutoUpdater, decodeOggOpus, discoverLocalModels, downmixToMono, dualAuthProvider, dualAuthProviderByOAuthKey, endpointRoot, fetchSubscriptionUsage, findProbedModel, formatLocalModelId, generatePKCE, getClaudeCliUserAgent, getClaudeCodeVersion, getNextThinkingLevel, getSessionId, getSupportedThinkingLevels, grokCliBaseUrl, grokCliHeaders, isGrokCliEndpoint, isKimiCodingEndpoint, isLocalModelId, isLoggerOpen, isModelLoaded, isThinkingLevelSupported, kimiCodeBaseUrl, kimiCodingHeaders, localAuthStorageKey, log, loginAnthropic, loginGemini, loginKimi, loginOpenAI, loginXai, oauthStorageKey, openLog, parseLocalModelId, probeEndpoint, providerStorageKeys, readStoredBaseUrlSync, refreshAnthropicToken, refreshGeminiToken, refreshKimiToken, refreshOpenAIToken, refreshXaiToken, registerLogCleanup, resample, setProgressCallback, toModelInfo, transcribeVoice, withFileLock };
|
|
762
|
+
export { AuthStorage, type AutoUpdateConfig, type AutoUpdater, DEFAULT_LOCAL_ENDPOINTS, type DiscoverOptions, type DiscoveryResult, type DualAuthProvider, FALLBACK_CONTEXT_WINDOW, type InlineButton, LOCAL_API_KEY_PLACEHOLDER, LOCAL_AUTH_KEY_PREFIX, type LocalEndpoint, type LocalEndpointKind, type LocalEndpointProbe, type LocalModel, type LogLevel, MOONSHOT_OAUTH_KEY, ModelInfo, NotLoggedInError, type OAuthCredentials, type OAuthLoginCallbacks, PLAN_MODE_THINKING_CAP, type ProbeOptions, type ProgressCallback, SubscriptionUsageError, type SubscriptionUsageProvider, type SubscriptionUsageSnapshot, type SubscriptionUsageWindow, TelegramBot, type TelegramConfig, type TelegramMessage, type TelegramUpdate, type TelegramVoiceMessage, XAI_OAUTH_KEY, XIAOMI_CREDITS_KEY, clampThinkingForPlanMode, clearLocalDiscoveryCache, closeLogger, createAutoUpdater, decodeOggOpus, discoverLocalModels, downmixToMono, dualAuthProvider, dualAuthProviderByOAuthKey, endpointRoot, fetchSubscriptionUsage, findProbedModel, formatLocalModelId, generatePKCE, getClaudeCliUserAgent, getClaudeCodeVersion, getLowestThinkingLevel, getNextThinkingLevel, getSessionId, getSupportedThinkingLevels, grokCliBaseUrl, grokCliHeaders, isGrokCliEndpoint, isKimiCodingEndpoint, isLocalModelId, isLoggerOpen, isModelLoaded, isThinkingLevelSupported, kimiCodeBaseUrl, kimiCodingHeaders, localAuthStorageKey, log, loginAnthropic, loginGemini, loginKimi, loginOpenAI, loginXai, oauthStorageKey, openLog, parseLocalModelId, probeEndpoint, providerStorageKeys, readStoredBaseUrlSync, refreshAnthropicToken, refreshGeminiToken, refreshKimiToken, refreshOpenAIToken, refreshXaiToken, registerLogCleanup, resample, setProgressCallback, toModelInfo, transcribeVoice, withFileLock };
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,6 @@ import {
|
|
|
20
20
|
getContextWindow,
|
|
21
21
|
getDefaultModel,
|
|
22
22
|
getDefaultThinkingLevel,
|
|
23
|
-
getFastModel,
|
|
24
23
|
getMaxThinkingLevel,
|
|
25
24
|
getModel,
|
|
26
25
|
getModelsForProvider,
|
|
@@ -54,7 +53,7 @@ import {
|
|
|
54
53
|
registerRuntimeModels,
|
|
55
54
|
usesOpenAICodexTransport,
|
|
56
55
|
withFileLock
|
|
57
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-Y3AHAB37.js";
|
|
58
57
|
import {
|
|
59
58
|
getAppPaths
|
|
60
59
|
} from "./chunk-EAIPT76S.js";
|
|
@@ -146,6 +145,10 @@ function getSupportedThinkingLevels(provider, model) {
|
|
|
146
145
|
if (maxIndex === -1) return ["medium"];
|
|
147
146
|
return levels.slice(0, maxIndex + 1);
|
|
148
147
|
}
|
|
148
|
+
function getLowestThinkingLevel(provider, model) {
|
|
149
|
+
if (getModel(model)?.supportsThinking === false) return void 0;
|
|
150
|
+
return getSupportedThinkingLevels(provider, model)[0];
|
|
151
|
+
}
|
|
149
152
|
function isThinkingLevelSupported(provider, model, level) {
|
|
150
153
|
return getSupportedThinkingLevels(provider, model).includes(level);
|
|
151
154
|
}
|
|
@@ -693,12 +696,16 @@ async function fetchSubscriptionUsage(provider, credentials, options = {}) {
|
|
|
693
696
|
|
|
694
697
|
// src/telegram.ts
|
|
695
698
|
var TELEGRAM_API = "https://api.telegram.org";
|
|
699
|
+
var LONG_POLL_SECONDS = 30;
|
|
700
|
+
var API_TIMEOUT_MS = 3e4;
|
|
696
701
|
var MAX_MESSAGE_LENGTH = 4096;
|
|
697
702
|
var TelegramBot = class {
|
|
698
703
|
token;
|
|
699
704
|
allowedUserId;
|
|
700
705
|
offset = 0;
|
|
701
706
|
running = false;
|
|
707
|
+
/** Aborts the in-flight long poll so stop() takes effect immediately. */
|
|
708
|
+
pollAbort = null;
|
|
702
709
|
onMessage = null;
|
|
703
710
|
onVoiceMessage = null;
|
|
704
711
|
onCallback = null;
|
|
@@ -751,6 +758,7 @@ var TelegramBot = class {
|
|
|
751
758
|
/** Stop long polling. */
|
|
752
759
|
stop() {
|
|
753
760
|
this.running = false;
|
|
761
|
+
this.pollAbort?.abort();
|
|
754
762
|
}
|
|
755
763
|
/** Send a text message to a specific chat. Converts markdown and splits long messages. */
|
|
756
764
|
async send(chatId, text, buttons) {
|
|
@@ -797,12 +805,26 @@ var TelegramBot = class {
|
|
|
797
805
|
}
|
|
798
806
|
// ── Private ───────────────────────────────────────────
|
|
799
807
|
async getUpdates() {
|
|
800
|
-
const
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
808
|
+
const poll = new AbortController();
|
|
809
|
+
this.pollAbort = poll;
|
|
810
|
+
let result;
|
|
811
|
+
try {
|
|
812
|
+
result = await this.apiCall(
|
|
813
|
+
"getUpdates",
|
|
814
|
+
{
|
|
815
|
+
offset: this.offset,
|
|
816
|
+
timeout: LONG_POLL_SECONDS,
|
|
817
|
+
allowed_updates: ["message", "callback_query", "my_chat_member"]
|
|
818
|
+
},
|
|
819
|
+
// A half-open socket would otherwise hang the poll forever.
|
|
820
|
+
AbortSignal.any([poll.signal, AbortSignal.timeout((LONG_POLL_SECONDS + 15) * 1e3)])
|
|
821
|
+
);
|
|
822
|
+
} finally {
|
|
823
|
+
if (this.pollAbort === poll) this.pollAbort = null;
|
|
824
|
+
}
|
|
825
|
+
if (!result.ok || !Array.isArray(result.result)) {
|
|
826
|
+
throw new Error(`getUpdates failed: ${JSON.stringify(result)}`);
|
|
827
|
+
}
|
|
806
828
|
const updates = result.result;
|
|
807
829
|
if (updates.length > 0) {
|
|
808
830
|
this.offset = updates[updates.length - 1].update_id + 1;
|
|
@@ -850,12 +872,13 @@ var TelegramBot = class {
|
|
|
850
872
|
}
|
|
851
873
|
}
|
|
852
874
|
}
|
|
853
|
-
async apiCall(method, body) {
|
|
875
|
+
async apiCall(method, body, signal = AbortSignal.timeout(API_TIMEOUT_MS)) {
|
|
854
876
|
const url = `${TELEGRAM_API}/bot${this.token}/${method}`;
|
|
855
877
|
const response = await fetch(url, {
|
|
856
878
|
method: "POST",
|
|
857
879
|
headers: { "Content-Type": "application/json" },
|
|
858
|
-
body: body ? JSON.stringify(body) : void 0
|
|
880
|
+
body: body ? JSON.stringify(body) : void 0,
|
|
881
|
+
signal
|
|
859
882
|
});
|
|
860
883
|
if (!response.ok) {
|
|
861
884
|
return { ok: false };
|
|
@@ -988,7 +1011,7 @@ function isModelLoaded() {
|
|
|
988
1011
|
return transcriber !== null;
|
|
989
1012
|
}
|
|
990
1013
|
async function transcribeVoice(fileUrl) {
|
|
991
|
-
const response = await fetch(fileUrl);
|
|
1014
|
+
const response = await fetch(fileUrl, { signal: AbortSignal.timeout(6e4) });
|
|
992
1015
|
if (!response.ok) throw new Error(`Failed to download voice file: ${response.status}`);
|
|
993
1016
|
const buffer = new Uint8Array(await response.arrayBuffer());
|
|
994
1017
|
const pcm = await decodeOggOpus(buffer);
|
|
@@ -1205,7 +1228,7 @@ export {
|
|
|
1205
1228
|
getContextWindow,
|
|
1206
1229
|
getDefaultModel,
|
|
1207
1230
|
getDefaultThinkingLevel,
|
|
1208
|
-
|
|
1231
|
+
getLowestThinkingLevel,
|
|
1209
1232
|
getMaxThinkingLevel,
|
|
1210
1233
|
getModel,
|
|
1211
1234
|
getModelsForProvider,
|