maintainence love:)

This commit is contained in:
lovebird 2026-01-24 23:16:55 +01:00
parent e0cef22c5b
commit e4c162017a
33 changed files with 3190 additions and 4677 deletions

View File

@ -1,5 +1,5 @@
{ {
"timestamp": 1767165092218, "timestamp": 1769293001025,
"models": [ "models": [
{ {
"id": "gpt-4-0613", "id": "gpt-4-0613",
@ -20,15 +20,9 @@
"owned_by": "openai" "owned_by": "openai"
}, },
{ {
"id": "chatgpt-image-latest", "id": "gpt-5.2-codex",
"object": "model", "object": "model",
"created": 1765925279, "created": 1766164985,
"owned_by": "system"
},
{
"id": "gpt-4o-mini-tts-2025-03-20",
"object": "model",
"created": 1765610731,
"owned_by": "system" "owned_by": "system"
}, },
{ {
@ -49,6 +43,12 @@
"created": 1765760008, "created": 1765760008,
"owned_by": "system" "owned_by": "system"
}, },
{
"id": "chatgpt-image-latest",
"object": "model",
"created": 1765925279,
"owned_by": "system"
},
{ {
"id": "davinci-002", "id": "davinci-002",
"object": "model", "object": "model",
@ -661,6 +661,12 @@
"created": 1765610545, "created": 1765610545,
"owned_by": "system" "owned_by": "system"
}, },
{
"id": "gpt-4o-mini-tts-2025-03-20",
"object": "model",
"created": 1765610731,
"owned_by": "system"
},
{ {
"id": "gpt-3.5-turbo-16k", "id": "gpt-3.5-turbo-16k",
"object": "model", "object": "model",

File diff suppressed because it is too large Load Diff

View File

@ -2,11 +2,11 @@ export declare enum E_OPENAI_MODEL {
MODEL_GPT_4_0613 = "gpt-4-0613", MODEL_GPT_4_0613 = "gpt-4-0613",
MODEL_GPT_4 = "gpt-4", MODEL_GPT_4 = "gpt-4",
MODEL_GPT_3_5_TURBO = "gpt-3.5-turbo", MODEL_GPT_3_5_TURBO = "gpt-3.5-turbo",
MODEL_GPT_AUDIO = "gpt-audio", MODEL_CHATGPT_IMAGE_LATEST = "chatgpt-image-latest",
MODEL_GPT_5_NANO = "gpt-5-nano", MODEL_GPT_4O_MINI_TTS_2025_03_20 = "gpt-4o-mini-tts-2025-03-20",
MODEL_GPT_AUDIO_2025_08_28 = "gpt-audio-2025-08-28", MODEL_GPT_4O_MINI_TTS_2025_12_15 = "gpt-4o-mini-tts-2025-12-15",
MODEL_GPT_REALTIME = "gpt-realtime", MODEL_GPT_REALTIME_MINI_2025_12_15 = "gpt-realtime-mini-2025-12-15",
MODEL_GPT_REALTIME_2025_08_28 = "gpt-realtime-2025-08-28", MODEL_GPT_AUDIO_MINI_2025_12_15 = "gpt-audio-mini-2025-12-15",
MODEL_DAVINCI_002 = "davinci-002", MODEL_DAVINCI_002 = "davinci-002",
MODEL_BABBAGE_002 = "babbage-002", MODEL_BABBAGE_002 = "babbage-002",
MODEL_GPT_3_5_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct", MODEL_GPT_3_5_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct",
@ -31,10 +31,6 @@ export declare enum E_OPENAI_MODEL {
MODEL_GPT_4O_MINI = "gpt-4o-mini", MODEL_GPT_4O_MINI = "gpt-4o-mini",
MODEL_GPT_4O_2024_08_06 = "gpt-4o-2024-08-06", MODEL_GPT_4O_2024_08_06 = "gpt-4o-2024-08-06",
MODEL_CHATGPT_4O_LATEST = "chatgpt-4o-latest", MODEL_CHATGPT_4O_LATEST = "chatgpt-4o-latest",
MODEL_O1_MINI_2024_09_12 = "o1-mini-2024-09-12",
MODEL_O1_MINI = "o1-mini",
MODEL_GPT_4O_REALTIME_PREVIEW_2024_10_01 = "gpt-4o-realtime-preview-2024-10-01",
MODEL_GPT_4O_AUDIO_PREVIEW_2024_10_01 = "gpt-4o-audio-preview-2024-10-01",
MODEL_GPT_4O_AUDIO_PREVIEW = "gpt-4o-audio-preview", MODEL_GPT_4O_AUDIO_PREVIEW = "gpt-4o-audio-preview",
MODEL_GPT_4O_REALTIME_PREVIEW = "gpt-4o-realtime-preview", MODEL_GPT_4O_REALTIME_PREVIEW = "gpt-4o-realtime-preview",
MODEL_OMNI_MODERATION_LATEST = "omni-moderation-latest", MODEL_OMNI_MODERATION_LATEST = "omni-moderation-latest",
@ -74,6 +70,7 @@ export declare enum E_OPENAI_MODEL {
MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03 = "gpt-4o-realtime-preview-2025-06-03", MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03 = "gpt-4o-realtime-preview-2025-06-03",
MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03 = "gpt-4o-audio-preview-2025-06-03", MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03 = "gpt-4o-audio-preview-2025-06-03",
MODEL_O4_MINI_DEEP_RESEARCH = "o4-mini-deep-research", MODEL_O4_MINI_DEEP_RESEARCH = "o4-mini-deep-research",
MODEL_GPT_4O_TRANSCRIBE_DIARIZE = "gpt-4o-transcribe-diarize",
MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26 = "o4-mini-deep-research-2025-06-26", MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26 = "o4-mini-deep-research-2025-06-26",
MODEL_GPT_5_CHAT_LATEST = "gpt-5-chat-latest", MODEL_GPT_5_CHAT_LATEST = "gpt-5-chat-latest",
MODEL_GPT_5_2025_08_07 = "gpt-5-2025-08-07", MODEL_GPT_5_2025_08_07 = "gpt-5-2025-08-07",
@ -81,6 +78,37 @@ export declare enum E_OPENAI_MODEL {
MODEL_GPT_5_MINI_2025_08_07 = "gpt-5-mini-2025-08-07", MODEL_GPT_5_MINI_2025_08_07 = "gpt-5-mini-2025-08-07",
MODEL_GPT_5_MINI = "gpt-5-mini", MODEL_GPT_5_MINI = "gpt-5-mini",
MODEL_GPT_5_NANO_2025_08_07 = "gpt-5-nano-2025-08-07", MODEL_GPT_5_NANO_2025_08_07 = "gpt-5-nano-2025-08-07",
MODEL_GPT_5_NANO = "gpt-5-nano",
MODEL_GPT_AUDIO_2025_08_28 = "gpt-audio-2025-08-28",
MODEL_GPT_REALTIME = "gpt-realtime",
MODEL_GPT_REALTIME_2025_08_28 = "gpt-realtime-2025-08-28",
MODEL_GPT_AUDIO = "gpt-audio",
MODEL_GPT_5_CODEX = "gpt-5-codex",
MODEL_GPT_IMAGE_1_MINI = "gpt-image-1-mini",
MODEL_GPT_5_PRO_2025_10_06 = "gpt-5-pro-2025-10-06",
MODEL_GPT_5_PRO = "gpt-5-pro",
MODEL_GPT_AUDIO_MINI = "gpt-audio-mini",
MODEL_GPT_AUDIO_MINI_2025_10_06 = "gpt-audio-mini-2025-10-06",
MODEL_GPT_5_SEARCH_API = "gpt-5-search-api",
MODEL_GPT_REALTIME_MINI = "gpt-realtime-mini",
MODEL_GPT_REALTIME_MINI_2025_10_06 = "gpt-realtime-mini-2025-10-06",
MODEL_SORA_2 = "sora-2",
MODEL_SORA_2_PRO = "sora-2-pro",
MODEL_GPT_5_SEARCH_API_2025_10_14 = "gpt-5-search-api-2025-10-14",
MODEL_GPT_5_1_CHAT_LATEST = "gpt-5.1-chat-latest",
MODEL_GPT_5_1_2025_11_13 = "gpt-5.1-2025-11-13",
MODEL_GPT_5_1 = "gpt-5.1",
MODEL_GPT_5_1_CODEX = "gpt-5.1-codex",
MODEL_GPT_5_1_CODEX_MINI = "gpt-5.1-codex-mini",
MODEL_GPT_5_1_CODEX_MAX = "gpt-5.1-codex-max",
MODEL_GPT_IMAGE_1_5 = "gpt-image-1.5",
MODEL_GPT_5_2_2025_12_11 = "gpt-5.2-2025-12-11",
MODEL_GPT_5_2 = "gpt-5.2",
MODEL_GPT_5_2_PRO_2025_12_11 = "gpt-5.2-pro-2025-12-11",
MODEL_GPT_5_2_PRO = "gpt-5.2-pro",
MODEL_GPT_5_2_CHAT_LATEST = "gpt-5.2-chat-latest",
MODEL_GPT_4O_MINI_TRANSCRIBE_2025_12_15 = "gpt-4o-mini-transcribe-2025-12-15",
MODEL_GPT_4O_MINI_TRANSCRIBE_2025_03_20 = "gpt-4o-mini-transcribe-2025-03-20",
MODEL_GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k", MODEL_GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k",
MODEL_TTS_1 = "tts-1", MODEL_TTS_1 = "tts-1",
MODEL_WHISPER_1 = "whisper-1", MODEL_WHISPER_1 = "whisper-1",

View File

@ -3,11 +3,11 @@ export var E_OPENAI_MODEL;
E_OPENAI_MODEL["MODEL_GPT_4_0613"] = "gpt-4-0613"; E_OPENAI_MODEL["MODEL_GPT_4_0613"] = "gpt-4-0613";
E_OPENAI_MODEL["MODEL_GPT_4"] = "gpt-4"; E_OPENAI_MODEL["MODEL_GPT_4"] = "gpt-4";
E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO"] = "gpt-3.5-turbo"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO"] = "gpt-3.5-turbo";
E_OPENAI_MODEL["MODEL_GPT_AUDIO"] = "gpt-audio"; E_OPENAI_MODEL["MODEL_CHATGPT_IMAGE_LATEST"] = "chatgpt-image-latest";
E_OPENAI_MODEL["MODEL_GPT_5_NANO"] = "gpt-5-nano"; E_OPENAI_MODEL["MODEL_GPT_4O_MINI_TTS_2025_03_20"] = "gpt-4o-mini-tts-2025-03-20";
E_OPENAI_MODEL["MODEL_GPT_AUDIO_2025_08_28"] = "gpt-audio-2025-08-28"; E_OPENAI_MODEL["MODEL_GPT_4O_MINI_TTS_2025_12_15"] = "gpt-4o-mini-tts-2025-12-15";
E_OPENAI_MODEL["MODEL_GPT_REALTIME"] = "gpt-realtime"; E_OPENAI_MODEL["MODEL_GPT_REALTIME_MINI_2025_12_15"] = "gpt-realtime-mini-2025-12-15";
E_OPENAI_MODEL["MODEL_GPT_REALTIME_2025_08_28"] = "gpt-realtime-2025-08-28"; E_OPENAI_MODEL["MODEL_GPT_AUDIO_MINI_2025_12_15"] = "gpt-audio-mini-2025-12-15";
E_OPENAI_MODEL["MODEL_DAVINCI_002"] = "davinci-002"; E_OPENAI_MODEL["MODEL_DAVINCI_002"] = "davinci-002";
E_OPENAI_MODEL["MODEL_BABBAGE_002"] = "babbage-002"; E_OPENAI_MODEL["MODEL_BABBAGE_002"] = "babbage-002";
E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_INSTRUCT"] = "gpt-3.5-turbo-instruct"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_INSTRUCT"] = "gpt-3.5-turbo-instruct";
@ -32,10 +32,6 @@ export var E_OPENAI_MODEL;
E_OPENAI_MODEL["MODEL_GPT_4O_MINI"] = "gpt-4o-mini"; E_OPENAI_MODEL["MODEL_GPT_4O_MINI"] = "gpt-4o-mini";
E_OPENAI_MODEL["MODEL_GPT_4O_2024_08_06"] = "gpt-4o-2024-08-06"; E_OPENAI_MODEL["MODEL_GPT_4O_2024_08_06"] = "gpt-4o-2024-08-06";
E_OPENAI_MODEL["MODEL_CHATGPT_4O_LATEST"] = "chatgpt-4o-latest"; E_OPENAI_MODEL["MODEL_CHATGPT_4O_LATEST"] = "chatgpt-4o-latest";
E_OPENAI_MODEL["MODEL_O1_MINI_2024_09_12"] = "o1-mini-2024-09-12";
E_OPENAI_MODEL["MODEL_O1_MINI"] = "o1-mini";
E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2024_10_01"] = "gpt-4o-realtime-preview-2024-10-01";
E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW_2024_10_01"] = "gpt-4o-audio-preview-2024-10-01";
E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW"] = "gpt-4o-audio-preview"; E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW"] = "gpt-4o-audio-preview";
E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW"] = "gpt-4o-realtime-preview"; E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW"] = "gpt-4o-realtime-preview";
E_OPENAI_MODEL["MODEL_OMNI_MODERATION_LATEST"] = "omni-moderation-latest"; E_OPENAI_MODEL["MODEL_OMNI_MODERATION_LATEST"] = "omni-moderation-latest";
@ -75,6 +71,7 @@ export var E_OPENAI_MODEL;
E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03"] = "gpt-4o-realtime-preview-2025-06-03"; E_OPENAI_MODEL["MODEL_GPT_4O_REALTIME_PREVIEW_2025_06_03"] = "gpt-4o-realtime-preview-2025-06-03";
E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03"] = "gpt-4o-audio-preview-2025-06-03"; E_OPENAI_MODEL["MODEL_GPT_4O_AUDIO_PREVIEW_2025_06_03"] = "gpt-4o-audio-preview-2025-06-03";
E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH"] = "o4-mini-deep-research"; E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH"] = "o4-mini-deep-research";
E_OPENAI_MODEL["MODEL_GPT_4O_TRANSCRIBE_DIARIZE"] = "gpt-4o-transcribe-diarize";
E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26"] = "o4-mini-deep-research-2025-06-26"; E_OPENAI_MODEL["MODEL_O4_MINI_DEEP_RESEARCH_2025_06_26"] = "o4-mini-deep-research-2025-06-26";
E_OPENAI_MODEL["MODEL_GPT_5_CHAT_LATEST"] = "gpt-5-chat-latest"; E_OPENAI_MODEL["MODEL_GPT_5_CHAT_LATEST"] = "gpt-5-chat-latest";
E_OPENAI_MODEL["MODEL_GPT_5_2025_08_07"] = "gpt-5-2025-08-07"; E_OPENAI_MODEL["MODEL_GPT_5_2025_08_07"] = "gpt-5-2025-08-07";
@ -82,9 +79,40 @@ export var E_OPENAI_MODEL;
E_OPENAI_MODEL["MODEL_GPT_5_MINI_2025_08_07"] = "gpt-5-mini-2025-08-07"; E_OPENAI_MODEL["MODEL_GPT_5_MINI_2025_08_07"] = "gpt-5-mini-2025-08-07";
E_OPENAI_MODEL["MODEL_GPT_5_MINI"] = "gpt-5-mini"; E_OPENAI_MODEL["MODEL_GPT_5_MINI"] = "gpt-5-mini";
E_OPENAI_MODEL["MODEL_GPT_5_NANO_2025_08_07"] = "gpt-5-nano-2025-08-07"; E_OPENAI_MODEL["MODEL_GPT_5_NANO_2025_08_07"] = "gpt-5-nano-2025-08-07";
E_OPENAI_MODEL["MODEL_GPT_5_NANO"] = "gpt-5-nano";
E_OPENAI_MODEL["MODEL_GPT_AUDIO_2025_08_28"] = "gpt-audio-2025-08-28";
E_OPENAI_MODEL["MODEL_GPT_REALTIME"] = "gpt-realtime";
E_OPENAI_MODEL["MODEL_GPT_REALTIME_2025_08_28"] = "gpt-realtime-2025-08-28";
E_OPENAI_MODEL["MODEL_GPT_AUDIO"] = "gpt-audio";
E_OPENAI_MODEL["MODEL_GPT_5_CODEX"] = "gpt-5-codex";
E_OPENAI_MODEL["MODEL_GPT_IMAGE_1_MINI"] = "gpt-image-1-mini";
E_OPENAI_MODEL["MODEL_GPT_5_PRO_2025_10_06"] = "gpt-5-pro-2025-10-06";
E_OPENAI_MODEL["MODEL_GPT_5_PRO"] = "gpt-5-pro";
E_OPENAI_MODEL["MODEL_GPT_AUDIO_MINI"] = "gpt-audio-mini";
E_OPENAI_MODEL["MODEL_GPT_AUDIO_MINI_2025_10_06"] = "gpt-audio-mini-2025-10-06";
E_OPENAI_MODEL["MODEL_GPT_5_SEARCH_API"] = "gpt-5-search-api";
E_OPENAI_MODEL["MODEL_GPT_REALTIME_MINI"] = "gpt-realtime-mini";
E_OPENAI_MODEL["MODEL_GPT_REALTIME_MINI_2025_10_06"] = "gpt-realtime-mini-2025-10-06";
E_OPENAI_MODEL["MODEL_SORA_2"] = "sora-2";
E_OPENAI_MODEL["MODEL_SORA_2_PRO"] = "sora-2-pro";
E_OPENAI_MODEL["MODEL_GPT_5_SEARCH_API_2025_10_14"] = "gpt-5-search-api-2025-10-14";
E_OPENAI_MODEL["MODEL_GPT_5_1_CHAT_LATEST"] = "gpt-5.1-chat-latest";
E_OPENAI_MODEL["MODEL_GPT_5_1_2025_11_13"] = "gpt-5.1-2025-11-13";
E_OPENAI_MODEL["MODEL_GPT_5_1"] = "gpt-5.1";
E_OPENAI_MODEL["MODEL_GPT_5_1_CODEX"] = "gpt-5.1-codex";
E_OPENAI_MODEL["MODEL_GPT_5_1_CODEX_MINI"] = "gpt-5.1-codex-mini";
E_OPENAI_MODEL["MODEL_GPT_5_1_CODEX_MAX"] = "gpt-5.1-codex-max";
E_OPENAI_MODEL["MODEL_GPT_IMAGE_1_5"] = "gpt-image-1.5";
E_OPENAI_MODEL["MODEL_GPT_5_2_2025_12_11"] = "gpt-5.2-2025-12-11";
E_OPENAI_MODEL["MODEL_GPT_5_2"] = "gpt-5.2";
E_OPENAI_MODEL["MODEL_GPT_5_2_PRO_2025_12_11"] = "gpt-5.2-pro-2025-12-11";
E_OPENAI_MODEL["MODEL_GPT_5_2_PRO"] = "gpt-5.2-pro";
E_OPENAI_MODEL["MODEL_GPT_5_2_CHAT_LATEST"] = "gpt-5.2-chat-latest";
E_OPENAI_MODEL["MODEL_GPT_4O_MINI_TRANSCRIBE_2025_12_15"] = "gpt-4o-mini-transcribe-2025-12-15";
E_OPENAI_MODEL["MODEL_GPT_4O_MINI_TRANSCRIBE_2025_03_20"] = "gpt-4o-mini-transcribe-2025-03-20";
E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_16K"] = "gpt-3.5-turbo-16k"; E_OPENAI_MODEL["MODEL_GPT_3_5_TURBO_16K"] = "gpt-3.5-turbo-16k";
E_OPENAI_MODEL["MODEL_TTS_1"] = "tts-1"; E_OPENAI_MODEL["MODEL_TTS_1"] = "tts-1";
E_OPENAI_MODEL["MODEL_WHISPER_1"] = "whisper-1"; E_OPENAI_MODEL["MODEL_WHISPER_1"] = "whisper-1";
E_OPENAI_MODEL["MODEL_TEXT_EMBEDDING_ADA_002"] = "text-embedding-ada-002"; E_OPENAI_MODEL["MODEL_TEXT_EMBEDDING_ADA_002"] = "text-embedding-ada-002";
})(E_OPENAI_MODEL || (E_OPENAI_MODEL = {})); })(E_OPENAI_MODEL || (E_OPENAI_MODEL = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbmFpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQXVGWDtBQXZGRCxXQUFZLGNBQWM7SUFDeEIsaURBQStCLENBQUE7SUFDL0IsdUNBQXFCLENBQUE7SUFDckIsdURBQXFDLENBQUE7SUFDckMsK0NBQTZCLENBQUE7SUFDN0IsaURBQStCLENBQUE7SUFDL0IscUVBQW1ELENBQUE7SUFDbkQscURBQW1DLENBQUE7SUFDbkMsMkVBQXlELENBQUE7SUFDekQsbURBQWlDLENBQUE7SUFDakMsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQsbUZBQWlFLENBQUE7SUFDakUsNkNBQTJCLENBQUE7SUFDM0IsNkNBQTJCLENBQUE7SUFDM0IsaUVBQStDLENBQUE7SUFDL0MsaUVBQStDLENBQUE7SUFDL0MsNkNBQTJCLENBQUE7SUFDM0IsaURBQStCLENBQUE7SUFDL0IsdURBQXFDLENBQUE7SUFDckMseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsaUVBQStDLENBQUE7SUFDL0MsbUVBQWlELENBQUE7SUFDakQsaUVBQStDLENBQUE7SUFDL0MsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQseUNBQXVCLENBQUE7SUFDdkIsK0RBQTZDLENBQUE7SUFDN0MseUVBQXVELENBQUE7SUFDdkQsbURBQWlDLENBQUE7SUFDakMsK0RBQTZDLENBQUE7SUFDN0MsK0RBQTZDLENBQUE7SUFDN0MsaUVBQStDLENBQUE7SUFDL0MsMkNBQXlCLENBQUE7SUFDekIsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUscUVBQW1ELENBQUE7SUFDbkQsMkVBQXlELENBQUE7SUFDekQseUVBQXVELENBQUE7SUFDdkQsaUZBQStELENBQUE7SUFDL0QsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsMkdBQXlGLENBQUE7SUFDekYscUdBQW1GLENBQUE7SUFDbkYsdURBQXFDLENBQUE7SUFDckMsaUNBQWUsQ0FBQTtJQUNmLHFGQUFtRSxDQUFBO0lBQ25FLCtFQUE2RCxDQUFBO0lBQzdELDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLCtEQUE2QyxDQUFBO0lBQzdDLDZGQUEyRSxDQUFBO0lBQzNFLHVFQUFxRCxDQUFBO0lBQ3JELHVHQUFxRixDQUFBO0lBQ3JGLGlGQUErRCxDQUFBO0lBQy9ELCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELCtEQUE2QyxDQUFBO0lBQzdDLHlDQUF1QixDQUFBO0lBQ3ZCLDJEQUF5QyxDQUFBO0lBQ3pDLHVEQUFxQyxDQUFBO0lBQ3JDLGlFQUErQyxDQUFBO0lBQy9DLGlDQUFlLENBQUE7SUFDZiwyQ0FBeUIsQ0FBQTtJQUN6QixpRUFBK0MsQ0FBQTtJQUMvQywyQ0FBeUIsQ0FBQTtJQUN6QiwyRUFBeUQsQ0FBQTtJQUN6RCxxREFBbUMsQ0FBQTtJQUNuQywyRUFBeUQsQ0FBQTtJQUN6RCxxREFBbUMsQ0FBQTtJQUNuQyxtREFBaUMsQ0FBQTtJQUNqQywrREFBNkMsQ0FBQTtJQUM3QyxpR0FBK0UsQ0FBQTtJQUMvRSwyRkFBeUUsQ0FBQTtJQUN6RSx1RUFBcUQsQ0FBQTtJQUNyRCw2RkFBMkUsQ0FBQTtJQUMzRSwrREFBNkMsQ0FBQTtJQUM3Qyw2REFBMkMsQ0FBQTtJQUMzQyx1Q0FBcUIsQ0FBQTtJQUNyQix1RUFBcUQsQ0FBQTtJQUNyRCxpREFBK0IsQ0FBQTtJQUMvQix1RUFBcUQsQ0FBQTtJQUNyRCwrREFBNkMsQ0FBQTtJQUM3Qyx1Q0FBcUIsQ0FBQTtJQUNyQiwrQ0FBNkIsQ0FBQTtJQUM3Qix5RUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBdkZXLGNBQWMsS0FBZCxjQUFjLFFBdUZ6QiJ9 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbmFpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxjQW1IWDtBQW5IRCxXQUFZLGNBQWM7SUFDeEIsaURBQStCLENBQUE7SUFDL0IsdUNBQXFCLENBQUE7SUFDckIsdURBQXFDLENBQUE7SUFDckMscUVBQW1ELENBQUE7SUFDbkQsaUZBQStELENBQUE7SUFDL0QsaUZBQStELENBQUE7SUFDL0QscUZBQW1FLENBQUE7SUFDbkUsK0VBQTZELENBQUE7SUFDN0QsbURBQWlDLENBQUE7SUFDakMsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQsbUZBQWlFLENBQUE7SUFDakUsNkNBQTJCLENBQUE7SUFDM0IsNkNBQTJCLENBQUE7SUFDM0IsaUVBQStDLENBQUE7SUFDL0MsaUVBQStDLENBQUE7SUFDL0MsNkNBQTJCLENBQUE7SUFDM0IsaURBQStCLENBQUE7SUFDL0IsdURBQXFDLENBQUE7SUFDckMseUVBQXVELENBQUE7SUFDdkQseUVBQXVELENBQUE7SUFDdkQsaUVBQStDLENBQUE7SUFDL0MsbUVBQWlELENBQUE7SUFDakQsaUVBQStDLENBQUE7SUFDL0MsbURBQWlDLENBQUE7SUFDakMseUVBQXVELENBQUE7SUFDdkQseUNBQXVCLENBQUE7SUFDdkIsK0RBQTZDLENBQUE7SUFDN0MseUVBQXVELENBQUE7SUFDdkQsbURBQWlDLENBQUE7SUFDakMsK0RBQTZDLENBQUE7SUFDN0MsK0RBQTZDLENBQUE7SUFDN0MscUVBQW1ELENBQUE7SUFDbkQsMkVBQXlELENBQUE7SUFDekQseUVBQXVELENBQUE7SUFDdkQsaUZBQStELENBQUE7SUFDL0QsaUdBQStFLENBQUE7SUFDL0UsMkZBQXlFLENBQUE7SUFDekUsMkdBQXlGLENBQUE7SUFDekYscUdBQW1GLENBQUE7SUFDbkYsdURBQXFDLENBQUE7SUFDckMsaUNBQWUsQ0FBQTtJQUNmLHFGQUFtRSxDQUFBO0lBQ25FLCtFQUE2RCxDQUFBO0lBQzdELDJDQUF5QixDQUFBO0lBQ3pCLGlFQUErQyxDQUFBO0lBQy9DLCtEQUE2QyxDQUFBO0lBQzdDLDZGQUEyRSxDQUFBO0lBQzNFLHVFQUFxRCxDQUFBO0lBQ3JELHVHQUFxRixDQUFBO0lBQ3JGLGlGQUErRCxDQUFBO0lBQy9ELCtEQUE2QyxDQUFBO0lBQzdDLHlFQUF1RCxDQUFBO0lBQ3ZELCtEQUE2QyxDQUFBO0lBQzdDLHlDQUF1QixDQUFBO0lBQ3ZCLDJEQUF5QyxDQUFBO0lBQ3pDLHVEQUFxQyxDQUFBO0lBQ3JDLGlFQUErQyxDQUFBO0lBQy9DLGlDQUFlLENBQUE7SUFDZiwyQ0FBeUIsQ0FBQTtJQUN6QixpRUFBK0MsQ0FBQTtJQUMvQywyQ0FBeUIsQ0FBQTtJQUN6QiwyRUFBeUQsQ0FBQTtJQUN6RCxxREFBbUMsQ0FBQTtJQUNuQywyRUFBeUQsQ0FBQTtJQUN6RCxxREFBbUMsQ0FBQTtJQUNuQyxtREFBaUMsQ0FBQTtJQUNqQywrREFBNkMsQ0FBQTtJQUM3QyxpR0FBK0UsQ0FBQTtJQUMvRSwyRkFBeUUsQ0FBQTtJQUN6RSx1RUFBcUQsQ0FBQTtJQUNyRCwrRUFBNkQsQ0FBQTtJQUM3RCw2RkFBMkUsQ0FBQTtJQUMzRSwrREFBNkMsQ0FBQTtJQUM3Qyw2REFBMkMsQ0FBQTtJQUMzQyx1Q0FBcUIsQ0FBQTtJQUNyQix1RUFBcUQsQ0FBQTtJQUNyRCxpREFBK0IsQ0FBQTtJQUMvQix1RUFBcUQsQ0FBQTtJQUNyRCxpREFBK0IsQ0FBQTtJQUMvQixxRUFBbUQsQ0FBQTtJQUNuRCxxREFBbUMsQ0FBQTtJQUNuQywyRUFBeUQsQ0FBQTtJQUN6RCwrQ0FBNkIsQ0FBQTtJQUM3QixtREFBaUMsQ0FBQTtJQUNqQyw2REFBMkMsQ0FBQTtJQUMzQyxxRUFBbUQsQ0FBQTtJQUNuRCwrQ0FBNkIsQ0FBQTtJQUM3Qix5REFBdUMsQ0FBQTtJQUN2QywrRUFBNkQsQ0FBQTtJQUM3RCw2REFBMkMsQ0FBQTtJQUMzQywrREFBNkMsQ0FBQTtJQUM3QyxxRkFBbUUsQ0FBQTtJQUNuRSx5Q0FBdUIsQ0FBQTtJQUN2QixpREFBK0IsQ0FBQTtJQUMvQixtRkFBaUUsQ0FBQTtJQUNqRSxtRUFBaUQsQ0FBQTtJQUNqRCxpRUFBK0MsQ0FBQTtJQUMvQywyQ0FBeUIsQ0FBQTtJQUN6Qix1REFBcUMsQ0FBQTtJQUNyQyxpRUFBK0MsQ0FBQTtJQUMvQywrREFBNkMsQ0FBQTtJQUM3Qyx1REFBcUMsQ0FBQTtJQUNyQyxpRUFBK0MsQ0FBQTtJQUMvQywyQ0FBeUIsQ0FBQTtJQUN6Qix5RUFBdUQsQ0FBQTtJQUN2RCxtREFBaUMsQ0FBQTtJQUNqQyxtRUFBaUQsQ0FBQTtJQUNqRCwrRkFBNkUsQ0FBQTtJQUM3RSwrRkFBNkUsQ0FBQTtJQUM3RSwrREFBNkMsQ0FBQTtJQUM3Qyx1Q0FBcUIsQ0FBQTtJQUNyQiwrQ0FBNkIsQ0FBQTtJQUM3Qix5RUFBdUQsQ0FBQTtBQUN6RCxDQUFDLEVBbkhXLGNBQWMsS0FBZCxjQUFjLFFBbUh6QiJ9

View File

@ -1,7 +1,16 @@
export declare enum E_OPENROUTER_MODEL_FREE { export declare enum E_OPENROUTER_MODEL_FREE {
MODEL_FREE_X_AI_GROK_4_FAST_FREE = "x-ai/grok-4-fast:free", MODEL_FREE_ALLENAI_OLMO_3_1_32B_THINK_FREE = "allenai/olmo-3.1-32b-think:free",
MODEL_FREE_XIAOMI_MIMO_V2_FLASH_FREE = "xiaomi/mimo-v2-flash:free",
MODEL_FREE_NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = "nvidia/nemotron-3-nano-30b-a3b:free",
MODEL_FREE_MISTRALAI_DEVSTRAL_2512_FREE = "mistralai/devstral-2512:free",
MODEL_FREE_NEX_AGI_DEEPSEEK_V3_1_NEX_N1_FREE = "nex-agi/deepseek-v3.1-nex-n1:free",
MODEL_FREE_ARCEE_AI_TRINITY_MINI_FREE = "arcee-ai/trinity-mini:free",
MODEL_FREE_TNGTECH_TNG_R1T_CHIMERA_FREE = "tngtech/tng-r1t-chimera:free",
MODEL_FREE_ALLENAI_OLMO_3_32B_THINK_FREE = "allenai/olmo-3-32b-think:free",
MODEL_FREE_KWAIPILOT_KAT_CODER_PRO_FREE = "kwaipilot/kat-coder-pro:free",
MODEL_FREE_NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = "nvidia/nemotron-nano-12b-v2-vl:free",
MODEL_FREE_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B_FREE = "alibaba/tongyi-deepresearch-30b-a3b:free",
MODEL_FREE_NVIDIA_NEMOTRON_NANO_9B_V2_FREE = "nvidia/nemotron-nano-9b-v2:free", MODEL_FREE_NVIDIA_NEMOTRON_NANO_9B_V2_FREE = "nvidia/nemotron-nano-9b-v2:free",
MODEL_FREE_DEEPSEEK_DEEPSEEK_CHAT_V3_1_FREE = "deepseek/deepseek-chat-v3.1:free",
MODEL_FREE_OPENAI_GPT_OSS_120B_FREE = "openai/gpt-oss-120b:free", MODEL_FREE_OPENAI_GPT_OSS_120B_FREE = "openai/gpt-oss-120b:free",
MODEL_FREE_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free", MODEL_FREE_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free",
MODEL_FREE_Z_AI_GLM_4_5_AIR_FREE = "z-ai/glm-4.5-air:free", MODEL_FREE_Z_AI_GLM_4_5_AIR_FREE = "z-ai/glm-4.5-air:free",
@ -9,49 +18,20 @@ export declare enum E_OPENROUTER_MODEL_FREE {
MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free", MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free",
MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
MODEL_FREE_GOOGLE_GEMMA_3N_E2B_IT_FREE = "google/gemma-3n-e2b-it:free", MODEL_FREE_GOOGLE_GEMMA_3N_E2B_IT_FREE = "google/gemma-3n-e2b-it:free",
MODEL_FREE_TENCENT_HUNYUAN_A13B_INSTRUCT_FREE = "tencent/hunyuan-a13b-instruct:free",
MODEL_FREE_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE = "tngtech/deepseek-r1t2-chimera:free", MODEL_FREE_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE = "tngtech/deepseek-r1t2-chimera:free",
MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.2-24b-instruct:free",
MODEL_FREE_MOONSHOTAI_KIMI_DEV_72B_FREE = "moonshotai/kimi-dev-72b:free",
MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_QWEN3_8B_FREE = "deepseek/deepseek-r1-0528-qwen3-8b:free",
MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_FREE = "deepseek/deepseek-r1-0528:free", MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_FREE = "deepseek/deepseek-r1-0528:free",
MODEL_FREE_MISTRALAI_DEVSTRAL_SMALL_2505_FREE = "mistralai/devstral-small-2505:free",
MODEL_FREE_GOOGLE_GEMMA_3N_E4B_IT_FREE = "google/gemma-3n-e4b-it:free", MODEL_FREE_GOOGLE_GEMMA_3N_E4B_IT_FREE = "google/gemma-3n-e4b-it:free",
MODEL_FREE_META_LLAMA_LLAMA_3_3_8B_INSTRUCT_FREE = "meta-llama/llama-3.3-8b-instruct:free",
MODEL_FREE_QWEN_QWEN3_4B_FREE = "qwen/qwen3-4b:free", MODEL_FREE_QWEN_QWEN3_4B_FREE = "qwen/qwen3-4b:free",
MODEL_FREE_QWEN_QWEN3_30B_A3B_FREE = "qwen/qwen3-30b-a3b:free",
MODEL_FREE_QWEN_QWEN3_8B_FREE = "qwen/qwen3-8b:free",
MODEL_FREE_QWEN_QWEN3_14B_FREE = "qwen/qwen3-14b:free",
MODEL_FREE_QWEN_QWEN3_235B_A22B_FREE = "qwen/qwen3-235b-a22b:free",
MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE = "tngtech/deepseek-r1t-chimera:free", MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE = "tngtech/deepseek-r1t-chimera:free",
MODEL_FREE_MICROSOFT_MAI_DS_R1_FREE = "microsoft/mai-ds-r1:free",
MODEL_FREE_SHISA_AI_SHISA_V2_LLAMA3_3_70B_FREE = "shisa-ai/shisa-v2-llama3.3-70b:free",
MODEL_FREE_ARLIAI_QWQ_32B_ARLIAI_RPR_V1_FREE = "arliai/qwq-32b-arliai-rpr-v1:free",
MODEL_FREE_AGENTICA_ORG_DEEPCODER_14B_PREVIEW_FREE = "agentica-org/deepcoder-14b-preview:free",
MODEL_FREE_MOONSHOTAI_KIMI_VL_A3B_THINKING_FREE = "moonshotai/kimi-vl-a3b-thinking:free",
MODEL_FREE_META_LLAMA_LLAMA_4_MAVERICK_FREE = "meta-llama/llama-4-maverick:free",
MODEL_FREE_META_LLAMA_LLAMA_4_SCOUT_FREE = "meta-llama/llama-4-scout:free",
MODEL_FREE_QWEN_QWEN2_5_VL_32B_INSTRUCT_FREE = "qwen/qwen2.5-vl-32b-instruct:free",
MODEL_FREE_DEEPSEEK_DEEPSEEK_CHAT_V3_0324_FREE = "deepseek/deepseek-chat-v3-0324:free",
MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.1-24b-instruct:free", MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.1-24b-instruct:free",
MODEL_FREE_GOOGLE_GEMMA_3_4B_IT_FREE = "google/gemma-3-4b-it:free", MODEL_FREE_GOOGLE_GEMMA_3_4B_IT_FREE = "google/gemma-3-4b-it:free",
MODEL_FREE_GOOGLE_GEMMA_3_12B_IT_FREE = "google/gemma-3-12b-it:free", MODEL_FREE_GOOGLE_GEMMA_3_12B_IT_FREE = "google/gemma-3-12b-it:free",
MODEL_FREE_GOOGLE_GEMMA_3_27B_IT_FREE = "google/gemma-3-27b-it:free", MODEL_FREE_GOOGLE_GEMMA_3_27B_IT_FREE = "google/gemma-3-27b-it:free",
MODEL_FREE_QWEN_QWQ_32B_FREE = "qwen/qwq-32b:free",
MODEL_FREE_NOUSRESEARCH_DEEPHERMES_3_LLAMA_3_8B_PREVIEW_FREE = "nousresearch/deephermes-3-llama-3-8b-preview:free",
MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B_FREE = "cognitivecomputations/dolphin3.0-r1-mistral-24b:free",
MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B_FREE = "cognitivecomputations/dolphin3.0-mistral-24b:free",
MODEL_FREE_QWEN_QWEN2_5_VL_72B_INSTRUCT_FREE = "qwen/qwen2.5-vl-72b-instruct:free",
MODEL_FREE_MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501_FREE = "mistralai/mistral-small-24b-instruct-2501:free",
MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B_FREE = "deepseek/deepseek-r1-distill-llama-70b:free",
MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_FREE = "deepseek/deepseek-r1:free",
MODEL_FREE_GOOGLE_GEMINI_2_0_FLASH_EXP_FREE = "google/gemini-2.0-flash-exp:free", MODEL_FREE_GOOGLE_GEMINI_2_0_FLASH_EXP_FREE = "google/gemini-2.0-flash-exp:free",
MODEL_FREE_META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = "meta-llama/llama-3.3-70b-instruct:free", MODEL_FREE_META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = "meta-llama/llama-3.3-70b-instruct:free",
MODEL_FREE_QWEN_QWEN_2_5_CODER_32B_INSTRUCT_FREE = "qwen/qwen-2.5-coder-32b-instruct:free",
MODEL_FREE_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free", MODEL_FREE_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free",
MODEL_FREE_QWEN_QWEN_2_5_72B_INSTRUCT_FREE = "qwen/qwen-2.5-72b-instruct:free", MODEL_FREE_QWEN_QWEN_2_5_VL_7B_INSTRUCT_FREE = "qwen/qwen-2.5-vl-7b-instruct:free",
MODEL_FREE_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = "nousresearch/hermes-3-llama-3.1-405b:free",
MODEL_FREE_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free", MODEL_FREE_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free",
MODEL_FREE_MISTRALAI_MISTRAL_NEMO_FREE = "mistralai/mistral-nemo:free",
MODEL_FREE_GOOGLE_GEMMA_2_9B_IT_FREE = "google/gemma-2-9b-it:free",
MODEL_FREE_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE = "mistralai/mistral-7b-instruct:free" MODEL_FREE_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE = "mistralai/mistral-7b-instruct:free"
} }

View File

@ -1,8 +1,17 @@
export var E_OPENROUTER_MODEL_FREE; export var E_OPENROUTER_MODEL_FREE;
(function (E_OPENROUTER_MODEL_FREE) { (function (E_OPENROUTER_MODEL_FREE) {
E_OPENROUTER_MODEL_FREE["MODEL_FREE_X_AI_GROK_4_FAST_FREE"] = "x-ai/grok-4-fast:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_ALLENAI_OLMO_3_1_32B_THINK_FREE"] = "allenai/olmo-3.1-32b-think:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_XIAOMI_MIMO_V2_FLASH_FREE"] = "xiaomi/mimo-v2-flash:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE"] = "nvidia/nemotron-3-nano-30b-a3b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_DEVSTRAL_2512_FREE"] = "mistralai/devstral-2512:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_NEX_AGI_DEEPSEEK_V3_1_NEX_N1_FREE"] = "nex-agi/deepseek-v3.1-nex-n1:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_ARCEE_AI_TRINITY_MINI_FREE"] = "arcee-ai/trinity-mini:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_TNGTECH_TNG_R1T_CHIMERA_FREE"] = "tngtech/tng-r1t-chimera:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_ALLENAI_OLMO_3_32B_THINK_FREE"] = "allenai/olmo-3-32b-think:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_KWAIPILOT_KAT_CODER_PRO_FREE"] = "kwaipilot/kat-coder-pro:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE"] = "nvidia/nemotron-nano-12b-v2-vl:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B_FREE"] = "alibaba/tongyi-deepresearch-30b-a3b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_NVIDIA_NEMOTRON_NANO_9B_V2_FREE"] = "nvidia/nemotron-nano-9b-v2:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_NVIDIA_NEMOTRON_NANO_9B_V2_FREE"] = "nvidia/nemotron-nano-9b-v2:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_CHAT_V3_1_FREE"] = "deepseek/deepseek-chat-v3.1:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_OPENAI_GPT_OSS_120B_FREE"] = "openai/gpt-oss-120b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_OPENAI_GPT_OSS_120B_FREE"] = "openai/gpt-oss-120b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_OPENAI_GPT_OSS_20B_FREE"] = "openai/gpt-oss-20b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_OPENAI_GPT_OSS_20B_FREE"] = "openai/gpt-oss-20b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_Z_AI_GLM_4_5_AIR_FREE"] = "z-ai/glm-4.5-air:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_Z_AI_GLM_4_5_AIR_FREE"] = "z-ai/glm-4.5-air:free";
@ -10,50 +19,21 @@ export var E_OPENROUTER_MODEL_FREE;
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE"] = "moonshotai/kimi-k2:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE"] = "moonshotai/kimi-k2:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE"] = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE"] = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3N_E2B_IT_FREE"] = "google/gemma-3n-e2b-it:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3N_E2B_IT_FREE"] = "google/gemma-3n-e2b-it:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_TENCENT_HUNYUAN_A13B_INSTRUCT_FREE"] = "tencent/hunyuan-a13b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE"] = "tngtech/deepseek-r1t2-chimera:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE"] = "tngtech/deepseek-r1t2-chimera:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT_FREE"] = "mistralai/mistral-small-3.2-24b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MOONSHOTAI_KIMI_DEV_72B_FREE"] = "moonshotai/kimi-dev-72b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_QWEN3_8B_FREE"] = "deepseek/deepseek-r1-0528-qwen3-8b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_FREE"] = "deepseek/deepseek-r1-0528:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_FREE"] = "deepseek/deepseek-r1-0528:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_DEVSTRAL_SMALL_2505_FREE"] = "mistralai/devstral-small-2505:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3N_E4B_IT_FREE"] = "google/gemma-3n-e4b-it:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3N_E4B_IT_FREE"] = "google/gemma-3n-e4b-it:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_3_8B_INSTRUCT_FREE"] = "meta-llama/llama-3.3-8b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_4B_FREE"] = "qwen/qwen3-4b:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_4B_FREE"] = "qwen/qwen3-4b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_30B_A3B_FREE"] = "qwen/qwen3-30b-a3b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_8B_FREE"] = "qwen/qwen3-8b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_14B_FREE"] = "qwen/qwen3-14b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN3_235B_A22B_FREE"] = "qwen/qwen3-235b-a22b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE"] = "tngtech/deepseek-r1t-chimera:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE"] = "tngtech/deepseek-r1t-chimera:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MICROSOFT_MAI_DS_R1_FREE"] = "microsoft/mai-ds-r1:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_SHISA_AI_SHISA_V2_LLAMA3_3_70B_FREE"] = "shisa-ai/shisa-v2-llama3.3-70b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_ARLIAI_QWQ_32B_ARLIAI_RPR_V1_FREE"] = "arliai/qwq-32b-arliai-rpr-v1:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_AGENTICA_ORG_DEEPCODER_14B_PREVIEW_FREE"] = "agentica-org/deepcoder-14b-preview:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MOONSHOTAI_KIMI_VL_A3B_THINKING_FREE"] = "moonshotai/kimi-vl-a3b-thinking:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_4_MAVERICK_FREE"] = "meta-llama/llama-4-maverick:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_4_SCOUT_FREE"] = "meta-llama/llama-4-scout:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN2_5_VL_32B_INSTRUCT_FREE"] = "qwen/qwen2.5-vl-32b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_CHAT_V3_0324_FREE"] = "deepseek/deepseek-chat-v3-0324:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT_FREE"] = "mistralai/mistral-small-3.1-24b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT_FREE"] = "mistralai/mistral-small-3.1-24b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3_4B_IT_FREE"] = "google/gemma-3-4b-it:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3_4B_IT_FREE"] = "google/gemma-3-4b-it:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3_12B_IT_FREE"] = "google/gemma-3-12b-it:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3_12B_IT_FREE"] = "google/gemma-3-12b-it:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3_27B_IT_FREE"] = "google/gemma-3-27b-it:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_3_27B_IT_FREE"] = "google/gemma-3-27b-it:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWQ_32B_FREE"] = "qwen/qwq-32b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_NOUSRESEARCH_DEEPHERMES_3_LLAMA_3_8B_PREVIEW_FREE"] = "nousresearch/deephermes-3-llama-3-8b-preview:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B_FREE"] = "cognitivecomputations/dolphin3.0-r1-mistral-24b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B_FREE"] = "cognitivecomputations/dolphin3.0-mistral-24b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN2_5_VL_72B_INSTRUCT_FREE"] = "qwen/qwen2.5-vl-72b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501_FREE"] = "mistralai/mistral-small-24b-instruct-2501:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B_FREE"] = "deepseek/deepseek-r1-distill-llama-70b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_FREE"] = "deepseek/deepseek-r1:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMINI_2_0_FLASH_EXP_FREE"] = "google/gemini-2.0-flash-exp:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMINI_2_0_FLASH_EXP_FREE"] = "google/gemini-2.0-flash-exp:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE"] = "meta-llama/llama-3.3-70b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE"] = "meta-llama/llama-3.3-70b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN_2_5_CODER_32B_INSTRUCT_FREE"] = "qwen/qwen-2.5-coder-32b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE"] = "meta-llama/llama-3.2-3b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE"] = "meta-llama/llama-3.2-3b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN_2_5_72B_INSTRUCT_FREE"] = "qwen/qwen-2.5-72b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_QWEN_QWEN_2_5_VL_7B_INSTRUCT_FREE"] = "qwen/qwen-2.5-vl-7b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE"] = "nousresearch/hermes-3-llama-3.1-405b:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE"] = "meta-llama/llama-3.1-405b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE"] = "meta-llama/llama-3.1-405b-instruct:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_NEMO_FREE"] = "mistralai/mistral-nemo:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_GOOGLE_GEMMA_2_9B_IT_FREE"] = "google/gemma-2-9b-it:free";
E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE"] = "mistralai/mistral-7b-instruct:free"; E_OPENROUTER_MODEL_FREE["MODEL_FREE_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE"] = "mistralai/mistral-7b-instruct:free";
})(E_OPENROUTER_MODEL_FREE || (E_OPENROUTER_MODEL_FREE = {})); })(E_OPENROUTER_MODEL_FREE || (E_OPENROUTER_MODEL_FREE = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMtZnJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbnJvdXRlci1tb2RlbHMtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkF3RFg7QUF4REQsV0FBWSx1QkFBdUI7SUFDakMscUZBQTBELENBQUE7SUFDMUQseUdBQThFLENBQUE7SUFDOUUsMkdBQWdGLENBQUE7SUFDaEYsMkZBQWdFLENBQUE7SUFDaEUseUZBQThELENBQUE7SUFDOUQscUZBQTBELENBQUE7SUFDMUQscUZBQTBELENBQUE7SUFDMUQseUZBQThELENBQUE7SUFDOUQscUtBQTBJLENBQUE7SUFDMUksaUdBQXNFLENBQUE7SUFDdEUsK0dBQW9GLENBQUE7SUFDcEYsK0dBQW9GLENBQUE7SUFDcEYscUlBQTBHLENBQUE7SUFDMUcsbUdBQXdFLENBQUE7SUFDeEUseUhBQThGLENBQUE7SUFDOUYsdUdBQTRFLENBQUE7SUFDNUUsK0dBQW9GLENBQUE7SUFDcEYsaUdBQXNFLENBQUE7SUFDdEUscUhBQTBGLENBQUE7SUFDMUYsK0VBQW9ELENBQUE7SUFDcEQseUZBQThELENBQUE7SUFDOUQsK0VBQW9ELENBQUE7SUFDcEQsaUZBQXNELENBQUE7SUFDdEQsNkZBQWtFLENBQUE7SUFDbEUsNkdBQWtGLENBQUE7SUFDbEYsMkZBQWdFLENBQUE7SUFDaEUsaUhBQXNGLENBQUE7SUFDdEYsNkdBQWtGLENBQUE7SUFDbEYseUhBQThGLENBQUE7SUFDOUYsbUhBQXdGLENBQUE7SUFDeEYsMkdBQWdGLENBQUE7SUFDaEYscUdBQTBFLENBQUE7SUFDMUUsNkdBQWtGLENBQUE7SUFDbEYsaUhBQXNGLENBQUE7SUFDdEYscUlBQTBHLENBQUE7SUFDMUcsNkZBQWtFLENBQUE7SUFDbEUsK0ZBQW9FLENBQUE7SUFDcEUsK0ZBQW9FLENBQUE7SUFDcEUsNkVBQWtELENBQUE7SUFDbEQsNklBQWtILENBQUE7SUFDbEgsbUpBQXdILENBQUE7SUFDeEgsNklBQWtILENBQUE7SUFDbEgsNkdBQWtGLENBQUE7SUFDbEYsdUlBQTRHLENBQUE7SUFDNUcsaUlBQXNHLENBQUE7SUFDdEcsNkZBQWtFLENBQUE7SUFDbEUsMkdBQWdGLENBQUE7SUFDaEYsdUhBQTRGLENBQUE7SUFDNUYscUhBQTBGLENBQUE7SUFDMUYscUhBQTBGLENBQUE7SUFDMUYseUdBQThFLENBQUE7SUFDOUUseUhBQThGLENBQUE7SUFDOUYsaUdBQXNFLENBQUE7SUFDdEUsNkZBQWtFLENBQUE7SUFDbEUsK0dBQW9GLENBQUE7QUFDdEYsQ0FBQyxFQXhEVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBd0RsQyJ9 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnJvdXRlci1tb2RlbHMtZnJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbHMvY2FjaGUvb3BlbnJvdXRlci1tb2RlbHMtZnJlZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSx1QkFvQ1g7QUFwQ0QsV0FBWSx1QkFBdUI7SUFDakMseUdBQThFLENBQUE7SUFDOUUsNkZBQWtFLENBQUE7SUFDbEUsaUhBQXNGLENBQUE7SUFDdEYsbUdBQXdFLENBQUE7SUFDeEUsNkdBQWtGLENBQUE7SUFDbEYsK0ZBQW9FLENBQUE7SUFDcEUsbUdBQXdFLENBQUE7SUFDeEUscUdBQTBFLENBQUE7SUFDMUUsbUdBQXdFLENBQUE7SUFDeEUsaUhBQXNGLENBQUE7SUFDdEYsMkhBQWdHLENBQUE7SUFDaEcseUdBQThFLENBQUE7SUFDOUUsMkZBQWdFLENBQUE7SUFDaEUseUZBQThELENBQUE7SUFDOUQscUZBQTBELENBQUE7SUFDMUQscUZBQTBELENBQUE7SUFDMUQseUZBQThELENBQUE7SUFDOUQscUtBQTBJLENBQUE7SUFDMUksaUdBQXNFLENBQUE7SUFDdEUsK0dBQW9GLENBQUE7SUFDcEYsdUdBQTRFLENBQUE7SUFDNUUsaUdBQXNFLENBQUE7SUFDdEUsK0VBQW9ELENBQUE7SUFDcEQsNkdBQWtGLENBQUE7SUFDbEYscUlBQTBHLENBQUE7SUFDMUcsNkZBQWtFLENBQUE7SUFDbEUsK0ZBQW9FLENBQUE7SUFDcEUsK0ZBQW9FLENBQUE7SUFDcEUsMkdBQWdGLENBQUE7SUFDaEYsdUhBQTRGLENBQUE7SUFDNUYscUhBQTBGLENBQUE7SUFDMUYsNkdBQWtGLENBQUE7SUFDbEYsNkhBQWtHLENBQUE7SUFDbEcseUhBQThGLENBQUE7SUFDOUYsK0dBQW9GLENBQUE7QUFDdEYsQ0FBQyxFQXBDVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBb0NsQyJ9

View File

@ -1,9 +1,95 @@
export declare enum E_OPENROUTER_MODEL { export declare enum E_OPENROUTER_MODEL {
MODEL_X_AI_GROK_4_FAST_FREE = "x-ai/grok-4-fast:free", MODEL_BYTEDANCE_SEED_SEED_1_6_FLASH = "bytedance-seed/seed-1.6-flash",
MODEL_BYTEDANCE_SEED_SEED_1_6 = "bytedance-seed/seed-1.6",
MODEL_MINIMAX_MINIMAX_M2_1 = "minimax/minimax-m2.1",
MODEL_Z_AI_GLM_4_7 = "z-ai/glm-4.7",
MODEL_GOOGLE_GEMINI_3_FLASH_PREVIEW = "google/gemini-3-flash-preview",
MODEL_MISTRALAI_MISTRAL_SMALL_CREATIVE = "mistralai/mistral-small-creative",
MODEL_ALLENAI_OLMO_3_1_32B_THINK_FREE = "allenai/olmo-3.1-32b-think:free",
MODEL_XIAOMI_MIMO_V2_FLASH_FREE = "xiaomi/mimo-v2-flash:free",
MODEL_NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = "nvidia/nemotron-3-nano-30b-a3b:free",
MODEL_NVIDIA_NEMOTRON_3_NANO_30B_A3B = "nvidia/nemotron-3-nano-30b-a3b",
MODEL_OPENAI_GPT_5_2_CHAT = "openai/gpt-5.2-chat",
MODEL_OPENAI_GPT_5_2_PRO = "openai/gpt-5.2-pro",
MODEL_OPENAI_GPT_5_2 = "openai/gpt-5.2",
MODEL_MISTRALAI_DEVSTRAL_2512_FREE = "mistralai/devstral-2512:free",
MODEL_MISTRALAI_DEVSTRAL_2512 = "mistralai/devstral-2512",
MODEL_RELACE_RELACE_SEARCH = "relace/relace-search",
MODEL_Z_AI_GLM_4_6V = "z-ai/glm-4.6v",
MODEL_NEX_AGI_DEEPSEEK_V3_1_NEX_N1_FREE = "nex-agi/deepseek-v3.1-nex-n1:free",
MODEL_ESSENTIALAI_RNJ_1_INSTRUCT = "essentialai/rnj-1-instruct",
MODEL_OPENROUTER_BODYBUILDER = "openrouter/bodybuilder",
MODEL_OPENAI_GPT_5_1_CODEX_MAX = "openai/gpt-5.1-codex-max",
MODEL_AMAZON_NOVA_2_LITE_V1 = "amazon/nova-2-lite-v1",
MODEL_MISTRALAI_MINISTRAL_14B_2512 = "mistralai/ministral-14b-2512",
MODEL_MISTRALAI_MINISTRAL_8B_2512 = "mistralai/ministral-8b-2512",
MODEL_MISTRALAI_MINISTRAL_3B_2512 = "mistralai/ministral-3b-2512",
MODEL_MISTRALAI_MISTRAL_LARGE_2512 = "mistralai/mistral-large-2512",
MODEL_ARCEE_AI_TRINITY_MINI_FREE = "arcee-ai/trinity-mini:free",
MODEL_ARCEE_AI_TRINITY_MINI = "arcee-ai/trinity-mini",
MODEL_DEEPSEEK_DEEPSEEK_V3_2_SPECIALE = "deepseek/deepseek-v3.2-speciale",
MODEL_DEEPSEEK_DEEPSEEK_V3_2 = "deepseek/deepseek-v3.2",
MODEL_PRIME_INTELLECT_INTELLECT_3 = "prime-intellect/intellect-3",
MODEL_TNGTECH_TNG_R1T_CHIMERA_FREE = "tngtech/tng-r1t-chimera:free",
MODEL_TNGTECH_TNG_R1T_CHIMERA = "tngtech/tng-r1t-chimera",
MODEL_ANTHROPIC_CLAUDE_OPUS_4_5 = "anthropic/claude-opus-4.5",
MODEL_ALLENAI_OLMO_3_32B_THINK_FREE = "allenai/olmo-3-32b-think:free",
MODEL_ALLENAI_OLMO_3_7B_INSTRUCT = "allenai/olmo-3-7b-instruct",
MODEL_ALLENAI_OLMO_3_7B_THINK = "allenai/olmo-3-7b-think",
MODEL_GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = "google/gemini-3-pro-image-preview",
MODEL_X_AI_GROK_4_1_FAST = "x-ai/grok-4.1-fast",
MODEL_GOOGLE_GEMINI_3_PRO_PREVIEW = "google/gemini-3-pro-preview",
MODEL_DEEPCOGITO_COGITO_V2_1_671B = "deepcogito/cogito-v2.1-671b",
MODEL_OPENAI_GPT_5_1 = "openai/gpt-5.1",
MODEL_OPENAI_GPT_5_1_CHAT = "openai/gpt-5.1-chat",
MODEL_OPENAI_GPT_5_1_CODEX = "openai/gpt-5.1-codex",
MODEL_OPENAI_GPT_5_1_CODEX_MINI = "openai/gpt-5.1-codex-mini",
MODEL_KWAIPILOT_KAT_CODER_PRO_FREE = "kwaipilot/kat-coder-pro:free",
MODEL_MOONSHOTAI_KIMI_K2_THINKING = "moonshotai/kimi-k2-thinking",
MODEL_AMAZON_NOVA_PREMIER_V1 = "amazon/nova-premier-v1",
MODEL_PERPLEXITY_SONAR_PRO_SEARCH = "perplexity/sonar-pro-search",
MODEL_MISTRALAI_VOXTRAL_SMALL_24B_2507 = "mistralai/voxtral-small-24b-2507",
MODEL_OPENAI_GPT_OSS_SAFEGUARD_20B = "openai/gpt-oss-safeguard-20b",
MODEL_NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = "nvidia/nemotron-nano-12b-v2-vl:free",
MODEL_NVIDIA_NEMOTRON_NANO_12B_V2_VL = "nvidia/nemotron-nano-12b-v2-vl",
MODEL_MINIMAX_MINIMAX_M2 = "minimax/minimax-m2",
MODEL_QWEN_QWEN3_VL_32B_INSTRUCT = "qwen/qwen3-vl-32b-instruct",
MODEL_LIQUID_LFM2_8B_A1B = "liquid/lfm2-8b-a1b",
MODEL_LIQUID_LFM_2_2_6B = "liquid/lfm-2.2-6b",
MODEL_IBM_GRANITE_GRANITE_4_0_H_MICRO = "ibm-granite/granite-4.0-h-micro",
MODEL_DEEPCOGITO_COGITO_V2_PREVIEW_LLAMA_405B = "deepcogito/cogito-v2-preview-llama-405b",
MODEL_OPENAI_GPT_5_IMAGE_MINI = "openai/gpt-5-image-mini",
MODEL_ANTHROPIC_CLAUDE_HAIKU_4_5 = "anthropic/claude-haiku-4.5",
MODEL_QWEN_QWEN3_VL_8B_THINKING = "qwen/qwen3-vl-8b-thinking",
MODEL_QWEN_QWEN3_VL_8B_INSTRUCT = "qwen/qwen3-vl-8b-instruct",
MODEL_OPENAI_GPT_5_IMAGE = "openai/gpt-5-image",
MODEL_OPENAI_O3_DEEP_RESEARCH = "openai/o3-deep-research",
MODEL_OPENAI_O4_MINI_DEEP_RESEARCH = "openai/o4-mini-deep-research",
MODEL_NVIDIA_LLAMA_3_3_NEMOTRON_SUPER_49B_V1_5 = "nvidia/llama-3.3-nemotron-super-49b-v1.5",
MODEL_BAIDU_ERNIE_4_5_21B_A3B_THINKING = "baidu/ernie-4.5-21b-a3b-thinking",
MODEL_GOOGLE_GEMINI_2_5_FLASH_IMAGE = "google/gemini-2.5-flash-image",
MODEL_QWEN_QWEN3_VL_30B_A3B_THINKING = "qwen/qwen3-vl-30b-a3b-thinking",
MODEL_QWEN_QWEN3_VL_30B_A3B_INSTRUCT = "qwen/qwen3-vl-30b-a3b-instruct",
MODEL_OPENAI_GPT_5_PRO = "openai/gpt-5-pro",
MODEL_Z_AI_GLM_4_6 = "z-ai/glm-4.6",
MODEL_Z_AI_GLM_4_6_EXACTO = "z-ai/glm-4.6:exacto",
MODEL_ANTHROPIC_CLAUDE_SONNET_4_5 = "anthropic/claude-sonnet-4.5",
MODEL_DEEPSEEK_DEEPSEEK_V3_2_EXP = "deepseek/deepseek-v3.2-exp",
MODEL_THEDRUMMER_CYDONIA_24B_V4_1 = "thedrummer/cydonia-24b-v4.1",
MODEL_RELACE_RELACE_APPLY_3 = "relace/relace-apply-3",
MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_09_2025 = "google/gemini-2.5-flash-preview-09-2025",
MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = "google/gemini-2.5-flash-lite-preview-09-2025",
MODEL_QWEN_QWEN3_VL_235B_A22B_THINKING = "qwen/qwen3-vl-235b-a22b-thinking",
MODEL_QWEN_QWEN3_VL_235B_A22B_INSTRUCT = "qwen/qwen3-vl-235b-a22b-instruct",
MODEL_QWEN_QWEN3_MAX = "qwen/qwen3-max",
MODEL_QWEN_QWEN3_CODER_PLUS = "qwen/qwen3-coder-plus",
MODEL_OPENAI_GPT_5_CODEX = "openai/gpt-5-codex",
MODEL_DEEPSEEK_DEEPSEEK_V3_1_TERMINUS_EXACTO = "deepseek/deepseek-v3.1-terminus:exacto",
MODEL_DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = "deepseek/deepseek-v3.1-terminus",
MODEL_X_AI_GROK_4_FAST = "x-ai/grok-4-fast",
MODEL_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B_FREE = "alibaba/tongyi-deepresearch-30b-a3b:free",
MODEL_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = "alibaba/tongyi-deepresearch-30b-a3b", MODEL_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = "alibaba/tongyi-deepresearch-30b-a3b",
MODEL_QWEN_QWEN3_CODER_FLASH = "qwen/qwen3-coder-flash", MODEL_QWEN_QWEN3_CODER_FLASH = "qwen/qwen3-coder-flash",
MODEL_QWEN_QWEN3_CODER_PLUS = "qwen/qwen3-coder-plus",
MODEL_ARCEE_AI_AFM_4_5B = "arcee-ai/afm-4.5b",
MODEL_OPENGVLAB_INTERNVL3_78B = "opengvlab/internvl3-78b", MODEL_OPENGVLAB_INTERNVL3_78B = "opengvlab/internvl3-78b",
MODEL_QWEN_QWEN3_NEXT_80B_A3B_THINKING = "qwen/qwen3-next-80b-a3b-thinking", MODEL_QWEN_QWEN3_NEXT_80B_A3B_THINKING = "qwen/qwen3-next-80b-a3b-thinking",
MODEL_QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = "qwen/qwen3-next-80b-a3b-instruct", MODEL_QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = "qwen/qwen3-next-80b-a3b-instruct",
@ -12,20 +98,17 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_QWEN_QWEN_PLUS_2025_07_28_THINKING = "qwen/qwen-plus-2025-07-28:thinking", MODEL_QWEN_QWEN_PLUS_2025_07_28_THINKING = "qwen/qwen-plus-2025-07-28:thinking",
MODEL_NVIDIA_NEMOTRON_NANO_9B_V2_FREE = "nvidia/nemotron-nano-9b-v2:free", MODEL_NVIDIA_NEMOTRON_NANO_9B_V2_FREE = "nvidia/nemotron-nano-9b-v2:free",
MODEL_NVIDIA_NEMOTRON_NANO_9B_V2 = "nvidia/nemotron-nano-9b-v2", MODEL_NVIDIA_NEMOTRON_NANO_9B_V2 = "nvidia/nemotron-nano-9b-v2",
MODEL_QWEN_QWEN3_MAX = "qwen/qwen3-max",
MODEL_MOONSHOTAI_KIMI_K2_0905 = "moonshotai/kimi-k2-0905", MODEL_MOONSHOTAI_KIMI_K2_0905 = "moonshotai/kimi-k2-0905",
MODEL_BYTEDANCE_SEED_OSS_36B_INSTRUCT = "bytedance/seed-oss-36b-instruct", MODEL_MOONSHOTAI_KIMI_K2_0905_EXACTO = "moonshotai/kimi-k2-0905:exacto",
MODEL_DEEPCOGITO_COGITO_V2_PREVIEW_LLAMA_70B = "deepcogito/cogito-v2-preview-llama-70b",
MODEL_DEEPCOGITO_COGITO_V2_PREVIEW_LLAMA_109B_MOE = "deepcogito/cogito-v2-preview-llama-109b-moe", MODEL_DEEPCOGITO_COGITO_V2_PREVIEW_LLAMA_109B_MOE = "deepcogito/cogito-v2-preview-llama-109b-moe",
MODEL_DEEPCOGITO_COGITO_V2_PREVIEW_DEEPSEEK_671B = "deepcogito/cogito-v2-preview-deepseek-671b",
MODEL_STEPFUN_AI_STEP3 = "stepfun-ai/step3", MODEL_STEPFUN_AI_STEP3 = "stepfun-ai/step3",
MODEL_QWEN_QWEN3_30B_A3B_THINKING_2507 = "qwen/qwen3-30b-a3b-thinking-2507", MODEL_QWEN_QWEN3_30B_A3B_THINKING_2507 = "qwen/qwen3-30b-a3b-thinking-2507",
MODEL_X_AI_GROK_CODE_FAST_1 = "x-ai/grok-code-fast-1", MODEL_X_AI_GROK_CODE_FAST_1 = "x-ai/grok-code-fast-1",
MODEL_NOUSRESEARCH_HERMES_4_70B = "nousresearch/hermes-4-70b", MODEL_NOUSRESEARCH_HERMES_4_70B = "nousresearch/hermes-4-70b",
MODEL_NOUSRESEARCH_HERMES_4_405B = "nousresearch/hermes-4-405b", MODEL_NOUSRESEARCH_HERMES_4_405B = "nousresearch/hermes-4-405b",
MODEL_GOOGLE_GEMINI_2_5_FLASH_IMAGE_PREVIEW = "google/gemini-2.5-flash-image-preview", MODEL_GOOGLE_GEMINI_2_5_FLASH_IMAGE_PREVIEW = "google/gemini-2.5-flash-image-preview",
MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_1_FREE = "deepseek/deepseek-chat-v3.1:free",
MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_1 = "deepseek/deepseek-chat-v3.1", MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_1 = "deepseek/deepseek-chat-v3.1",
MODEL_DEEPSEEK_DEEPSEEK_V3_1_BASE = "deepseek/deepseek-v3.1-base",
MODEL_OPENAI_GPT_4O_AUDIO_PREVIEW = "openai/gpt-4o-audio-preview", MODEL_OPENAI_GPT_4O_AUDIO_PREVIEW = "openai/gpt-4o-audio-preview",
MODEL_MISTRALAI_MISTRAL_MEDIUM_3_1 = "mistralai/mistral-medium-3.1", MODEL_MISTRALAI_MISTRAL_MEDIUM_3_1 = "mistralai/mistral-medium-3.1",
MODEL_BAIDU_ERNIE_4_5_21B_A3B = "baidu/ernie-4.5-21b-a3b", MODEL_BAIDU_ERNIE_4_5_21B_A3B = "baidu/ernie-4.5-21b-a3b",
@ -39,6 +122,7 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_OPENAI_GPT_5_NANO = "openai/gpt-5-nano", MODEL_OPENAI_GPT_5_NANO = "openai/gpt-5-nano",
MODEL_OPENAI_GPT_OSS_120B_FREE = "openai/gpt-oss-120b:free", MODEL_OPENAI_GPT_OSS_120B_FREE = "openai/gpt-oss-120b:free",
MODEL_OPENAI_GPT_OSS_120B = "openai/gpt-oss-120b", MODEL_OPENAI_GPT_OSS_120B = "openai/gpt-oss-120b",
MODEL_OPENAI_GPT_OSS_120B_EXACTO = "openai/gpt-oss-120b:exacto",
MODEL_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free", MODEL_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free",
MODEL_OPENAI_GPT_OSS_20B = "openai/gpt-oss-20b", MODEL_OPENAI_GPT_OSS_20B = "openai/gpt-oss-20b",
MODEL_ANTHROPIC_CLAUDE_OPUS_4_1 = "anthropic/claude-opus-4.1", MODEL_ANTHROPIC_CLAUDE_OPUS_4_1 = "anthropic/claude-opus-4.1",
@ -52,6 +136,7 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_Z_AI_GLM_4_32B = "z-ai/glm-4-32b", MODEL_Z_AI_GLM_4_32B = "z-ai/glm-4-32b",
MODEL_QWEN_QWEN3_CODER_FREE = "qwen/qwen3-coder:free", MODEL_QWEN_QWEN3_CODER_FREE = "qwen/qwen3-coder:free",
MODEL_QWEN_QWEN3_CODER = "qwen/qwen3-coder", MODEL_QWEN_QWEN3_CODER = "qwen/qwen3-coder",
MODEL_QWEN_QWEN3_CODER_EXACTO = "qwen/qwen3-coder:exacto",
MODEL_BYTEDANCE_UI_TARS_1_5_7B = "bytedance/ui-tars-1.5-7b", MODEL_BYTEDANCE_UI_TARS_1_5_7B = "bytedance/ui-tars-1.5-7b",
MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE = "google/gemini-2.5-flash-lite", MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE = "google/gemini-2.5-flash-lite",
MODEL_QWEN_QWEN3_235B_A22B_2507 = "qwen/qwen3-235b-a22b-2507", MODEL_QWEN_QWEN3_235B_A22B_2507 = "qwen/qwen3-235b-a22b-2507",
@ -64,42 +149,32 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
MODEL_X_AI_GROK_4 = "x-ai/grok-4", MODEL_X_AI_GROK_4 = "x-ai/grok-4",
MODEL_GOOGLE_GEMMA_3N_E2B_IT_FREE = "google/gemma-3n-e2b-it:free", MODEL_GOOGLE_GEMMA_3N_E2B_IT_FREE = "google/gemma-3n-e2b-it:free",
MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT_FREE = "tencent/hunyuan-a13b-instruct:free",
MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT = "tencent/hunyuan-a13b-instruct", MODEL_TENCENT_HUNYUAN_A13B_INSTRUCT = "tencent/hunyuan-a13b-instruct",
MODEL_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE = "tngtech/deepseek-r1t2-chimera:free", MODEL_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE = "tngtech/deepseek-r1t2-chimera:free",
MODEL_TNGTECH_DEEPSEEK_R1T2_CHIMERA = "tngtech/deepseek-r1t2-chimera",
MODEL_MORPH_MORPH_V3_LARGE = "morph/morph-v3-large", MODEL_MORPH_MORPH_V3_LARGE = "morph/morph-v3-large",
MODEL_MORPH_MORPH_V3_FAST = "morph/morph-v3-fast", MODEL_MORPH_MORPH_V3_FAST = "morph/morph-v3-fast",
MODEL_BAIDU_ERNIE_4_5_VL_424B_A47B = "baidu/ernie-4.5-vl-424b-a47b", MODEL_BAIDU_ERNIE_4_5_VL_424B_A47B = "baidu/ernie-4.5-vl-424b-a47b",
MODEL_BAIDU_ERNIE_4_5_300B_A47B = "baidu/ernie-4.5-300b-a47b", MODEL_BAIDU_ERNIE_4_5_300B_A47B = "baidu/ernie-4.5-300b-a47b",
MODEL_THEDRUMMER_ANUBIS_70B_V1_1 = "thedrummer/anubis-70b-v1.1",
MODEL_INCEPTION_MERCURY = "inception/mercury", MODEL_INCEPTION_MERCURY = "inception/mercury",
MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.2-24b-instruct:free",
MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = "mistralai/mistral-small-3.2-24b-instruct", MODEL_MISTRALAI_MISTRAL_SMALL_3_2_24B_INSTRUCT = "mistralai/mistral-small-3.2-24b-instruct",
MODEL_MINIMAX_MINIMAX_M1 = "minimax/minimax-m1", MODEL_MINIMAX_MINIMAX_M1 = "minimax/minimax-m1",
MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17 = "google/gemini-2.5-flash-lite-preview-06-17",
MODEL_GOOGLE_GEMINI_2_5_FLASH = "google/gemini-2.5-flash", MODEL_GOOGLE_GEMINI_2_5_FLASH = "google/gemini-2.5-flash",
MODEL_GOOGLE_GEMINI_2_5_PRO = "google/gemini-2.5-pro", MODEL_GOOGLE_GEMINI_2_5_PRO = "google/gemini-2.5-pro",
MODEL_MOONSHOTAI_KIMI_DEV_72B_FREE = "moonshotai/kimi-dev-72b:free",
MODEL_MOONSHOTAI_KIMI_DEV_72B = "moonshotai/kimi-dev-72b", MODEL_MOONSHOTAI_KIMI_DEV_72B = "moonshotai/kimi-dev-72b",
MODEL_OPENAI_O3_PRO = "openai/o3-pro", MODEL_OPENAI_O3_PRO = "openai/o3-pro",
MODEL_X_AI_GROK_3_MINI = "x-ai/grok-3-mini", MODEL_X_AI_GROK_3_MINI = "x-ai/grok-3-mini",
MODEL_X_AI_GROK_3 = "x-ai/grok-3", MODEL_X_AI_GROK_3 = "x-ai/grok-3",
MODEL_MISTRALAI_MAGISTRAL_SMALL_2506 = "mistralai/magistral-small-2506",
MODEL_MISTRALAI_MAGISTRAL_MEDIUM_2506 = "mistralai/magistral-medium-2506",
MODEL_MISTRALAI_MAGISTRAL_MEDIUM_2506_THINKING = "mistralai/magistral-medium-2506:thinking",
MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW = "google/gemini-2.5-pro-preview", MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW = "google/gemini-2.5-pro-preview",
MODEL_DEEPSEEK_DEEPSEEK_R1_0528_QWEN3_8B_FREE = "deepseek/deepseek-r1-0528-qwen3-8b:free",
MODEL_DEEPSEEK_DEEPSEEK_R1_0528_QWEN3_8B = "deepseek/deepseek-r1-0528-qwen3-8b", MODEL_DEEPSEEK_DEEPSEEK_R1_0528_QWEN3_8B = "deepseek/deepseek-r1-0528-qwen3-8b",
MODEL_DEEPSEEK_DEEPSEEK_R1_0528_FREE = "deepseek/deepseek-r1-0528:free", MODEL_DEEPSEEK_DEEPSEEK_R1_0528_FREE = "deepseek/deepseek-r1-0528:free",
MODEL_DEEPSEEK_DEEPSEEK_R1_0528 = "deepseek/deepseek-r1-0528", MODEL_DEEPSEEK_DEEPSEEK_R1_0528 = "deepseek/deepseek-r1-0528",
MODEL_ANTHROPIC_CLAUDE_OPUS_4 = "anthropic/claude-opus-4", MODEL_ANTHROPIC_CLAUDE_OPUS_4 = "anthropic/claude-opus-4",
MODEL_ANTHROPIC_CLAUDE_SONNET_4 = "anthropic/claude-sonnet-4", MODEL_ANTHROPIC_CLAUDE_SONNET_4 = "anthropic/claude-sonnet-4",
MODEL_MISTRALAI_DEVSTRAL_SMALL_2505_FREE = "mistralai/devstral-small-2505:free",
MODEL_MISTRALAI_DEVSTRAL_SMALL_2505 = "mistralai/devstral-small-2505", MODEL_MISTRALAI_DEVSTRAL_SMALL_2505 = "mistralai/devstral-small-2505",
MODEL_GOOGLE_GEMMA_3N_E4B_IT_FREE = "google/gemma-3n-e4b-it:free", MODEL_GOOGLE_GEMMA_3N_E4B_IT_FREE = "google/gemma-3n-e4b-it:free",
MODEL_GOOGLE_GEMMA_3N_E4B_IT = "google/gemma-3n-e4b-it", MODEL_GOOGLE_GEMMA_3N_E4B_IT = "google/gemma-3n-e4b-it",
MODEL_OPENAI_CODEX_MINI = "openai/codex-mini", MODEL_OPENAI_CODEX_MINI = "openai/codex-mini",
MODEL_META_LLAMA_LLAMA_3_3_8B_INSTRUCT_FREE = "meta-llama/llama-3.3-8b-instruct:free",
MODEL_NOUSRESEARCH_DEEPHERMES_3_MISTRAL_24B_PREVIEW = "nousresearch/deephermes-3-mistral-24b-preview", MODEL_NOUSRESEARCH_DEEPHERMES_3_MISTRAL_24B_PREVIEW = "nousresearch/deephermes-3-mistral-24b-preview",
MODEL_MISTRALAI_MISTRAL_MEDIUM_3 = "mistralai/mistral-medium-3", MODEL_MISTRALAI_MISTRAL_MEDIUM_3 = "mistralai/mistral-medium-3",
MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = "google/gemini-2.5-pro-preview-05-06", MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = "google/gemini-2.5-pro-preview-05-06",
@ -112,47 +187,29 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_QWEN_QWEN3_4B_FREE = "qwen/qwen3-4b:free", MODEL_QWEN_QWEN3_4B_FREE = "qwen/qwen3-4b:free",
MODEL_DEEPSEEK_DEEPSEEK_PROVER_V2 = "deepseek/deepseek-prover-v2", MODEL_DEEPSEEK_DEEPSEEK_PROVER_V2 = "deepseek/deepseek-prover-v2",
MODEL_META_LLAMA_LLAMA_GUARD_4_12B = "meta-llama/llama-guard-4-12b", MODEL_META_LLAMA_LLAMA_GUARD_4_12B = "meta-llama/llama-guard-4-12b",
MODEL_QWEN_QWEN3_30B_A3B_FREE = "qwen/qwen3-30b-a3b:free",
MODEL_QWEN_QWEN3_30B_A3B = "qwen/qwen3-30b-a3b", MODEL_QWEN_QWEN3_30B_A3B = "qwen/qwen3-30b-a3b",
MODEL_QWEN_QWEN3_8B_FREE = "qwen/qwen3-8b:free",
MODEL_QWEN_QWEN3_8B = "qwen/qwen3-8b", MODEL_QWEN_QWEN3_8B = "qwen/qwen3-8b",
MODEL_QWEN_QWEN3_14B_FREE = "qwen/qwen3-14b:free",
MODEL_QWEN_QWEN3_14B = "qwen/qwen3-14b", MODEL_QWEN_QWEN3_14B = "qwen/qwen3-14b",
MODEL_QWEN_QWEN3_32B = "qwen/qwen3-32b", MODEL_QWEN_QWEN3_32B = "qwen/qwen3-32b",
MODEL_QWEN_QWEN3_235B_A22B_FREE = "qwen/qwen3-235b-a22b:free",
MODEL_QWEN_QWEN3_235B_A22B = "qwen/qwen3-235b-a22b", MODEL_QWEN_QWEN3_235B_A22B = "qwen/qwen3-235b-a22b",
MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE = "tngtech/deepseek-r1t-chimera:free", MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE = "tngtech/deepseek-r1t-chimera:free",
MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA = "tngtech/deepseek-r1t-chimera", MODEL_TNGTECH_DEEPSEEK_R1T_CHIMERA = "tngtech/deepseek-r1t-chimera",
MODEL_MICROSOFT_MAI_DS_R1_FREE = "microsoft/mai-ds-r1:free",
MODEL_MICROSOFT_MAI_DS_R1 = "microsoft/mai-ds-r1",
MODEL_THUDM_GLM_Z1_32B = "thudm/glm-z1-32b",
MODEL_OPENAI_O4_MINI_HIGH = "openai/o4-mini-high", MODEL_OPENAI_O4_MINI_HIGH = "openai/o4-mini-high",
MODEL_OPENAI_O3 = "openai/o3", MODEL_OPENAI_O3 = "openai/o3",
MODEL_OPENAI_O4_MINI = "openai/o4-mini", MODEL_OPENAI_O4_MINI = "openai/o4-mini",
MODEL_SHISA_AI_SHISA_V2_LLAMA3_3_70B_FREE = "shisa-ai/shisa-v2-llama3.3-70b:free", MODEL_QWEN_QWEN2_5_CODER_7B_INSTRUCT = "qwen/qwen2.5-coder-7b-instruct",
MODEL_SHISA_AI_SHISA_V2_LLAMA3_3_70B = "shisa-ai/shisa-v2-llama3.3-70b",
MODEL_OPENAI_GPT_4_1 = "openai/gpt-4.1", MODEL_OPENAI_GPT_4_1 = "openai/gpt-4.1",
MODEL_OPENAI_GPT_4_1_MINI = "openai/gpt-4.1-mini", MODEL_OPENAI_GPT_4_1_MINI = "openai/gpt-4.1-mini",
MODEL_OPENAI_GPT_4_1_NANO = "openai/gpt-4.1-nano", MODEL_OPENAI_GPT_4_1_NANO = "openai/gpt-4.1-nano",
MODEL_ELEUTHERAI_LLEMMA_7B = "eleutherai/llemma_7b", MODEL_ELEUTHERAI_LLEMMA_7B = "eleutherai/llemma_7b",
MODEL_ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = "alfredpros/codellama-7b-instruct-solidity", MODEL_ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = "alfredpros/codellama-7b-instruct-solidity",
MODEL_ARLIAI_QWQ_32B_ARLIAI_RPR_V1_FREE = "arliai/qwq-32b-arliai-rpr-v1:free",
MODEL_ARLIAI_QWQ_32B_ARLIAI_RPR_V1 = "arliai/qwq-32b-arliai-rpr-v1", MODEL_ARLIAI_QWQ_32B_ARLIAI_RPR_V1 = "arliai/qwq-32b-arliai-rpr-v1",
MODEL_AGENTICA_ORG_DEEPCODER_14B_PREVIEW_FREE = "agentica-org/deepcoder-14b-preview:free",
MODEL_AGENTICA_ORG_DEEPCODER_14B_PREVIEW = "agentica-org/deepcoder-14b-preview",
MODEL_MOONSHOTAI_KIMI_VL_A3B_THINKING_FREE = "moonshotai/kimi-vl-a3b-thinking:free",
MODEL_MOONSHOTAI_KIMI_VL_A3B_THINKING = "moonshotai/kimi-vl-a3b-thinking",
MODEL_X_AI_GROK_3_MINI_BETA = "x-ai/grok-3-mini-beta", MODEL_X_AI_GROK_3_MINI_BETA = "x-ai/grok-3-mini-beta",
MODEL_X_AI_GROK_3_BETA = "x-ai/grok-3-beta", MODEL_X_AI_GROK_3_BETA = "x-ai/grok-3-beta",
MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = "nvidia/llama-3.1-nemotron-ultra-253b-v1", MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = "nvidia/llama-3.1-nemotron-ultra-253b-v1",
MODEL_META_LLAMA_LLAMA_4_MAVERICK_FREE = "meta-llama/llama-4-maverick:free",
MODEL_META_LLAMA_LLAMA_4_MAVERICK = "meta-llama/llama-4-maverick", MODEL_META_LLAMA_LLAMA_4_MAVERICK = "meta-llama/llama-4-maverick",
MODEL_META_LLAMA_LLAMA_4_SCOUT_FREE = "meta-llama/llama-4-scout:free",
MODEL_META_LLAMA_LLAMA_4_SCOUT = "meta-llama/llama-4-scout", MODEL_META_LLAMA_LLAMA_4_SCOUT = "meta-llama/llama-4-scout",
MODEL_ALLENAI_MOLMO_7B_D = "allenai/molmo-7b-d",
MODEL_QWEN_QWEN2_5_VL_32B_INSTRUCT_FREE = "qwen/qwen2.5-vl-32b-instruct:free",
MODEL_QWEN_QWEN2_5_VL_32B_INSTRUCT = "qwen/qwen2.5-vl-32b-instruct", MODEL_QWEN_QWEN2_5_VL_32B_INSTRUCT = "qwen/qwen2.5-vl-32b-instruct",
MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_0324_FREE = "deepseek/deepseek-chat-v3-0324:free",
MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = "deepseek/deepseek-chat-v3-0324", MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_0324 = "deepseek/deepseek-chat-v3-0324",
MODEL_OPENAI_O1_PRO = "openai/o1-pro", MODEL_OPENAI_O1_PRO = "openai/o1-pro",
MODEL_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.1-24b-instruct:free", MODEL_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.1-24b-instruct:free",
@ -167,27 +224,18 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_OPENAI_GPT_4O_SEARCH_PREVIEW = "openai/gpt-4o-search-preview", MODEL_OPENAI_GPT_4O_SEARCH_PREVIEW = "openai/gpt-4o-search-preview",
MODEL_GOOGLE_GEMMA_3_27B_IT_FREE = "google/gemma-3-27b-it:free", MODEL_GOOGLE_GEMMA_3_27B_IT_FREE = "google/gemma-3-27b-it:free",
MODEL_GOOGLE_GEMMA_3_27B_IT = "google/gemma-3-27b-it", MODEL_GOOGLE_GEMMA_3_27B_IT = "google/gemma-3-27b-it",
MODEL_THEDRUMMER_ANUBIS_PRO_105B_V1 = "thedrummer/anubis-pro-105b-v1",
MODEL_THEDRUMMER_SKYFALL_36B_V2 = "thedrummer/skyfall-36b-v2", MODEL_THEDRUMMER_SKYFALL_36B_V2 = "thedrummer/skyfall-36b-v2",
MODEL_MICROSOFT_PHI_4_MULTIMODAL_INSTRUCT = "microsoft/phi-4-multimodal-instruct", MODEL_MICROSOFT_PHI_4_MULTIMODAL_INSTRUCT = "microsoft/phi-4-multimodal-instruct",
MODEL_PERPLEXITY_SONAR_REASONING_PRO = "perplexity/sonar-reasoning-pro", MODEL_PERPLEXITY_SONAR_REASONING_PRO = "perplexity/sonar-reasoning-pro",
MODEL_PERPLEXITY_SONAR_PRO = "perplexity/sonar-pro", MODEL_PERPLEXITY_SONAR_PRO = "perplexity/sonar-pro",
MODEL_PERPLEXITY_SONAR_DEEP_RESEARCH = "perplexity/sonar-deep-research", MODEL_PERPLEXITY_SONAR_DEEP_RESEARCH = "perplexity/sonar-deep-research",
MODEL_QWEN_QWQ_32B_FREE = "qwen/qwq-32b:free",
MODEL_QWEN_QWQ_32B = "qwen/qwq-32b", MODEL_QWEN_QWQ_32B = "qwen/qwq-32b",
MODEL_NOUSRESEARCH_DEEPHERMES_3_LLAMA_3_8B_PREVIEW_FREE = "nousresearch/deephermes-3-llama-3-8b-preview:free",
MODEL_GOOGLE_GEMINI_2_0_FLASH_LITE_001 = "google/gemini-2.0-flash-lite-001", MODEL_GOOGLE_GEMINI_2_0_FLASH_LITE_001 = "google/gemini-2.0-flash-lite-001",
MODEL_ANTHROPIC_CLAUDE_3_7_SONNET = "anthropic/claude-3.7-sonnet",
MODEL_ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = "anthropic/claude-3.7-sonnet:thinking", MODEL_ANTHROPIC_CLAUDE_3_7_SONNET_THINKING = "anthropic/claude-3.7-sonnet:thinking",
MODEL_PERPLEXITY_R1_1776 = "perplexity/r1-1776", MODEL_ANTHROPIC_CLAUDE_3_7_SONNET = "anthropic/claude-3.7-sonnet",
MODEL_MISTRALAI_MISTRAL_SABA = "mistralai/mistral-saba", MODEL_MISTRALAI_MISTRAL_SABA = "mistralai/mistral-saba",
MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B_FREE = "cognitivecomputations/dolphin3.0-r1-mistral-24b:free",
MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_R1_MISTRAL_24B = "cognitivecomputations/dolphin3.0-r1-mistral-24b",
MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B_FREE = "cognitivecomputations/dolphin3.0-mistral-24b:free",
MODEL_COGNITIVECOMPUTATIONS_DOLPHIN3_0_MISTRAL_24B = "cognitivecomputations/dolphin3.0-mistral-24b",
MODEL_META_LLAMA_LLAMA_GUARD_3_8B = "meta-llama/llama-guard-3-8b", MODEL_META_LLAMA_LLAMA_GUARD_3_8B = "meta-llama/llama-guard-3-8b",
MODEL_OPENAI_O3_MINI_HIGH = "openai/o3-mini-high", MODEL_OPENAI_O3_MINI_HIGH = "openai/o3-mini-high",
MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_8B = "deepseek/deepseek-r1-distill-llama-8b",
MODEL_GOOGLE_GEMINI_2_0_FLASH_001 = "google/gemini-2.0-flash-001", MODEL_GOOGLE_GEMINI_2_0_FLASH_001 = "google/gemini-2.0-flash-001",
MODEL_QWEN_QWEN_VL_PLUS = "qwen/qwen-vl-plus", MODEL_QWEN_QWEN_VL_PLUS = "qwen/qwen-vl-plus",
MODEL_AION_LABS_AION_1_0 = "aion-labs/aion-1.0", MODEL_AION_LABS_AION_1_0 = "aion-labs/aion-1.0",
@ -195,26 +243,20 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_AION_LABS_AION_RP_LLAMA_3_1_8B = "aion-labs/aion-rp-llama-3.1-8b", MODEL_AION_LABS_AION_RP_LLAMA_3_1_8B = "aion-labs/aion-rp-llama-3.1-8b",
MODEL_QWEN_QWEN_VL_MAX = "qwen/qwen-vl-max", MODEL_QWEN_QWEN_VL_MAX = "qwen/qwen-vl-max",
MODEL_QWEN_QWEN_TURBO = "qwen/qwen-turbo", MODEL_QWEN_QWEN_TURBO = "qwen/qwen-turbo",
MODEL_QWEN_QWEN2_5_VL_72B_INSTRUCT_FREE = "qwen/qwen2.5-vl-72b-instruct:free",
MODEL_QWEN_QWEN2_5_VL_72B_INSTRUCT = "qwen/qwen2.5-vl-72b-instruct", MODEL_QWEN_QWEN2_5_VL_72B_INSTRUCT = "qwen/qwen2.5-vl-72b-instruct",
MODEL_QWEN_QWEN_PLUS = "qwen/qwen-plus", MODEL_QWEN_QWEN_PLUS = "qwen/qwen-plus",
MODEL_QWEN_QWEN_MAX = "qwen/qwen-max", MODEL_QWEN_QWEN_MAX = "qwen/qwen-max",
MODEL_OPENAI_O3_MINI = "openai/o3-mini", MODEL_OPENAI_O3_MINI = "openai/o3-mini",
MODEL_MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501_FREE = "mistralai/mistral-small-24b-instruct-2501:free",
MODEL_MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = "mistralai/mistral-small-24b-instruct-2501", MODEL_MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = "mistralai/mistral-small-24b-instruct-2501",
MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = "deepseek/deepseek-r1-distill-qwen-32b", MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = "deepseek/deepseek-r1-distill-qwen-32b",
MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_14B = "deepseek/deepseek-r1-distill-qwen-14b", MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_14B = "deepseek/deepseek-r1-distill-qwen-14b",
MODEL_PERPLEXITY_SONAR_REASONING = "perplexity/sonar-reasoning", MODEL_PERPLEXITY_SONAR_REASONING = "perplexity/sonar-reasoning",
MODEL_PERPLEXITY_SONAR = "perplexity/sonar", MODEL_PERPLEXITY_SONAR = "perplexity/sonar",
MODEL_LIQUID_LFM_7B = "liquid/lfm-7b",
MODEL_LIQUID_LFM_3B = "liquid/lfm-3b",
MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B_FREE = "deepseek/deepseek-r1-distill-llama-70b:free",
MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = "deepseek/deepseek-r1-distill-llama-70b", MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = "deepseek/deepseek-r1-distill-llama-70b",
MODEL_DEEPSEEK_DEEPSEEK_R1_FREE = "deepseek/deepseek-r1:free",
MODEL_DEEPSEEK_DEEPSEEK_R1 = "deepseek/deepseek-r1", MODEL_DEEPSEEK_DEEPSEEK_R1 = "deepseek/deepseek-r1",
MODEL_MINIMAX_MINIMAX_01 = "minimax/minimax-01", MODEL_MINIMAX_MINIMAX_01 = "minimax/minimax-01",
MODEL_MISTRALAI_CODESTRAL_2501 = "mistralai/codestral-2501",
MODEL_MICROSOFT_PHI_4 = "microsoft/phi-4", MODEL_MICROSOFT_PHI_4 = "microsoft/phi-4",
MODEL_SAO10K_L3_1_70B_HANAMI_X1 = "sao10k/l3.1-70b-hanami-x1",
MODEL_DEEPSEEK_DEEPSEEK_CHAT = "deepseek/deepseek-chat", MODEL_DEEPSEEK_DEEPSEEK_CHAT = "deepseek/deepseek-chat",
MODEL_SAO10K_L3_3_EURYALE_70B = "sao10k/l3.3-euryale-70b", MODEL_SAO10K_L3_3_EURYALE_70B = "sao10k/l3.3-euryale-70b",
MODEL_OPENAI_O1 = "openai/o1", MODEL_OPENAI_O1 = "openai/o1",
@ -225,45 +267,40 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_AMAZON_NOVA_LITE_V1 = "amazon/nova-lite-v1", MODEL_AMAZON_NOVA_LITE_V1 = "amazon/nova-lite-v1",
MODEL_AMAZON_NOVA_MICRO_V1 = "amazon/nova-micro-v1", MODEL_AMAZON_NOVA_MICRO_V1 = "amazon/nova-micro-v1",
MODEL_AMAZON_NOVA_PRO_V1 = "amazon/nova-pro-v1", MODEL_AMAZON_NOVA_PRO_V1 = "amazon/nova-pro-v1",
MODEL_QWEN_QWQ_32B_PREVIEW = "qwen/qwq-32b-preview",
MODEL_OPENAI_GPT_4O_2024_11_20 = "openai/gpt-4o-2024-11-20", MODEL_OPENAI_GPT_4O_2024_11_20 = "openai/gpt-4o-2024-11-20",
MODEL_MISTRALAI_MISTRAL_LARGE_2411 = "mistralai/mistral-large-2411", MODEL_MISTRALAI_MISTRAL_LARGE_2411 = "mistralai/mistral-large-2411",
MODEL_MISTRALAI_MISTRAL_LARGE_2407 = "mistralai/mistral-large-2407", MODEL_MISTRALAI_MISTRAL_LARGE_2407 = "mistralai/mistral-large-2407",
MODEL_MISTRALAI_PIXTRAL_LARGE_2411 = "mistralai/pixtral-large-2411", MODEL_MISTRALAI_PIXTRAL_LARGE_2411 = "mistralai/pixtral-large-2411",
MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT_FREE = "qwen/qwen-2.5-coder-32b-instruct:free",
MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT = "qwen/qwen-2.5-coder-32b-instruct", MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT = "qwen/qwen-2.5-coder-32b-instruct",
MODEL_RAIFLE_SORCERERLM_8X22B = "raifle/sorcererlm-8x22b", MODEL_RAIFLE_SORCERERLM_8X22B = "raifle/sorcererlm-8x22b",
MODEL_THEDRUMMER_UNSLOPNEMO_12B = "thedrummer/unslopnemo-12b", MODEL_THEDRUMMER_UNSLOPNEMO_12B = "thedrummer/unslopnemo-12b",
MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic/claude-3.5-haiku",
MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022 = "anthropic/claude-3.5-haiku-20241022", MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022 = "anthropic/claude-3.5-haiku-20241022",
MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic/claude-3.5-haiku",
MODEL_ANTHRACITE_ORG_MAGNUM_V4_72B = "anthracite-org/magnum-v4-72b", MODEL_ANTHRACITE_ORG_MAGNUM_V4_72B = "anthracite-org/magnum-v4-72b",
MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic/claude-3.5-sonnet", MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic/claude-3.5-sonnet",
MODEL_MISTRALAI_MINISTRAL_8B = "mistralai/ministral-8b", MODEL_MISTRALAI_MINISTRAL_8B = "mistralai/ministral-8b",
MODEL_MISTRALAI_MINISTRAL_3B = "mistralai/ministral-3b", MODEL_MISTRALAI_MINISTRAL_3B = "mistralai/ministral-3b",
MODEL_QWEN_QWEN_2_5_7B_INSTRUCT = "qwen/qwen-2.5-7b-instruct", MODEL_QWEN_QWEN_2_5_7B_INSTRUCT = "qwen/qwen-2.5-7b-instruct",
MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = "nvidia/llama-3.1-nemotron-70b-instruct", MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = "nvidia/llama-3.1-nemotron-70b-instruct",
MODEL_INFLECTION_INFLECTION_3_PRODUCTIVITY = "inflection/inflection-3-productivity",
MODEL_INFLECTION_INFLECTION_3_PI = "inflection/inflection-3-pi", MODEL_INFLECTION_INFLECTION_3_PI = "inflection/inflection-3-pi",
MODEL_GOOGLE_GEMINI_FLASH_1_5_8B = "google/gemini-flash-1.5-8b", MODEL_INFLECTION_INFLECTION_3_PRODUCTIVITY = "inflection/inflection-3-productivity",
MODEL_THEDRUMMER_ROCINANTE_12B = "thedrummer/rocinante-12b", MODEL_THEDRUMMER_ROCINANTE_12B = "thedrummer/rocinante-12b",
MODEL_ANTHRACITE_ORG_MAGNUM_V2_72B = "anthracite-org/magnum-v2-72b",
MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free", MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free",
MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT = "meta-llama/llama-3.2-3b-instruct", MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT = "meta-llama/llama-3.2-3b-instruct",
MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT = "meta-llama/llama-3.2-1b-instruct", MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT = "meta-llama/llama-3.2-1b-instruct",
MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT = "meta-llama/llama-3.2-90b-vision-instruct", MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT = "meta-llama/llama-3.2-90b-vision-instruct",
MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = "meta-llama/llama-3.2-11b-vision-instruct", MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = "meta-llama/llama-3.2-11b-vision-instruct",
MODEL_QWEN_QWEN_2_5_72B_INSTRUCT_FREE = "qwen/qwen-2.5-72b-instruct:free",
MODEL_QWEN_QWEN_2_5_72B_INSTRUCT = "qwen/qwen-2.5-72b-instruct", MODEL_QWEN_QWEN_2_5_72B_INSTRUCT = "qwen/qwen-2.5-72b-instruct",
MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_8B = "neversleep/llama-3.1-lumimaid-8b", MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_8B = "neversleep/llama-3.1-lumimaid-8b",
MODEL_OPENAI_O1_MINI = "openai/o1-mini",
MODEL_OPENAI_O1_MINI_2024_09_12 = "openai/o1-mini-2024-09-12",
MODEL_MISTRALAI_PIXTRAL_12B = "mistralai/pixtral-12b", MODEL_MISTRALAI_PIXTRAL_12B = "mistralai/pixtral-12b",
MODEL_COHERE_COMMAND_R_PLUS_08_2024 = "cohere/command-r-plus-08-2024",
MODEL_COHERE_COMMAND_R_08_2024 = "cohere/command-r-08-2024", MODEL_COHERE_COMMAND_R_08_2024 = "cohere/command-r-08-2024",
MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT = "qwen/qwen-2.5-vl-7b-instruct", MODEL_COHERE_COMMAND_R_PLUS_08_2024 = "cohere/command-r-plus-08-2024",
MODEL_SAO10K_L3_1_EURYALE_70B = "sao10k/l3.1-euryale-70b", MODEL_SAO10K_L3_1_EURYALE_70B = "sao10k/l3.1-euryale-70b",
MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT_FREE = "qwen/qwen-2.5-vl-7b-instruct:free",
MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT = "qwen/qwen-2.5-vl-7b-instruct",
MODEL_MICROSOFT_PHI_3_5_MINI_128K_INSTRUCT = "microsoft/phi-3.5-mini-128k-instruct", MODEL_MICROSOFT_PHI_3_5_MINI_128K_INSTRUCT = "microsoft/phi-3.5-mini-128k-instruct",
MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = "nousresearch/hermes-3-llama-3.1-70b", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = "nousresearch/hermes-3-llama-3.1-70b",
MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = "nousresearch/hermes-3-llama-3.1-405b:free",
MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = "nousresearch/hermes-3-llama-3.1-405b", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = "nousresearch/hermes-3-llama-3.1-405b",
MODEL_OPENAI_CHATGPT_4O_LATEST = "openai/chatgpt-4o-latest", MODEL_OPENAI_CHATGPT_4O_LATEST = "openai/chatgpt-4o-latest",
MODEL_SAO10K_L3_LUNARIS_8B = "sao10k/l3-lunaris-8b", MODEL_SAO10K_L3_LUNARIS_8B = "sao10k/l3-lunaris-8b",
@ -273,14 +310,11 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free", MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free",
MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT = "meta-llama/llama-3.1-405b-instruct", MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT = "meta-llama/llama-3.1-405b-instruct",
MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT = "meta-llama/llama-3.1-70b-instruct", MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT = "meta-llama/llama-3.1-70b-instruct",
MODEL_MISTRALAI_MISTRAL_NEMO_FREE = "mistralai/mistral-nemo:free",
MODEL_MISTRALAI_MISTRAL_NEMO = "mistralai/mistral-nemo", MODEL_MISTRALAI_MISTRAL_NEMO = "mistralai/mistral-nemo",
MODEL_OPENAI_GPT_4O_MINI = "openai/gpt-4o-mini",
MODEL_OPENAI_GPT_4O_MINI_2024_07_18 = "openai/gpt-4o-mini-2024-07-18", MODEL_OPENAI_GPT_4O_MINI_2024_07_18 = "openai/gpt-4o-mini-2024-07-18",
MODEL_OPENAI_GPT_4O_MINI = "openai/gpt-4o-mini",
MODEL_GOOGLE_GEMMA_2_27B_IT = "google/gemma-2-27b-it", MODEL_GOOGLE_GEMMA_2_27B_IT = "google/gemma-2-27b-it",
MODEL_GOOGLE_GEMMA_2_9B_IT_FREE = "google/gemma-2-9b-it:free",
MODEL_GOOGLE_GEMMA_2_9B_IT = "google/gemma-2-9b-it", MODEL_GOOGLE_GEMMA_2_9B_IT = "google/gemma-2-9b-it",
MODEL_ANTHROPIC_CLAUDE_3_5_SONNET_20240620 = "anthropic/claude-3.5-sonnet-20240620",
MODEL_SAO10K_L3_EURYALE_70B = "sao10k/l3-euryale-70b", MODEL_SAO10K_L3_EURYALE_70B = "sao10k/l3-euryale-70b",
MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = "nousresearch/hermes-2-pro-llama-3-8b", MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = "nousresearch/hermes-2-pro-llama-3-8b",
MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE = "mistralai/mistral-7b-instruct:free", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE = "mistralai/mistral-7b-instruct:free",
@ -288,30 +322,22 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3 = "mistralai/mistral-7b-instruct-v0.3", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3 = "mistralai/mistral-7b-instruct-v0.3",
MODEL_MICROSOFT_PHI_3_MINI_128K_INSTRUCT = "microsoft/phi-3-mini-128k-instruct", MODEL_MICROSOFT_PHI_3_MINI_128K_INSTRUCT = "microsoft/phi-3-mini-128k-instruct",
MODEL_MICROSOFT_PHI_3_MEDIUM_128K_INSTRUCT = "microsoft/phi-3-medium-128k-instruct", MODEL_MICROSOFT_PHI_3_MEDIUM_128K_INSTRUCT = "microsoft/phi-3-medium-128k-instruct",
MODEL_NEVERSLEEP_LLAMA_3_LUMIMAID_70B = "neversleep/llama-3-lumimaid-70b",
MODEL_GOOGLE_GEMINI_FLASH_1_5 = "google/gemini-flash-1.5",
MODEL_OPENAI_GPT_4O = "openai/gpt-4o",
MODEL_OPENAI_GPT_4O_EXTENDED = "openai/gpt-4o:extended",
MODEL_META_LLAMA_LLAMA_GUARD_2_8B = "meta-llama/llama-guard-2-8b", MODEL_META_LLAMA_LLAMA_GUARD_2_8B = "meta-llama/llama-guard-2-8b",
MODEL_OPENAI_GPT_4O_2024_05_13 = "openai/gpt-4o-2024-05-13", MODEL_OPENAI_GPT_4O_2024_05_13 = "openai/gpt-4o-2024-05-13",
MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT = "meta-llama/llama-3-8b-instruct", MODEL_OPENAI_GPT_4O = "openai/gpt-4o",
MODEL_OPENAI_GPT_4O_EXTENDED = "openai/gpt-4o:extended",
MODEL_META_LLAMA_LLAMA_3_70B_INSTRUCT = "meta-llama/llama-3-70b-instruct", MODEL_META_LLAMA_LLAMA_3_70B_INSTRUCT = "meta-llama/llama-3-70b-instruct",
MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT = "meta-llama/llama-3-8b-instruct",
MODEL_MISTRALAI_MIXTRAL_8X22B_INSTRUCT = "mistralai/mixtral-8x22b-instruct", MODEL_MISTRALAI_MIXTRAL_8X22B_INSTRUCT = "mistralai/mixtral-8x22b-instruct",
MODEL_MICROSOFT_WIZARDLM_2_8X22B = "microsoft/wizardlm-2-8x22b", MODEL_MICROSOFT_WIZARDLM_2_8X22B = "microsoft/wizardlm-2-8x22b",
MODEL_GOOGLE_GEMINI_PRO_1_5 = "google/gemini-pro-1.5",
MODEL_OPENAI_GPT_4_TURBO = "openai/gpt-4-turbo", MODEL_OPENAI_GPT_4_TURBO = "openai/gpt-4-turbo",
MODEL_COHERE_COMMAND_R_PLUS = "cohere/command-r-plus",
MODEL_COHERE_COMMAND_R_PLUS_04_2024 = "cohere/command-r-plus-04-2024",
MODEL_COHERE_COMMAND = "cohere/command",
MODEL_COHERE_COMMAND_R = "cohere/command-r",
MODEL_ANTHROPIC_CLAUDE_3_HAIKU = "anthropic/claude-3-haiku", MODEL_ANTHROPIC_CLAUDE_3_HAIKU = "anthropic/claude-3-haiku",
MODEL_ANTHROPIC_CLAUDE_3_OPUS = "anthropic/claude-3-opus", MODEL_ANTHROPIC_CLAUDE_3_OPUS = "anthropic/claude-3-opus",
MODEL_COHERE_COMMAND_R_03_2024 = "cohere/command-r-03-2024",
MODEL_MISTRALAI_MISTRAL_LARGE = "mistralai/mistral-large", MODEL_MISTRALAI_MISTRAL_LARGE = "mistralai/mistral-large",
MODEL_OPENAI_GPT_3_5_TURBO_0613 = "openai/gpt-3.5-turbo-0613", MODEL_OPENAI_GPT_3_5_TURBO_0613 = "openai/gpt-3.5-turbo-0613",
MODEL_OPENAI_GPT_4_TURBO_PREVIEW = "openai/gpt-4-turbo-preview", MODEL_OPENAI_GPT_4_TURBO_PREVIEW = "openai/gpt-4-turbo-preview",
MODEL_MISTRALAI_MISTRAL_SMALL = "mistralai/mistral-small",
MODEL_MISTRALAI_MISTRAL_TINY = "mistralai/mistral-tiny", MODEL_MISTRALAI_MISTRAL_TINY = "mistralai/mistral-tiny",
MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_2 = "mistralai/mistral-7b-instruct-v0.2",
MODEL_MISTRALAI_MIXTRAL_8X7B_INSTRUCT = "mistralai/mixtral-8x7b-instruct", MODEL_MISTRALAI_MIXTRAL_8X7B_INSTRUCT = "mistralai/mixtral-8x7b-instruct",
MODEL_NEVERSLEEP_NOROMAID_20B = "neversleep/noromaid-20b", MODEL_NEVERSLEEP_NOROMAID_20B = "neversleep/noromaid-20b",
MODEL_ALPINDALE_GOLIATH_120B = "alpindale/goliath-120b", MODEL_ALPINDALE_GOLIATH_120B = "alpindale/goliath-120b",
@ -323,7 +349,7 @@ export declare enum E_OPENROUTER_MODEL {
MODEL_MANCER_WEAVER = "mancer/weaver", MODEL_MANCER_WEAVER = "mancer/weaver",
MODEL_UNDI95_REMM_SLERP_L2_13B = "undi95/remm-slerp-l2-13b", MODEL_UNDI95_REMM_SLERP_L2_13B = "undi95/remm-slerp-l2-13b",
MODEL_GRYPHE_MYTHOMAX_L2_13B = "gryphe/mythomax-l2-13b", MODEL_GRYPHE_MYTHOMAX_L2_13B = "gryphe/mythomax-l2-13b",
MODEL_OPENAI_GPT_3_5_TURBO = "openai/gpt-3.5-turbo", MODEL_OPENAI_GPT_4_0314 = "openai/gpt-4-0314",
MODEL_OPENAI_GPT_4 = "openai/gpt-4", MODEL_OPENAI_GPT_4 = "openai/gpt-4",
MODEL_OPENAI_GPT_4_0314 = "openai/gpt-4-0314" MODEL_OPENAI_GPT_3_5_TURBO = "openai/gpt-3.5-turbo"
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -31,95 +31,95 @@ export interface IKBotOptions {
 
 OpenRouter models:  OpenRouter models:
 
agentica-org/deepcoder-14b-preview | paid
agentica-org/deepcoder-14b-preview:free | free
ai21/jamba-large-1.7 | paid ai21/jamba-large-1.7 | paid
ai21/jamba-mini-1.7 | paid ai21/jamba-mini-1.7 | paid
aion-labs/aion-1.0 | paid aion-labs/aion-1.0 | paid
aion-labs/aion-1.0-mini | paid aion-labs/aion-1.0-mini | paid
aion-labs/aion-rp-llama-3.1-8b | paid aion-labs/aion-rp-llama-3.1-8b | paid
alfredpros/codellama-7b-instruct-solidity | paid alfredpros/codellama-7b-instruct-solidity | paid
allenai/molmo-7b-d | paid
allenai/olmo-2-0325-32b-instruct | paid allenai/olmo-2-0325-32b-instruct | paid
allenai/olmo-3-32b-think:free | free
allenai/olmo-3-7b-instruct | paid
allenai/olmo-3-7b-think | paid
allenai/olmo-3.1-32b-think:free | free
amazon/nova-2-lite-v1 | paid
amazon/nova-lite-v1 | paid amazon/nova-lite-v1 | paid
amazon/nova-micro-v1 | paid amazon/nova-micro-v1 | paid
amazon/nova-premier-v1 | paid
amazon/nova-pro-v1 | paid amazon/nova-pro-v1 | paid
anthropic/claude-3-haiku | paid anthropic/claude-3-haiku | paid
anthropic/claude-3-opus | paid anthropic/claude-3-opus | paid
anthropic/claude-3.5-haiku | paid anthropic/claude-3.5-haiku | paid
anthropic/claude-3.5-haiku-20241022 | paid anthropic/claude-3.5-haiku-20241022 | paid
anthropic/claude-3.5-sonnet | paid anthropic/claude-3.5-sonnet | paid
anthropic/claude-3.5-sonnet-20240620 | paid
anthropic/claude-3.7-sonnet | paid anthropic/claude-3.7-sonnet | paid
anthropic/claude-3.7-sonnet:thinking | paid anthropic/claude-3.7-sonnet:thinking | paid
anthropic/claude-haiku-4.5 | paid
anthropic/claude-opus-4 | paid anthropic/claude-opus-4 | paid
anthropic/claude-opus-4.1 | paid anthropic/claude-opus-4.1 | paid
anthropic/claude-opus-4.5 | paid
anthropic/claude-sonnet-4 | paid anthropic/claude-sonnet-4 | paid
arcee-ai/afm-4.5b | paid anthropic/claude-sonnet-4.5 | paid
arcee-ai/coder-large | paid arcee-ai/coder-large | paid
arcee-ai/maestro-reasoning | paid arcee-ai/maestro-reasoning | paid
arcee-ai/spotlight | paid arcee-ai/spotlight | paid
arcee-ai/trinity-mini | paid
arcee-ai/trinity-mini:free | free
arcee-ai/virtuoso-large | paid arcee-ai/virtuoso-large | paid
arliai/qwq-32b-arliai-rpr-v1 | paid arliai/qwq-32b-arliai-rpr-v1 | paid
arliai/qwq-32b-arliai-rpr-v1:free | free
openrouter/auto | paid openrouter/auto | paid
baidu/ernie-4.5-21b-a3b | paid baidu/ernie-4.5-21b-a3b | paid
baidu/ernie-4.5-21b-a3b-thinking | paid
baidu/ernie-4.5-300b-a47b | paid baidu/ernie-4.5-300b-a47b | paid
baidu/ernie-4.5-vl-28b-a3b | paid baidu/ernie-4.5-vl-28b-a3b | paid
baidu/ernie-4.5-vl-424b-a47b | paid baidu/ernie-4.5-vl-424b-a47b | paid
bytedance/seed-oss-36b-instruct | paid openrouter/bodybuilder | paid
bytedance-seed/seed-1.6 | paid
bytedance-seed/seed-1.6-flash | paid
bytedance/ui-tars-1.5-7b | paid bytedance/ui-tars-1.5-7b | paid
deepcogito/cogito-v2-preview-llama-109b-moe | paid deepcogito/cogito-v2-preview-llama-109b-moe | paid
cohere/command | paid
cohere/command-a | paid cohere/command-a | paid
cohere/command-r | paid
cohere/command-r-03-2024 | paid
cohere/command-r-08-2024 | paid cohere/command-r-08-2024 | paid
cohere/command-r-plus | paid
cohere/command-r-plus-04-2024 | paid
cohere/command-r-plus-08-2024 | paid cohere/command-r-plus-08-2024 | paid
cohere/command-r7b-12-2024 | paid cohere/command-r7b-12-2024 | paid
deepcogito/cogito-v2-preview-deepseek-671b | paid deepcogito/cogito-v2-preview-llama-405b | paid
deepcogito/cogito-v2-preview-llama-70b | paid
deepcogito/cogito-v2.1-671b | paid
deepseek/deepseek-prover-v2 | paid deepseek/deepseek-prover-v2 | paid
deepseek/deepseek-r1-0528-qwen3-8b | paid deepseek/deepseek-r1-0528-qwen3-8b | paid
deepseek/deepseek-r1-0528-qwen3-8b:free | free
deepseek/deepseek-chat | paid deepseek/deepseek-chat | paid
deepseek/deepseek-chat-v3-0324 | paid deepseek/deepseek-chat-v3-0324 | paid
deepseek/deepseek-chat-v3-0324:free | free
deepseek/deepseek-chat-v3.1 | paid deepseek/deepseek-chat-v3.1 | paid
deepseek/deepseek-chat-v3.1:free | free deepseek/deepseek-v3.1-terminus | paid
deepseek/deepseek-v3.1-base | paid deepseek/deepseek-v3.1-terminus:exacto | paid
deepseek/deepseek-v3.2 | paid
deepseek/deepseek-v3.2-exp | paid
deepseek/deepseek-v3.2-speciale | paid
deepseek/deepseek-r1 | paid deepseek/deepseek-r1 | paid
deepseek/deepseek-r1:free | free
deepseek/deepseek-r1-0528 | paid deepseek/deepseek-r1-0528 | paid
deepseek/deepseek-r1-0528:free | free deepseek/deepseek-r1-0528:free | free
deepseek/deepseek-r1-distill-llama-70b | paid deepseek/deepseek-r1-distill-llama-70b | paid
deepseek/deepseek-r1-distill-llama-70b:free | free
deepseek/deepseek-r1-distill-llama-8b | paid
deepseek/deepseek-r1-distill-qwen-14b | paid deepseek/deepseek-r1-distill-qwen-14b | paid
deepseek/deepseek-r1-distill-qwen-32b | paid deepseek/deepseek-r1-distill-qwen-32b | paid
cognitivecomputations/dolphin3.0-mistral-24b | paid
cognitivecomputations/dolphin3.0-mistral-24b:free | free
cognitivecomputations/dolphin3.0-r1-mistral-24b | paid
cognitivecomputations/dolphin3.0-r1-mistral-24b:free | free
eleutherai/llemma_7b | paid eleutherai/llemma_7b | paid
essentialai/rnj-1-instruct | paid
alpindale/goliath-120b | paid alpindale/goliath-120b | paid
google/gemini-flash-1.5 | paid
google/gemini-flash-1.5-8b | paid
google/gemini-pro-1.5 | paid
google/gemini-2.0-flash-001 | paid google/gemini-2.0-flash-001 | paid
google/gemini-2.0-flash-exp:free | free google/gemini-2.0-flash-exp:free | free
google/gemini-2.0-flash-lite-001 | paid google/gemini-2.0-flash-lite-001 | paid
google/gemini-2.5-flash | paid google/gemini-2.5-flash | paid
google/gemini-2.5-flash-image | paid
google/gemini-2.5-flash-image-preview | paid google/gemini-2.5-flash-image-preview | paid
google/gemini-2.5-flash-lite | paid google/gemini-2.5-flash-lite | paid
google/gemini-2.5-flash-lite-preview-06-17 | paid google/gemini-2.5-flash-lite-preview-09-2025 | paid
google/gemini-2.5-flash-preview-09-2025 | paid
google/gemini-2.5-pro | paid google/gemini-2.5-pro | paid
google/gemini-2.5-pro-preview-05-06 | paid google/gemini-2.5-pro-preview-05-06 | paid
google/gemini-2.5-pro-preview | paid google/gemini-2.5-pro-preview | paid
google/gemini-3-flash-preview | paid
google/gemini-3-pro-preview | paid
google/gemma-2-27b-it | paid google/gemma-2-27b-it | paid
google/gemma-2-9b-it | paid google/gemma-2-9b-it | paid
google/gemma-2-9b-it:free | free
google/gemma-3-12b-it | paid google/gemma-3-12b-it | paid
google/gemma-3-12b-it:free | free google/gemma-3-12b-it:free | free
google/gemma-3-27b-it | paid google/gemma-3-27b-it | paid
@ -129,14 +129,16 @@ export interface IKBotOptions {
google/gemma-3n-e2b-it:free | free google/gemma-3n-e2b-it:free | free
google/gemma-3n-e4b-it | paid google/gemma-3n-e4b-it | paid
google/gemma-3n-e4b-it:free | free google/gemma-3n-e4b-it:free | free
google/gemini-3-pro-image-preview | paid
ibm-granite/granite-4.0-h-micro | paid
inception/mercury | paid inception/mercury | paid
inception/mercury-coder | paid inception/mercury-coder | paid
inflection/inflection-3-pi | paid inflection/inflection-3-pi | paid
inflection/inflection-3-productivity | paid inflection/inflection-3-productivity | paid
liquid/lfm-3b | paid kwaipilot/kat-coder-pro:free | free
liquid/lfm-7b | paid liquid/lfm-2.2-6b | paid
liquid/lfm2-8b-a1b | paid
meta-llama/llama-guard-3-8b | paid meta-llama/llama-guard-3-8b | paid
anthracite-org/magnum-v2-72b | paid
anthracite-org/magnum-v4-72b | paid anthracite-org/magnum-v4-72b | paid
mancer/weaver | paid mancer/weaver | paid
meituan/longcat-flash-chat | paid meituan/longcat-flash-chat | paid
@ -154,15 +156,10 @@ export interface IKBotOptions {
meta-llama/llama-3.2-90b-vision-instruct | paid meta-llama/llama-3.2-90b-vision-instruct | paid
meta-llama/llama-3.3-70b-instruct | paid meta-llama/llama-3.3-70b-instruct | paid
meta-llama/llama-3.3-70b-instruct:free | free meta-llama/llama-3.3-70b-instruct:free | free
meta-llama/llama-3.3-8b-instruct:free | free
meta-llama/llama-4-maverick | paid meta-llama/llama-4-maverick | paid
meta-llama/llama-4-maverick:free | free
meta-llama/llama-4-scout | paid meta-llama/llama-4-scout | paid
meta-llama/llama-4-scout:free | free
meta-llama/llama-guard-4-12b | paid meta-llama/llama-guard-4-12b | paid
meta-llama/llama-guard-2-8b | paid meta-llama/llama-guard-2-8b | paid
microsoft/mai-ds-r1 | paid
microsoft/mai-ds-r1:free | free
microsoft/phi-4 | paid microsoft/phi-4 | paid
microsoft/phi-4-multimodal-instruct | paid microsoft/phi-4-multimodal-instruct | paid
microsoft/phi-4-reasoning-plus | paid microsoft/phi-4-reasoning-plus | paid
@ -170,64 +167,70 @@ export interface IKBotOptions {
microsoft/phi-3-mini-128k-instruct | paid microsoft/phi-3-mini-128k-instruct | paid
microsoft/phi-3.5-mini-128k-instruct | paid microsoft/phi-3.5-mini-128k-instruct | paid
minimax/minimax-m1 | paid minimax/minimax-m1 | paid
minimax/minimax-m2 | paid
minimax/minimax-m2.1 | paid
minimax/minimax-01 | paid minimax/minimax-01 | paid
mistralai/mistral-large | paid mistralai/mistral-large | paid
mistralai/mistral-large-2407 | paid mistralai/mistral-large-2407 | paid
mistralai/mistral-large-2411 | paid mistralai/mistral-large-2411 | paid
mistralai/mistral-small | paid
mistralai/mistral-tiny | paid mistralai/mistral-tiny | paid
mistralai/codestral-2501 | paid
mistralai/codestral-2508 | paid mistralai/codestral-2508 | paid
mistralai/devstral-2512 | paid
mistralai/devstral-2512:free | free
mistralai/devstral-medium | paid mistralai/devstral-medium | paid
mistralai/devstral-small | paid mistralai/devstral-small | paid
mistralai/devstral-small-2505 | paid mistralai/devstral-small-2505 | paid
mistralai/devstral-small-2505:free | free mistralai/ministral-14b-2512 | paid
mistralai/magistral-medium-2506 | paid mistralai/ministral-3b-2512 | paid
mistralai/magistral-medium-2506:thinking | paid mistralai/ministral-8b-2512 | paid
mistralai/magistral-small-2506 | paid
mistralai/ministral-3b | paid mistralai/ministral-3b | paid
mistralai/ministral-8b | paid mistralai/ministral-8b | paid
mistralai/mistral-7b-instruct | paid mistralai/mistral-7b-instruct | paid
mistralai/mistral-7b-instruct:free | free mistralai/mistral-7b-instruct:free | free
mistralai/mistral-7b-instruct-v0.1 | paid mistralai/mistral-7b-instruct-v0.1 | paid
mistralai/mistral-7b-instruct-v0.2 | paid
mistralai/mistral-7b-instruct-v0.3 | paid mistralai/mistral-7b-instruct-v0.3 | paid
mistralai/mistral-large-2512 | paid
mistralai/mistral-medium-3 | paid mistralai/mistral-medium-3 | paid
mistralai/mistral-medium-3.1 | paid mistralai/mistral-medium-3.1 | paid
mistralai/mistral-nemo | paid mistralai/mistral-nemo | paid
mistralai/mistral-nemo:free | free
mistralai/mistral-small-24b-instruct-2501 | paid mistralai/mistral-small-24b-instruct-2501 | paid
mistralai/mistral-small-24b-instruct-2501:free | free
mistralai/mistral-small-3.1-24b-instruct | paid mistralai/mistral-small-3.1-24b-instruct | paid
mistralai/mistral-small-3.1-24b-instruct:free | free mistralai/mistral-small-3.1-24b-instruct:free | free
mistralai/mistral-small-3.2-24b-instruct | paid mistralai/mistral-small-3.2-24b-instruct | paid
mistralai/mistral-small-3.2-24b-instruct:free | free mistralai/mistral-small-creative | paid
mistralai/mixtral-8x22b-instruct | paid mistralai/mixtral-8x22b-instruct | paid
mistralai/mixtral-8x7b-instruct | paid mistralai/mixtral-8x7b-instruct | paid
mistralai/pixtral-12b | paid mistralai/pixtral-12b | paid
mistralai/pixtral-large-2411 | paid mistralai/pixtral-large-2411 | paid
mistralai/mistral-saba | paid mistralai/mistral-saba | paid
mistralai/voxtral-small-24b-2507 | paid
moonshotai/kimi-dev-72b | paid moonshotai/kimi-dev-72b | paid
moonshotai/kimi-dev-72b:free | free
moonshotai/kimi-k2 | paid moonshotai/kimi-k2 | paid
moonshotai/kimi-k2:free | free moonshotai/kimi-k2:free | free
moonshotai/kimi-k2-0905 | paid moonshotai/kimi-k2-0905 | paid
moonshotai/kimi-vl-a3b-thinking | paid moonshotai/kimi-k2-0905:exacto | paid
moonshotai/kimi-vl-a3b-thinking:free | free moonshotai/kimi-k2-thinking | paid
morph/morph-v3-fast | paid morph/morph-v3-fast | paid
morph/morph-v3-large | paid morph/morph-v3-large | paid
gryphe/mythomax-l2-13b | paid gryphe/mythomax-l2-13b | paid
neversleep/llama-3-lumimaid-70b | paid
neversleep/llama-3.1-lumimaid-8b | paid neversleep/llama-3.1-lumimaid-8b | paid
nex-agi/deepseek-v3.1-nex-n1:free | free
neversleep/noromaid-20b | paid neversleep/noromaid-20b | paid
nousresearch/deephermes-3-llama-3-8b-preview:free | free
nousresearch/deephermes-3-mistral-24b-preview | paid nousresearch/deephermes-3-mistral-24b-preview | paid
nousresearch/hermes-3-llama-3.1-405b | paid nousresearch/hermes-3-llama-3.1-405b | paid
nousresearch/hermes-3-llama-3.1-405b:free | free
nousresearch/hermes-3-llama-3.1-70b | paid nousresearch/hermes-3-llama-3.1-70b | paid
nousresearch/hermes-4-405b | paid nousresearch/hermes-4-405b | paid
nousresearch/hermes-4-70b | paid nousresearch/hermes-4-70b | paid
nousresearch/hermes-2-pro-llama-3-8b | paid nousresearch/hermes-2-pro-llama-3-8b | paid
nvidia/llama-3.1-nemotron-70b-instruct | paid nvidia/llama-3.1-nemotron-70b-instruct | paid
nvidia/llama-3.1-nemotron-ultra-253b-v1 | paid nvidia/llama-3.1-nemotron-ultra-253b-v1 | paid
nvidia/llama-3.3-nemotron-super-49b-v1.5 | paid
nvidia/nemotron-3-nano-30b-a3b | paid
nvidia/nemotron-3-nano-30b-a3b:free | free
nvidia/nemotron-nano-12b-v2-vl | paid
nvidia/nemotron-nano-12b-v2-vl:free | free
nvidia/nemotron-nano-9b-v2 | paid nvidia/nemotron-nano-9b-v2 | paid
nvidia/nemotron-nano-9b-v2:free | free nvidia/nemotron-nano-9b-v2:free | free
openai/chatgpt-4o-latest | paid openai/chatgpt-4o-latest | paid
@ -256,29 +259,44 @@ export interface IKBotOptions {
openai/gpt-4o-mini-search-preview | paid openai/gpt-4o-mini-search-preview | paid
openai/gpt-5 | paid openai/gpt-5 | paid
openai/gpt-5-chat | paid openai/gpt-5-chat | paid
openai/gpt-5-codex | paid
openai/gpt-5-image | paid
openai/gpt-5-image-mini | paid
openai/gpt-5-mini | paid openai/gpt-5-mini | paid
openai/gpt-5-nano | paid openai/gpt-5-nano | paid
openai/gpt-5-pro | paid
openai/gpt-5.1 | paid
openai/gpt-5.1-chat | paid
openai/gpt-5.1-codex | paid
openai/gpt-5.1-codex-max | paid
openai/gpt-5.1-codex-mini | paid
openai/gpt-5.2 | paid
openai/gpt-5.2-chat | paid
openai/gpt-5.2-pro | paid
openai/gpt-oss-120b | paid openai/gpt-oss-120b | paid
openai/gpt-oss-120b:exacto | paid
openai/gpt-oss-120b:free | free openai/gpt-oss-120b:free | free
openai/gpt-oss-20b | paid openai/gpt-oss-20b | paid
openai/gpt-oss-20b:free | free openai/gpt-oss-20b:free | free
openai/gpt-oss-safeguard-20b | paid
openai/o1 | paid openai/o1 | paid
openai/o1-mini | paid
openai/o1-mini-2024-09-12 | paid
openai/o1-pro | paid openai/o1-pro | paid
openai/o3 | paid openai/o3 | paid
openai/o3-deep-research | paid
openai/o3-mini | paid openai/o3-mini | paid
openai/o3-mini-high | paid openai/o3-mini-high | paid
openai/o3-pro | paid openai/o3-pro | paid
openai/o4-mini | paid openai/o4-mini | paid
openai/o4-mini-deep-research | paid
openai/o4-mini-high | paid openai/o4-mini-high | paid
opengvlab/internvl3-78b | paid opengvlab/internvl3-78b | paid
perplexity/r1-1776 | paid
perplexity/sonar | paid perplexity/sonar | paid
perplexity/sonar-deep-research | paid perplexity/sonar-deep-research | paid
perplexity/sonar-pro | paid perplexity/sonar-pro | paid
perplexity/sonar-pro-search | paid
perplexity/sonar-reasoning | paid perplexity/sonar-reasoning | paid
perplexity/sonar-reasoning-pro | paid perplexity/sonar-reasoning-pro | paid
prime-intellect/intellect-3 | paid
qwen/qwen-plus-2025-07-28 | paid qwen/qwen-plus-2025-07-28 | paid
qwen/qwen-plus-2025-07-28:thinking | paid qwen/qwen-plus-2025-07-28:thinking | paid
qwen/qwen-vl-max | paid qwen/qwen-vl-max | paid
@ -286,64 +304,66 @@ export interface IKBotOptions {
qwen/qwen-max | paid qwen/qwen-max | paid
qwen/qwen-plus | paid qwen/qwen-plus | paid
qwen/qwen-turbo | paid qwen/qwen-turbo | paid
qwen/qwen-2.5-7b-instruct | paid
qwen/qwen2.5-coder-7b-instruct | paid
qwen/qwen2.5-vl-32b-instruct | paid qwen/qwen2.5-vl-32b-instruct | paid
qwen/qwen2.5-vl-32b-instruct:free | free
qwen/qwen2.5-vl-72b-instruct | paid qwen/qwen2.5-vl-72b-instruct | paid
qwen/qwen2.5-vl-72b-instruct:free | free
qwen/qwen-2.5-vl-7b-instruct | paid qwen/qwen-2.5-vl-7b-instruct | paid
qwen/qwen-2.5-vl-7b-instruct:free | free
qwen/qwen3-14b | paid qwen/qwen3-14b | paid
qwen/qwen3-14b:free | free
qwen/qwen3-235b-a22b | paid qwen/qwen3-235b-a22b | paid
qwen/qwen3-235b-a22b:free | free
qwen/qwen3-235b-a22b-2507 | paid qwen/qwen3-235b-a22b-2507 | paid
qwen/qwen3-235b-a22b-thinking-2507 | paid qwen/qwen3-235b-a22b-thinking-2507 | paid
qwen/qwen3-30b-a3b | paid qwen/qwen3-30b-a3b | paid
qwen/qwen3-30b-a3b:free | free
qwen/qwen3-30b-a3b-instruct-2507 | paid qwen/qwen3-30b-a3b-instruct-2507 | paid
qwen/qwen3-30b-a3b-thinking-2507 | paid qwen/qwen3-30b-a3b-thinking-2507 | paid
qwen/qwen3-32b | paid qwen/qwen3-32b | paid
qwen/qwen3-4b:free | free qwen/qwen3-4b:free | free
qwen/qwen3-8b | paid qwen/qwen3-8b | paid
qwen/qwen3-8b:free | free
qwen/qwen3-coder-30b-a3b-instruct | paid qwen/qwen3-coder-30b-a3b-instruct | paid
qwen/qwen3-coder | paid qwen/qwen3-coder | paid
qwen/qwen3-coder:exacto | paid
qwen/qwen3-coder:free | free qwen/qwen3-coder:free | free
qwen/qwen3-coder-flash | paid qwen/qwen3-coder-flash | paid
qwen/qwen3-coder-plus | paid qwen/qwen3-coder-plus | paid
qwen/qwen3-max | paid qwen/qwen3-max | paid
qwen/qwen3-next-80b-a3b-instruct | paid qwen/qwen3-next-80b-a3b-instruct | paid
qwen/qwen3-next-80b-a3b-thinking | paid qwen/qwen3-next-80b-a3b-thinking | paid
qwen/qwen3-vl-235b-a22b-instruct | paid
qwen/qwen3-vl-235b-a22b-thinking | paid
qwen/qwen3-vl-30b-a3b-instruct | paid
qwen/qwen3-vl-30b-a3b-thinking | paid
qwen/qwen3-vl-32b-instruct | paid
qwen/qwen3-vl-8b-instruct | paid
qwen/qwen3-vl-8b-thinking | paid
qwen/qwq-32b | paid qwen/qwq-32b | paid
qwen/qwq-32b:free | free
qwen/qwq-32b-preview | paid
qwen/qwen-2.5-72b-instruct | paid qwen/qwen-2.5-72b-instruct | paid
qwen/qwen-2.5-72b-instruct:free | free
qwen/qwen-2.5-7b-instruct | paid
qwen/qwen-2.5-coder-32b-instruct | paid qwen/qwen-2.5-coder-32b-instruct | paid
qwen/qwen-2.5-coder-32b-instruct:free | free relace/relace-apply-3 | paid
relace/relace-search | paid
undi95/remm-slerp-l2-13b | paid undi95/remm-slerp-l2-13b | paid
sao10k/l3-lunaris-8b | paid sao10k/l3-lunaris-8b | paid
sao10k/l3-euryale-70b | paid sao10k/l3-euryale-70b | paid
sao10k/l3.1-70b-hanami-x1 | paid
sao10k/l3.1-euryale-70b | paid sao10k/l3.1-euryale-70b | paid
sao10k/l3.3-euryale-70b | paid sao10k/l3.3-euryale-70b | paid
shisa-ai/shisa-v2-llama3.3-70b | paid
shisa-ai/shisa-v2-llama3.3-70b:free | free
raifle/sorcererlm-8x22b | paid raifle/sorcererlm-8x22b | paid
stepfun-ai/step3 | paid stepfun-ai/step3 | paid
switchpoint/router | paid switchpoint/router | paid
tencent/hunyuan-a13b-instruct | paid tencent/hunyuan-a13b-instruct | paid
tencent/hunyuan-a13b-instruct:free | free thedrummer/cydonia-24b-v4.1 | paid
thedrummer/anubis-70b-v1.1 | paid
thedrummer/anubis-pro-105b-v1 | paid
thedrummer/rocinante-12b | paid thedrummer/rocinante-12b | paid
thedrummer/skyfall-36b-v2 | paid thedrummer/skyfall-36b-v2 | paid
thedrummer/unslopnemo-12b | paid thedrummer/unslopnemo-12b | paid
thudm/glm-4.1v-9b-thinking | paid thudm/glm-4.1v-9b-thinking | paid
thudm/glm-z1-32b | paid
tngtech/deepseek-r1t-chimera | paid tngtech/deepseek-r1t-chimera | paid
tngtech/deepseek-r1t-chimera:free | free tngtech/deepseek-r1t-chimera:free | free
tngtech/deepseek-r1t2-chimera | paid
tngtech/deepseek-r1t2-chimera:free | free tngtech/deepseek-r1t2-chimera:free | free
tngtech/tng-r1t-chimera | paid
tngtech/tng-r1t-chimera:free | free
alibaba/tongyi-deepresearch-30b-a3b | paid alibaba/tongyi-deepresearch-30b-a3b | paid
alibaba/tongyi-deepresearch-30b-a3b:free | free
cognitivecomputations/dolphin-mistral-24b-venice-edition:free | free cognitivecomputations/dolphin-mistral-24b-venice-edition:free | free
microsoft/wizardlm-2-8x22b | paid microsoft/wizardlm-2-8x22b | paid
x-ai/grok-3 | paid x-ai/grok-3 | paid
@ -351,18 +371,25 @@ export interface IKBotOptions {
x-ai/grok-3-mini | paid x-ai/grok-3-mini | paid
x-ai/grok-3-mini-beta | paid x-ai/grok-3-mini-beta | paid
x-ai/grok-4 | paid x-ai/grok-4 | paid
x-ai/grok-4-fast:free | free x-ai/grok-4-fast | paid
x-ai/grok-4.1-fast | paid
x-ai/grok-code-fast-1 | paid x-ai/grok-code-fast-1 | paid
xiaomi/mimo-v2-flash:free | free
z-ai/glm-4-32b | paid z-ai/glm-4-32b | paid
z-ai/glm-4.5 | paid z-ai/glm-4.5 | paid
z-ai/glm-4.5-air | paid z-ai/glm-4.5-air | paid
z-ai/glm-4.5-air:free | free z-ai/glm-4.5-air:free | free
z-ai/glm-4.5v | paid z-ai/glm-4.5v | paid
z-ai/glm-4.6 | paid
z-ai/glm-4.6:exacto | paid
z-ai/glm-4.6v | paid
z-ai/glm-4.7 | paid
 
 OpenAI models:  OpenAI models:
 
babbage-002 babbage-002
chatgpt-4o-latest chatgpt-4o-latest
chatgpt-image-latest
codex-mini-latest codex-mini-latest
dall-e-2 dall-e-2
dall-e-3 dall-e-3
@ -391,7 +418,6 @@ export interface IKBotOptions {
gpt-4o-2024-08-06 gpt-4o-2024-08-06
gpt-4o-2024-11-20 gpt-4o-2024-11-20
gpt-4o-audio-preview gpt-4o-audio-preview
gpt-4o-audio-preview-2024-10-01
gpt-4o-audio-preview-2024-12-17 gpt-4o-audio-preview-2024-12-17
gpt-4o-audio-preview-2025-06-03 gpt-4o-audio-preview-2025-06-03
gpt-4o-mini gpt-4o-mini
@ -403,30 +429,56 @@ export interface IKBotOptions {
gpt-4o-mini-search-preview gpt-4o-mini-search-preview
gpt-4o-mini-search-preview-2025-03-11 gpt-4o-mini-search-preview-2025-03-11
gpt-4o-mini-transcribe gpt-4o-mini-transcribe
gpt-4o-mini-transcribe-2025-03-20
gpt-4o-mini-transcribe-2025-12-15
gpt-4o-mini-tts gpt-4o-mini-tts
gpt-4o-mini-tts-2025-03-20
gpt-4o-mini-tts-2025-12-15
gpt-4o-realtime-preview gpt-4o-realtime-preview
gpt-4o-realtime-preview-2024-10-01
gpt-4o-realtime-preview-2024-12-17 gpt-4o-realtime-preview-2024-12-17
gpt-4o-realtime-preview-2025-06-03 gpt-4o-realtime-preview-2025-06-03
gpt-4o-search-preview gpt-4o-search-preview
gpt-4o-search-preview-2025-03-11 gpt-4o-search-preview-2025-03-11
gpt-4o-transcribe gpt-4o-transcribe
gpt-4o-transcribe-diarize
gpt-5 gpt-5
gpt-5-2025-08-07 gpt-5-2025-08-07
gpt-5-chat-latest gpt-5-chat-latest
gpt-5-codex
gpt-5-mini gpt-5-mini
gpt-5-mini-2025-08-07 gpt-5-mini-2025-08-07
gpt-5-nano gpt-5-nano
gpt-5-nano-2025-08-07 gpt-5-nano-2025-08-07
gpt-5-pro
gpt-5-pro-2025-10-06
gpt-5-search-api
gpt-5-search-api-2025-10-14
gpt-5.1
gpt-5.1-2025-11-13
gpt-5.1-chat-latest
gpt-5.1-codex
gpt-5.1-codex-max
gpt-5.1-codex-mini
gpt-5.2
gpt-5.2-2025-12-11
gpt-5.2-chat-latest
gpt-5.2-pro
gpt-5.2-pro-2025-12-11
gpt-audio gpt-audio
gpt-audio-2025-08-28 gpt-audio-2025-08-28
gpt-audio-mini
gpt-audio-mini-2025-10-06
gpt-audio-mini-2025-12-15
gpt-image-1 gpt-image-1
gpt-image-1-mini
gpt-image-1.5
gpt-realtime gpt-realtime
gpt-realtime-2025-08-28 gpt-realtime-2025-08-28
gpt-realtime-mini
gpt-realtime-mini-2025-10-06
gpt-realtime-mini-2025-12-15
o1 o1
o1-2024-12-17 o1-2024-12-17
o1-mini
o1-mini-2024-09-12
o1-pro o1-pro
o1-pro-2025-03-19 o1-pro-2025-03-19
o3 o3
@ -439,6 +491,8 @@ export interface IKBotOptions {
o4-mini-deep-research-2025-06-26 o4-mini-deep-research-2025-06-26
omni-moderation-2024-09-26 omni-moderation-2024-09-26
omni-moderation-latest omni-moderation-latest
sora-2
sora-2-pro
text-embedding-3-large text-embedding-3-large
text-embedding-3-small text-embedding-3-small
text-embedding-ada-002 text-embedding-ada-002

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,12 @@
{ {
"name": "@plastichub/kbot", "name": "@plastichub/kbot",
"version": "1.1.59", "version": "1.1.60",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@plastichub/kbot", "name": "@plastichub/kbot",
"version": "1.1.59", "version": "1.1.60",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"node-emoji": "^2.2.0" "node-emoji": "^2.2.0"

View File

@ -1,6 +1,6 @@
{ {
"name": "@plastichub/kbot", "name": "@plastichub/kbot",
"version": "1.1.59", "version": "1.1.60",
"main": "main_node.js", "main": "main_node.js",
"author": "", "author": "",
"license": "ISC", "license": "ISC",

Binary file not shown.

View File

@ -17,41 +17,6 @@ version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
[[package]]
name = "aead"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
dependencies = [
"crypto-common",
"generic-array",
]
[[package]]
name = "aes"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
dependencies = [
"cfg-if",
"cipher",
"cpufeatures",
]
[[package]]
name = "aes-gcm"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
dependencies = [
"aead",
"aes",
"cipher",
"ctr",
"ghash",
"subtle",
]
[[package]] [[package]]
name = "ahash" name = "ahash"
version = "0.7.8" version = "0.7.8"
@ -784,16 +749,6 @@ dependencies = [
"windows-link 0.2.0", "windows-link 0.2.0",
] ]
[[package]]
name = "cipher"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
dependencies = [
"crypto-common",
"inout",
]
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.5.48" version = "4.5.48"
@ -1043,7 +998,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [ dependencies = [
"generic-array", "generic-array",
"rand_core 0.6.4",
"typenum", "typenum",
] ]
@ -1084,15 +1038,6 @@ dependencies = [
"syn 2.0.106", "syn 2.0.106",
] ]
[[package]]
name = "ctr"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
dependencies = [
"cipher",
]
[[package]] [[package]]
name = "darling" name = "darling"
version = "0.21.3" version = "0.21.3"
@ -1908,16 +1853,6 @@ dependencies = [
"wasm-bindgen", "wasm-bindgen",
] ]
[[package]]
name = "ghash"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1"
dependencies = [
"opaque-debug",
"polyval",
]
[[package]] [[package]]
name = "gif" name = "gif"
version = "0.13.3" version = "0.13.3"
@ -2514,15 +2449,6 @@ dependencies = [
"cfb", "cfb",
] ]
[[package]]
name = "inout"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
dependencies = [
"generic-array",
]
[[package]] [[package]]
name = "interpolate_name" name = "interpolate_name"
version = "0.2.4" version = "0.2.4"
@ -3445,12 +3371,6 @@ version = "1.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad"
[[package]]
name = "opaque-debug"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]] [[package]]
name = "open" name = "open"
version = "5.3.2" version = "5.3.2"
@ -3853,18 +3773,6 @@ dependencies = [
"windows-sys 0.61.0", "windows-sys 0.61.0",
] ]
[[package]]
name = "polyval"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25"
dependencies = [
"cfg-if",
"cpufeatures",
"opaque-debug",
"universal-hash",
]
[[package]] [[package]]
name = "potential_utf" name = "potential_utf"
version = "0.1.3" version = "0.1.3"
@ -5390,7 +5298,6 @@ dependencies = [
"tray-icon", "tray-icon",
"url", "url",
"urlpattern", "urlpattern",
"uuid",
"webkit2gtk", "webkit2gtk",
"webview2-com", "webview2-com",
"window-vibrancy", "window-vibrancy",
@ -5448,7 +5355,6 @@ dependencies = [
"semver", "semver",
"serde", "serde",
"serde_json", "serde_json",
"tauri-codegen",
"tauri-utils", "tauri-utils",
"tauri-winres", "tauri-winres",
"toml 0.9.7", "toml 0.9.7",
@ -5838,13 +5744,11 @@ version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41a3852fdf9a4f8fbeaa63dc3e9a85284dd6ef7200751f0bd66ceee30c93f212" checksum = "41a3852fdf9a4f8fbeaa63dc3e9a85284dd6ef7200751f0bd66ceee30c93f212"
dependencies = [ dependencies = [
"aes-gcm",
"anyhow", "anyhow",
"brotli", "brotli",
"cargo_metadata", "cargo_metadata",
"ctor", "ctor",
"dunce", "dunce",
"getrandom 0.3.3",
"glob", "glob",
"html5ever", "html5ever",
"http", "http",
@ -5863,7 +5767,6 @@ dependencies = [
"serde-untagged", "serde-untagged",
"serde_json", "serde_json",
"serde_with", "serde_with",
"serialize-to-javascript",
"swift-rs", "swift-rs",
"thiserror 2.0.16", "thiserror 2.0.16",
"toml 0.9.7", "toml 0.9.7",
@ -6392,16 +6295,6 @@ version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
[[package]]
name = "universal-hash"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
dependencies = [
"crypto-common",
"subtle",
]
[[package]] [[package]]
name = "untrusted" name = "untrusted"
version = "0.9.0" version = "0.9.0"

View File

@ -15,10 +15,10 @@ name = "tauri_app_lib"
crate-type = ["staticlib", "cdylib", "rlib"] crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies] [build-dependencies]
tauri-build = { version = "2", features = ["isolation"] } tauri-build = { version = "2", features = [] }
[dependencies] [dependencies]
tauri = { version = "2", features = ["isolation", "macos-private-api", "protocol-asset", "devtools"] } tauri = { version = "2", features = [ "macos-private-api", "protocol-asset", "devtools"] }
tauri-plugin-opener = "2.5.0" tauri-plugin-opener = "2.5.0"
tauri-plugin-dialog = "2.4.0" tauri-plugin-dialog = "2.4.0"
tauri-plugin-fs = "2.0.0" tauri-plugin-fs = "2.0.0"

View File

@ -20,12 +20,6 @@
} }
], ],
"security": { "security": {
"pattern": {
"use": "isolation",
"options": {
"dir": "../isolation-dist/"
}
},
"csp": { "csp": {
"default-src": "'self' customprotocol: asset:", "default-src": "'self' customprotocol: asset:",
"script-src": "'self' 'unsafe-inline'", "script-src": "'self' 'unsafe-inline'",

View File

@ -21,11 +21,11 @@
} }
.dark .glass-card { .dark .glass-card {
@apply backdrop-blur-lg bg-black/10 border-2 border-white/15 shadow-xl rounded-xl; @apply backdrop-blur-lg bg-white/5 border-2 border-white/20 shadow-2xl rounded-xl;
} }
.dark .glass-card:hover { .dark .glass-card:hover {
@apply border-white/25; @apply border-white/40 shadow-3xl;
} }
.glass-button { .glass-button {
@ -41,11 +41,11 @@
} }
.dark .glass-button { .dark .glass-button {
@apply backdrop-blur-md bg-black/10 border-2 border-white/20 hover:bg-black/20 text-white/90 hover:text-white; @apply backdrop-blur-md bg-white/5 border-2 border-white/30 hover:bg-white/10 text-white hover:text-white shadow-lg;
} }
.dark .glass-button:hover { .dark .glass-button:hover {
@apply border-white/30; @apply border-white/50 shadow-xl;
} }
.glass-input { .glass-input {
@ -67,13 +67,13 @@
} }
.dark .glass-input { .dark .glass-input {
@apply backdrop-blur-md bg-slate-800/40 border-2 border-slate-500/80 focus:border-cyan-400/80 text-slate-100 placeholder:text-slate-400; @apply backdrop-blur-md bg-white/5 border-2 border-white/30 focus:border-cyan-400 text-white placeholder:text-slate-300;
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.6);
} }
.dark .glass-input:hover { .dark .glass-input:hover {
@apply border-slate-400/90; @apply border-white/50;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.7);
} }
.dark .glass-input:focus { .dark .glass-input:focus {
@ -272,4 +272,53 @@
.glass-progress [data-state="complete"] { .glass-progress [data-state="complete"] {
@apply bg-gradient-to-r from-indigo-500 to-cyan-500; @apply bg-gradient-to-r from-indigo-500 to-cyan-500;
} }
/* High contrast dark mode overrides */
.dark .text-slate-700 {
color: #ffffff !important;
}
.dark .text-slate-500 {
color: #e2e8f0 !important;
}
.dark .text-slate-400 {
color: #cbd5e1 !important;
}
.dark .text-slate-300 {
color: #ffffff !important;
}
/* Improve button text contrast */
.dark .glass-button {
color: #ffffff !important;
}
/* Improve input text contrast */
.dark .glass-input {
color: #ffffff !important;
}
.dark .glass-input::placeholder {
color: #cbd5e1 !important;
}
/* Improve card backgrounds for better contrast */
.dark .bg-slate-50\/30 {
background-color: rgba(30, 41, 59, 0.8) !important;
}
.dark .bg-slate-800\/30 {
background-color: rgba(30, 41, 59, 0.9) !important;
}
/* Improve border contrast */
.dark .border-slate-200\/50 {
border-color: rgba(255, 255, 255, 0.2) !important;
}
.dark .border-slate-700\/50 {
border-color: rgba(255, 255, 255, 0.3) !important;
}
} }

View File

@ -1,6 +1,6 @@
import React from 'react'; import React, { useState, useEffect, useRef } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { T } from '../i18n'; import { T, getCurrentLang, supportedLanguages } from '../i18n';
interface HeaderProps { interface HeaderProps {
showDebugPanel: boolean; showDebugPanel: boolean;
@ -16,6 +16,30 @@ const Header: React.FC<HeaderProps> = ({
toggleTheme, toggleTheme,
}) => { }) => {
const navigate = useNavigate(); const navigate = useNavigate();
const [showLangDropdown, setShowLangDropdown] = useState(false);
const currentLang = getCurrentLang();
const dropdownRef = useRef<HTMLDivElement>(null);
const handleLanguageChange = (langCode: string) => {
const currentUrl = window.location.href;
const url = new URL(currentUrl);
url.searchParams.set('lang', langCode);
window.location.href = url.toString();
};
// Close dropdown when clicking outside
useEffect(() => {
const handleClickOutside = (event: MouseEvent) => {
if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {
setShowLangDropdown(false);
}
};
document.addEventListener('mousedown', handleClickOutside);
return () => {
document.removeEventListener('mousedown', handleClickOutside);
};
}, []);
return ( return (
<div className="mb-4 sm:mb-8 space-y-3 sm:space-y-4"> <div className="mb-4 sm:mb-8 space-y-3 sm:space-y-4">
{/* Title on its own row */} {/* Title on its own row */}
@ -30,6 +54,42 @@ const Header: React.FC<HeaderProps> = ({
<div className="flex justify-center sm:justify-end items-center gap-2"> <div className="flex justify-center sm:justify-end items-center gap-2">
{/* Button group - single row */} {/* Button group - single row */}
<div className="flex items-center gap-2 flex-shrink-0"> <div className="flex items-center gap-2 flex-shrink-0">
{/* Language Switcher */}
<div className="relative" ref={dropdownRef}>
<button
onClick={() => setShowLangDropdown(!showLangDropdown)}
className="glass-button p-2 sm:p-3 rounded-xl hover:shadow-lg transition-all duration-300 flex items-center gap-2"
title="Change Language"
>
<svg className="w-5 h-5 sm:w-6 sm:h-6 text-slate-700 dark:text-slate-300" fill="currentColor" viewBox="0 0 20 20">
<path fillRule="evenodd" d="M7 2a1 1 0 011 1v1h3a1 1 0 110 2H9.578a18.87 18.87 0 01-1.724 4.78c.29.354.596.696.914 1.026a1 1 0 11-1.44 1.389c-.188-.196-.373-.396-.554-.6a19.098 19.098 0 01-3.107 3.567 1 1 0 01-1.334-1.49 17.087 17.087 0 003.13-3.733 18.992 18.992 0 01-1.487-2.494 1 1 0 111.79-.89c.234.47.489.928.764 1.372.417-.934.752-1.913.997-2.927H3a1 1 0 110-2h3V3a1 1 0 011-1zm6 6a1 1 0 01.894.553l2.991 5.982a.869.869 0 01.02.037l.99 1.98a1 1 0 11-1.79.895L15.383 16h-4.764l-.723 1.447a1 1 0 11-1.79-.894l.99-1.98.019-.038 2.99-5.982A1 1 0 0113 8zm-1.382 6h2.764L13 11.236 11.618 14z" clipRule="evenodd" />
</svg>
<span className="hidden sm:inline text-xs">
{supportedLanguages.find(l => l.code === currentLang)?.name || 'EN'}
</span>
</button>
{/* Language Dropdown */}
{showLangDropdown && (
<div className="absolute top-full right-0 mt-2 w-40 bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-xl shadow-lg z-50">
{supportedLanguages.map((lang) => (
<button
key={lang.code}
onClick={() => {
handleLanguageChange(lang.code);
setShowLangDropdown(false);
}}
className={`w-full text-left px-4 py-2 text-sm hover:bg-slate-100 dark:hover:bg-slate-700 transition-colors first:rounded-t-xl last:rounded-b-xl ${
currentLang === lang.code ? 'bg-indigo-50 dark:bg-indigo-900/30 text-indigo-600 dark:text-indigo-400' : 'text-slate-700 dark:text-slate-300'
}`}
>
{lang.name}
</button>
))}
</div>
)}
</div>
{/* Debug Panel Toggle */} {/* Debug Panel Toggle */}
<button <button
onClick={() => setShowDebugPanel(!showDebugPanel)} onClick={() => setShowDebugPanel(!showDebugPanel)}

View File

@ -217,14 +217,14 @@ const PromptForm: React.FC<PromptFormProps> = ({
<div className="grid grid-cols-1 lg:grid-cols-2 gap-6"> <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
{/* Left column: Text input area only */} {/* Left column: Text input area only */}
<div> <div>
<div className="border-2 border-slate-200 dark:border-slate-700 rounded-xl p-3 sm:p-4 focus-within:border-indigo-500 dark:focus-within:border-indigo-400 transition-colors duration-200"> <div className="border-2 border-slate-200 dark:border-white/40 rounded-xl p-3 sm:p-4 focus-within:border-indigo-500 dark:focus-within:border-cyan-400 transition-colors duration-200">
<textarea <textarea
id="prompt-input" id="prompt-input"
value={prompt} value={prompt}
onChange={(e) => setPrompt(e.currentTarget.value)} onChange={(e) => setPrompt(e.currentTarget.value)}
onPaste={handlePaste} onPaste={handlePaste}
placeholder="Describe the image you want to generate or edit... (Ctrl+V to paste images)" placeholder="Describe the image you want to generate or edit... (Ctrl+V to paste images)"
className="w-full bg-transparent border-none outline-none min-h-[120px] resize-none text-slate-900 dark:text-slate-100 placeholder-slate-500 dark:placeholder-slate-400" className="w-full bg-transparent border-none outline-none min-h-[120px] resize-none text-slate-900 dark:text-white placeholder-slate-500 dark:placeholder-slate-300"
rows={5} rows={5}
onKeyDown={(e) => { onKeyDown={(e) => {
if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) { if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
@ -292,14 +292,14 @@ const PromptForm: React.FC<PromptFormProps> = ({
</div> </div>
{/* Quick Styles - Compact */} {/* Quick Styles - Compact */}
<div> <div>
<h4 className="text-sm font-semibold text-slate-700 dark:text-slate-300 mb-2"><T>Styles</T></h4> <h4 className="text-sm font-semibold text-slate-700 dark:text-white mb-2"><T>Styles</T></h4>
<div className="flex flex-wrap gap-1"> <div className="flex flex-wrap gap-1">
{quickStyles.map((style) => ( {quickStyles.map((style) => (
<button <button
key={style} key={style}
type="button" type="button"
onClick={() => appendStyle(style)} onClick={() => appendStyle(style)}
className="text-xs px-2 py-1 rounded bg-slate-100 hover:bg-slate-200 dark:bg-slate-800 dark:hover:bg-slate-700 text-slate-700 dark:text-slate-300 transition-colors duration-200" className="text-xs px-2 py-1 rounded bg-slate-100 hover:bg-slate-200 dark:bg-slate-700 dark:hover:bg-slate-600 text-slate-700 dark:text-white transition-colors duration-200"
> >
{style} {style}
</button> </button>
@ -309,7 +309,7 @@ const PromptForm: React.FC<PromptFormProps> = ({
{/* Quick Actions - Icons Only */} {/* Quick Actions - Icons Only */}
<div> <div>
<h4 className="text-sm font-semibold text-slate-700 dark:text-slate-300 mb-2"><T>Actions</T></h4> <h4 className="text-sm font-semibold text-slate-700 dark:text-white mb-2"><T>Actions</T></h4>
<div className="flex flex-wrap gap-1"> <div className="flex flex-wrap gap-1">
{quickActions.map((action) => { {quickActions.map((action) => {
const hasSelectedImages = getSelectedImages().length > 0; const hasSelectedImages = getSelectedImages().length > 0;
@ -354,8 +354,8 @@ const PromptForm: React.FC<PromptFormProps> = ({
{/* Two-column layout: Destination + Source */} {/* Two-column layout: Destination + Source */}
<div className="grid grid-cols-1 md:grid-cols-2 gap-6"> <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
{/* Left: Output destination */} {/* Left: Output destination */}
<div className="border border-slate-200/50 dark:border-slate-700/50 rounded-xl p-4 bg-slate-50/30 dark:bg-slate-800/30"> <div className="border border-slate-200/50 dark:border-white/30 rounded-xl p-4 bg-slate-50/30 dark:bg-slate-800/90">
<label htmlFor="output-path" className="block text-sm font-semibold text-slate-700 dark:text-slate-300 mb-2"> <label htmlFor="output-path" className="block text-sm font-semibold text-slate-700 dark:text-white mb-2">
<T>Output File Path</T> <T>Output File Path</T>
</label> </label>
<div className="flex flex-col sm:flex-row gap-3"> <div className="flex flex-col sm:flex-row gap-3">
@ -382,7 +382,7 @@ const PromptForm: React.FC<PromptFormProps> = ({
{/* Right: Source images */} {/* Right: Source images */}
<div <div
ref={dropZoneRef} ref={dropZoneRef}
className={`p-4 rounded-xl border-2 border-dashed transition-all duration-300 bg-slate-50/30 dark:bg-slate-800/30 ${dragIn ? 'border-blue-500 bg-blue-500/10' : 'border-slate-300/50 dark:border-slate-600/50'}`} className={`p-4 rounded-xl border-2 border-dashed transition-all duration-300 bg-slate-50/30 dark:bg-slate-800/90 ${dragIn ? 'border-blue-500 bg-blue-500/10' : 'border-slate-300/50 dark:border-white/30'}`}
> >
<div className="space-y-3"> <div className="space-y-3">
<button <button

View File

@ -30,21 +30,21 @@ const TemplateManager: React.FC<TemplateManagerProps> = ({
}; };
return ( return (
<div className="border border-slate-200/50 dark:border-slate-700/50 rounded-xl p-4 bg-slate-50/30 dark:bg-slate-800/30"> <div className="border border-slate-200/50 dark:border-white/30 rounded-xl p-4 bg-slate-50/30 dark:bg-slate-800/90">
<div className="grid grid-cols-1 md:grid-cols-2 gap-4"> <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
{/* Left: Template Picker */} {/* Left: Template Picker */}
<div> <div>
<h4 className="text-sm font-semibold text-slate-700 dark:text-slate-300 mb-2"><T>Templates</T></h4> <h4 className="text-sm font-semibold text-slate-700 dark:text-white mb-2"><T>Templates</T></h4>
<div className="flex flex-wrap gap-1"> <div className="flex flex-wrap gap-1">
{prompts.length === 0 ? ( {prompts.length === 0 ? (
<span className="text-xs text-slate-500 dark:text-slate-400"><T>No templates saved yet</T></span> <span className="text-xs text-slate-500 dark:text-slate-200"><T>No templates saved yet</T></span>
) : ( ) : (
prompts.map((template) => ( prompts.map((template) => (
<button <button
key={template.name} key={template.name}
type="button" type="button"
onClick={() => onSelectPrompt(template.text)} onClick={() => onSelectPrompt(template.text)}
className="text-xs px-2 py-1 rounded bg-purple-100 hover:bg-purple-200 dark:bg-purple-900 dark:hover:bg-purple-800 text-purple-700 dark:text-purple-300 transition-colors duration-200" className="text-xs px-2 py-1 rounded bg-purple-100 hover:bg-purple-200 dark:bg-purple-700 dark:hover:bg-purple-600 text-purple-700 dark:text-white transition-colors duration-200"
title={`Load template: ${template.text.substring(0, 50)}...`} title={`Load template: ${template.text.substring(0, 50)}...`}
> >
{template.name} {template.name}
@ -56,13 +56,13 @@ const TemplateManager: React.FC<TemplateManagerProps> = ({
{/* Right: Template Management Icons */} {/* Right: Template Management Icons */}
<div> <div>
<h4 className="text-sm font-semibold text-slate-700 dark:text-slate-300 mb-2"><T>Manage</T></h4> <h4 className="text-sm font-semibold text-slate-700 dark:text-white mb-2"><T>Manage</T></h4>
<div className="flex flex-col sm:flex-row gap-2"> <div className="flex flex-col sm:flex-row gap-2">
<button <button
type="button" type="button"
onClick={handleSaveTemplate} onClick={handleSaveTemplate}
disabled={!currentPrompt.trim()} disabled={!currentPrompt.trim()}
className="p-2 rounded bg-green-100 hover:bg-green-200 dark:bg-green-900 dark:hover:bg-green-800 text-green-700 dark:text-green-300 transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed" className="p-2 rounded bg-green-100 hover:bg-green-200 dark:bg-green-600 dark:hover:bg-green-500 text-green-700 dark:text-white transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed"
title="Save current prompt as template" title="Save current prompt as template"
> >
<Save size={16} /> <Save size={16} />
@ -70,7 +70,7 @@ const TemplateManager: React.FC<TemplateManagerProps> = ({
<button <button
type="button" type="button"
onClick={onImportPrompts} onClick={onImportPrompts}
className="p-2 rounded bg-blue-100 hover:bg-blue-200 dark:bg-blue-900 dark:hover:bg-blue-800 text-blue-700 dark:text-blue-300 transition-colors duration-200" className="p-2 rounded bg-blue-100 hover:bg-blue-200 dark:bg-blue-600 dark:hover:bg-blue-500 text-blue-700 dark:text-white transition-colors duration-200"
title="Import templates from file" title="Import templates from file"
> >
<Upload size={16} /> <Upload size={16} />
@ -79,7 +79,7 @@ const TemplateManager: React.FC<TemplateManagerProps> = ({
type="button" type="button"
onClick={onExportPrompts} onClick={onExportPrompts}
disabled={prompts.length === 0} disabled={prompts.length === 0}
className="p-2 rounded bg-orange-100 hover:bg-orange-200 dark:bg-orange-900 dark:hover:bg-orange-800 text-orange-700 dark:text-orange-300 transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed" className="p-2 rounded bg-orange-100 hover:bg-orange-200 dark:bg-orange-600 dark:hover:bg-orange-500 text-orange-700 dark:text-white transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed"
title="Export templates to file" title="Export templates to file"
> >
<Download size={16} /> <Download size={16} />

View File

@ -127,8 +127,8 @@ const T: React.FC<TProps> = ({ children }) => {
const textKey = useMemo(() => { const textKey = useMemo(() => {
if (typeof children === 'string') return children; if (typeof children === 'string') return children;
if (React.isValidElement(children) && typeof children.props.children === 'string') { if (React.isValidElement(children) && typeof (children.props as any).children === 'string') {
return children.props.children; return (children.props as any).children;
} }
return null; return null;
}, [children]); }, [children]);
@ -139,7 +139,7 @@ const T: React.FC<TProps> = ({ children }) => {
const translatedString = translate(textKey, currentLang); const translatedString = translate(textKey, currentLang);
if (React.isValidElement(children) && typeof children.props.children === 'string') { if (React.isValidElement(children) && typeof (children.props as any).children === 'string') {
return React.cloneElement(children, {}, translatedString); return React.cloneElement(children, {}, translatedString);
} }
return <>{translatedString}</>; return <>{translatedString}</>;

View File

@ -1,350 +1,23 @@
{ {
"Download English Translations": "Descargar traducciones al inglés", "Image": "Imagen",
"Connect": "Conectar", "Wizard": "Asistente",
"PolyMech - Cassandra": "PolyMech - Cassandra", "Settings": "Configuración",
"OFFLINE": "FUERA DE LÍNEA", "Google AI API Key": "Clave API de Google AI",
"System Information": "Información del sistema", "API key configured": "Clave API configurada",
"API URL": "URL API", "API key required for image generation": "Clave API requerida para generar imágenes",
"System Messages": "Mensajes del sistema", "Get your API key from": "Obtén tu clave API desde",
"Clear": "Claro", "Google AI Studio": "Google AI Studio",
"No enabled profile": "Perfil no habilitado", "Theme": "Tema",
"Stop Profile": "Detener Perfil", "Choose your preferred color scheme": "Elige tu esquema de colores preferido",
"N/A": "N/A", "Save Settings": "Guardar configuración",
"Press": "Pulse", "Generate Image": "Generar imagen",
"Stop": "Stop", "Generating...": "Generando...",
"MANUAL": "MANUAL", "Styles": "Estilos",
"AUTO": "AUTO", "Actions": "Acciones",
"MANUAL MULTI": "MANUAL MULTI", "Output File Path": "Ruta del archivo de salida",
"AUTO MULTI": "AUTO MULTI", "Browse": "Examinar",
"AUTO MULTI BALANCED": "AUTO MULTI BALANCED", "Select Images (or Drop Here)": "Seleccionar imágenes (o arrastrar aquí)",
"Press Cylinder Controls": "Controles del cilindro de prensado", "Templates": "Plantillas",
"PV": "FV", "No templates saved yet": "No hay plantillas guardadas aún",
"Mode": "Modo", "Manage": "Gestionar"
"SP:": "SP:",
"Interlocked": "Entrelazados",
"Low": "Bajo",
"Mid": "Medio",
"Max": "Max",
"Press Cylinder": "Cilindro de prensa",
"Dashboard": "Cuadro de mandos",
"Signals": "Señales",
"Profiles": "Perfiles",
"Advanced": "Avanzado",
"Settings": "Ajustes",
"Network": "Red",
"Coils": "Bobinas",
"Registers": "Registros",
"Charts": "Gráficos",
"Logs": "Registros",
"Favorites": "Favoritos",
"Connect to view register data.": "Conéctate para ver los datos del registro.",
"Cancel": "Cancelar",
"Reset": "Restablecer",
"Disconnect": "Desconecte",
"ONLINE": "EN LÍNEA",
"No register data available. Try refreshing.": "No hay datos de registro disponibles. Prueba a actualizar.",
"Connect to a Modbus server to see controller data.": "Conectarse a un servidor Modbus para ver los datos del controlador.",
"Connected, but no register data received yet. Waiting for data...": "Conectado, pero aún no se han recibido datos de registro. Esperando datos...",
"Start Profile": "Iniciar perfil",
"IDLE": "IDLE",
"Commons": "Comunes",
"Slave Mode": "Modo esclavo",
"When Slave Mode is enabled, all Omron controllers will be disabled for processing.": "Cuando se activa el modo esclavo, todos los controladores Omron se desactivarán para el procesamiento.",
"All Stop": "Todos Stop",
"COM Write": "COM Escribir",
"Set All SP": "Fijar todo SP",
"Total Cost": "Coste total",
"Custom Widgets": "Widgets personalizados",
"Watched Items": "Artículos vigilados",
"DEC": "DEC",
"HEX": "HEX",
"MINLOAD": "CARGA MÍNIMA",
"MAX_TIME": "TIEMPO_MAX",
"STALLED": "BLOQUEADO",
"BALANCE": "BALANCE",
"LOADCELL": "CELDA DE CARGA",
"MULTI_TIMEOUT": "MULTI_TIMEOUT",
"NONE": "NONE",
"MANUAL_MULTI": "MANUAL_MULTI",
"AUTO_MULTI": "AUTO_MULTI",
"AUTO_MULTI_BALANCED": "AUTO_MULTI_BALANCED",
"REMOTE": "REMOTO",
"Temperature Profiles": "Perfiles de temperatura",
"Controller Chart": "Gráfico de controladores",
"Global Settings": "Ajustes globales",
"Show PV": "Mostrar PV",
"Show SP": "Mostrar SP",
"Profile SP": "Perfil SP",
"Window (min)": "Ventana (min)",
"Visible Controllers": "Controladores visibles",
"Cassandra Left": "Cassandra Izquierda",
"Cassandra Right": "Cassandra Derecha",
"Clear Chart": "Gráfico claro",
"Reset Zoom": "Restablecer zoom",
"Export to CSV": "Exportar a CSV",
"Sequential Heating Control": "Control de calefacción secuencial",
"Sequential Heating": "Calentamiento secuencial",
"Heating Time": "Tiempo de calentamiento",
"in seconds": "en segundos",
"Max Simultaneous": "Máximo simultáneo",
"Window Offset": "Desplazamiento de la ventana",
"Start Index": "Inicio Índice",
"End Index": "Índice final",
"Current Status": "Situación actual",
"Unknown": "Desconocido",
"Controller Partitions": "Particiones del controlador",
"Carina": "Carina",
"Stopped": "Detenido",
"SP": "SP",
"Castor": "Ricino",
"Cetus": "Cetus",
"Corona": "Corona",
"Coma B": "Coma B",
"Corvus": "Corvus",
"Crater": "Cráter",
"Crux": "Crux",
"Copy \"{plotName}\" to...": "Copiar \"{plotName}\" a...",
"Select a destination plot. The content of \"{plotName}\" will overwrite the selected plot. This action cannot be undone.": "Seleccione una parcela de destino. El contenido de \"{plotName}\" sobrescribirá la parcela seleccionada. Esta acción no puede deshacerse.",
"Select a plot to overwrite": "Seleccione una parcela para sobrescribir",
"Signal Plot Editor": "Editor de trazados de señales",
"Download All JSON": "Descargar todo JSON",
"Upload All JSON": "Cargar todo el JSON",
"Signal plots configuration loaded from API.": "Configuración de trazados de señales cargada desde la API.",
"Slot:": "Ranura:",
"Enable control unavailable for {name}": "Habilitar control no disponible para {nombre}",
"Total:": "Total:",
"Add a set of sample control points to this plot": "Añadir un conjunto de puntos de control de muestra a este gráfico",
"Remove all control points from this plot": "Eliminar todos los puntos de control de este gráfico",
"Download JSON for {name}": "Descargar JSON para {nombre}",
"Upload JSON for {name}": "Subir JSON para {nombre}",
"Copy this plot to another slot...": "Copiar esta parcela a otra ranura...",
"Slot": "Ranura",
"Duration:": "Duración:",
"Timeline:": "Calendario:",
"Play from start": "Jugar desde el principio",
"Pause": "Pausa",
"Stop and reset": "Parar y reiniciar",
"Control Points": "Puntos de control",
"Control Points List": "Lista de puntos de control",
"Move control point up": "Mover el punto de control hacia arriba",
"Move control point down": "Mover el punto de control hacia abajo",
"Delete control point": "Borrar punto de control",
"Properties:": "Propiedades:",
"Select a control point to see its properties.": "Seleccione un punto de control para ver sus propiedades.",
"Add Samples": "Añadir muestras",
"Clear All CPs": "Borrar todos los CP",
"Download Plot": "Descargar parcela",
"Upload Plot": "Cargar parcela",
"Copy to...": "Copiar a...",
"No Operation": "Ninguna operación",
"Write Coil": "Bobina de escritura",
"Write Holding Register": "Registro de retención de escritura",
"Call Method": "Método de llamada",
"Call Function": "Función de llamada",
"Call REST API": "Llamar a la API REST",
"Write GPIO": "Escribir GPIO",
"Display Message": "Mostrar mensaje",
"User Defined": "Definido por el usuario",
"Pause Profile": "Pausa Perfil",
"Start PID Controllers": "Iniciar controladores PID",
"Stop PID Controllers": "Detener reguladores PID",
"Buzzer: Off": "Timbre: Apagado",
"Buzzer: Solid On": "Timbre: Encendido",
"Buzzer: Slow Blink": "Zumbador: Parpadeo lento",
"Buzzer: Fast Blink": "Zumbador: Parpadeo rápido",
"Buzzer: Long Beep/Short Pause": "Zumbador: Pitido largo/Pausa corta",
"Send IFTTT Notification": "Enviar notificación IFTTT",
"Buzzer": "Zumbador",
"General": "General",
"Hardware I/O": "E/S de hardware",
"Integrations": "Integraciones",
"Modbus": "Modbus",
"PID Control": "Control PID",
"System Calls": "Llamadas al sistema",
"Addr:": "Dirección",
"Run this control point action now": "Ejecute ahora esta acción de punto de control",
"Select type": "Seleccione el tipo",
"Enter CP name": "Introduzca el nombre del PC",
"Enter CP description": "Introduzca la descripción del CP",
"ID:": "ID:",
"Run Action": "Ejecutar acción",
"Time:": "Hora:",
"Scale:": "Escala:",
"State:": "Estado:",
"Type:": "Tipo:",
"CP Name (Optional):": "Nombre del CP (opcional):",
"CP Description (Optional):": "Descripción del CP (opcional):",
"Arguments:": "Argumentos:",
"Argument 0:": "Argumento 0:",
"Argument 1:": "Argumento 1:",
"Argument 2 (Optional):": "Argumento 2 (opcional):",
"Loading profiles from Modbus...": "Cargando perfiles de Modbus...",
"This will permanently clear the profile \"{profileName}\" from the server. This action cannot be undone.": "Esto borrará permanentemente el perfil \"{profileName}\" del servidor. Esta acción no se puede deshacer.",
"Copy \"{profileName}\" to...": "Copiar \"{nombredeperfil}\" a...",
"Select a destination profile. The content of \"{profileName}\" will overwrite the selected profile. This action cannot be undone.": "Seleccione un perfil de destino. El contenido de \"{nombredelperfil}\" sobrescribirá el perfil seleccionado. Esta acción no se puede deshacer.",
"Select a profile to overwrite": "Seleccione un perfil para sobrescribir",
"Help": "Ayuda",
"Download": "Descargar",
"Upload": "Cargar",
"Associated Controllers:": "Controladores asociados:",
"Edit Profile": "Editar perfil",
"Duplicate Profile": "Duplicar perfil",
"Copy to existing slot...": "Copiar en ranura existente...",
"Delete Profile": "Borrar perfil",
"Enabled": "Activado",
"Total": "Total",
"Idle": "Ralentí",
"Start": "Inicio",
"E.g., Quick Ramp Up": "Por ejemplo, Quick Ramp Up",
"Select a signal plot to associate and edit": "Seleccione un trazado de señal para asociar y editar",
"Slave:": "Esclavo:",
"SP CMD Addr:": "SP CMD Addr:",
"Profile Name": "Nombre del perfil",
"Description": "Descripción",
"Duration (hh:mm:ss)": "Duración (hh:mm:ss)",
"Profile Curves": "Curvas de perfil",
"Temperature Control Points": "Puntos de control de temperatura",
"Associated Signal Plot (Optional)": "Gráfico de señales asociadas (opcional)",
"Child Profiles (Sub-plots)": "Perfiles de los niños (subtramas)",
"Selected child profiles will start, stop, pause, and resume with this parent profile.": "Los perfiles hijos seleccionados se iniciarán, detendrán, pausarán y reanudarán con este perfil padre.",
"Target Controllers (Registers)": "Controladores de destino (registros)",
"Add all": "Añadir todo",
"Remove all": "Eliminar todo",
"Export": "Exportar",
"Markdown": "Markdown",
"Import": "Importar",
"Update Profile": "Actualizar perfil",
"None": "Ninguno",
"Signal Control Point Details": "Detalles del punto de control de señales",
"Save Signal Plot": "Guardar trazado de señal",
"Loading Cassandra settings...": "Cargando configuración de Cassandra...",
"General Settings": "Configuración general",
"Master Configuration": "Configuración maestra",
"Master Name": "Nombre principal",
"Slaves": "Esclavos",
"Manage slave devices (max 1).": "Gestionar dispositivos esclavos (máx. 1).",
"Add Slave": "Añadir esclavo",
"Partitions": "Particiones",
"Import JSON": "Importar JSON",
"Export JSON": "Exportar JSON",
"Save All Settings": "Guardar todos los ajustes",
"Loading network settings...": "Cargando configuración de red...",
"Network Settings": "Ajustes de red",
"Hostname": "Nombre de host",
"Device Hostname": "Nombre de host del dispositivo",
"This hostname is used for both STA and AP modes. Changes here will be saved with either form.": "Este nombre de host se utiliza tanto para los modos STA como AP. Los cambios aquí se guardarán con cualquiera de los dos modos.",
"Station (STA) Mode": "Modo Estación (STA)",
"Connects to an existing Wi-Fi network.": "Se conecta a una red Wi-Fi existente.",
"STA SSID": "STA SSID",
"STA Password": "Contraseña STA",
"STA IP Address": "Dirección IP STA",
"STA Gateway": "Pasarela STA",
"STA Subnet Mask": "Máscara de subred STA",
"STA Primary DNS": "STA DNS primario",
"STA Secondary DNS": "STA DNS secundario",
"Save STA Settings": "Guardar ajustes STA",
"Access Point (AP) Mode": "Modo de punto de acceso (AP)",
"Creates its own Wi-Fi network.": "Crea su propia red Wi-Fi.",
"AP SSID": "AP SSID",
"AP Password": "Contraseña AP",
"AP IP Address": "Dirección IP AP",
"AP Gateway": "Pasarela AP",
"AP Subnet Mask": "Máscara de subred AP",
"Save AP Settings": "Guardar configuración AP",
"Enable All": "Activar todo",
"Disable All": "Desactivar todo",
"Operatorswitch": "Interruptor de operador",
"Set All": "Fijar todo",
"Presscylinder": "Cilindro a presión",
"MAXLOAD": "MAXLOAD",
"ERROR": "ERROR",
"OK": "OK",
"OVERLOAD": "SOBRECARGA",
"BALANCE_MAX_DIFF": "BALANCE_MAX_DIFF",
"AUTO_TIMEOUT": "AUTO_TIMEOUT",
"Loadcell[25]": "Célula de carga[25]",
"Loadcell[26]": "Célula de carga[26]",
"Real-time Charts": "Gráficos en tiempo real",
"Real time Charting": "Gráficos en tiempo real",
"X-Axis": "Eje X",
"Refresh Rate": "Frecuencia de actualización",
"Y-Axis Left": "Eje Y Izquierda",
"Min": "Min",
"Series": "Serie",
"Settings...": "Ajustes...",
"Copy...": "Copia...",
"Show Legend": "Mostrar leyenda",
"Apply": "Solicitar",
"CSV": "CSV",
"Pop-out": "Desplegable",
"Save As": "Guardar como",
"Set as Default": "Fijar por defecto",
"Delete": "Borrar",
"Series Toggles": "Interruptores de serie",
"Continue": "Continúe en",
"Stop at end": "Parada al final",
"Restart at end": "Reinicio al final",
"Series settings": "Ajustes de la serie",
"Configure the series to be displayed on the chart.": "Configure las series que se mostrarán en el gráfico.",
"Color": "Color",
"Offset": "Desplazamiento",
"Scale": "Escala",
"Title (Optional)": "Título (opcional)",
"Source": "Fuente",
"File name": "Nombre del fichero",
"Search...": "Buscar...",
"No source found.": "No se ha encontrado ninguna fuente.",
"Select source...": "Seleccionar fuente...",
"Favorite Registers": "Registros favoritos",
"Favorite Coils": "Bobinas favoritas",
"e.g., Start Heating": "p. ej., Iniciar calefacción",
"e.g., Turn on coil for pre-heating stage": "p. ej., encender la bobina para la fase de precalentamiento",
"Select Known Coil...": "Seleccionar bobina conocida...",
"Create New Control Point": "Crear nuevo punto de control",
"Configure the new control point. Press Enter to confirm or Esc to cancel.": "Configure el nuevo punto de control. Pulse Intro para confirmar o Esc para cancelar.",
"Coil to Write:": "Bobina para escribir:",
"Value:": "Valor:",
"ON": "EN",
"Create Control Point": "Crear punto de control",
"Phapp": "Phapp",
"Aux": "Aux",
"Joystick": "Joystick",
"Samplesignalplot 0": "Gráfico de señal de muestreo 0",
"Shortplot 70s": "Trama corta 70s",
"Signalplot 922 Slot 2": "Signalplot 922 Ranura 2",
"Signalplot 923 Slot 3": "Signalplot 923 Ranura 3",
"Delta Vfd[15]": "Delta Vfd[15]",
"none": "ninguno",
"OC": "OC",
"OV": "OV",
"OL": "OL",
"CE": "CE",
"stop": "stop",
"run": "ejecute",
"accel": "accel",
"decel": "decel",
"err": "err",
"fwd": "fwd",
"rev": "rev",
"reset": "reiniciar",
"info": "información",
"setup": "configuración",
"reset_fault": "reset_fault",
"Plunger": "Émbolo",
"HomingMan": "HomingMan",
"HomingAuto": "HomingAuto",
"PlungingMan": "PlungingMan",
"PlungingAuto": "PlungingAuto",
"Stopping": "Detener",
"Jammed": "Atascado",
"ResettingJam": "ReiniciarJam",
"Record": "Registro",
"Replay": "Reproducir",
"Filling": "Relleno",
"PostFlow": "PostFlow",
"Home": "Inicio",
"Plunge": "Sumérgete",
"Info": "Información",
"Fill": "Rellene",
"No coils data available. Try refreshing.": "No hay datos de bobinas disponibles. Prueba a actualizar."
} }

View File

@ -1,350 +1,23 @@
{ {
"Download English Translations": "Télécharger les traductions anglaises", "Image": "Image",
"Connect": "Connecter", "Wizard": "Assistant",
"PolyMech - Cassandra": "PolyMech - Cassandra",
"OFFLINE": "HORS LIGNE",
"System Information": "Informations sur le système",
"API URL": "URL DE L'API",
"System Messages": "Messages du système",
"Clear": "Clair",
"No enabled profile": "Pas de profil activé",
"Stop Profile": "Profil d'arrêt",
"N/A": "N/A",
"Press": "Presse",
"Stop": "Arrêter",
"MANUAL": "MANUEL",
"AUTO": "AUTO",
"MANUAL MULTI": "MANUEL MULTI",
"AUTO MULTI": "AUTO MULTI",
"AUTO MULTI BALANCED": "AUTO MULTI BALANCED",
"Press Cylinder Controls": "Contrôle des cylindres de presse",
"PV": "PV",
"Mode": "Mode",
"SP:": "SP :",
"Interlocked": "Enchevêtrés",
"Low": "Faible",
"Mid": "Moyen",
"Max": "Max",
"Press Cylinder": "Cylindre de presse",
"Dashboard": "Tableau de bord",
"Signals": "Signaux",
"Profiles": "Profils",
"Advanced": "Avancé",
"Settings": "Paramètres", "Settings": "Paramètres",
"Network": "Réseau", "Google AI API Key": "Clé API Google AI",
"Coils": "Bobines", "API key configured": "Clé API configurée",
"Registers": "Registres", "API key required for image generation": "Clé API requise pour la génération d'images",
"Charts": "Graphiques", "Get your API key from": "Obtenez votre clé API depuis",
"Logs": "Journaux", "Google AI Studio": "Google AI Studio",
"Favorites": "Favoris", "Theme": "Thème",
"Connect to view register data.": "Se connecter pour visualiser les données du registre.", "Choose your preferred color scheme": "Choisissez votre schéma de couleurs préféré",
"Cancel": "Annuler", "Save Settings": "Enregistrer les paramètres",
"Reset": "Remise à zéro", "Generate Image": "Générer l'image",
"Disconnect": "Déconnexion", "Generating...": "Génération en cours...",
"ONLINE": "EN LIGNE", "Styles": "Styles",
"No register data available. Try refreshing.": "Aucune donnée de registre disponible. Essayer de rafraîchir.", "Actions": "Actions",
"Connect to a Modbus server to see controller data.": "Se connecter à un serveur Modbus pour consulter les données du contrôleur.", "Output File Path": "Chemin du fichier de sortie",
"Connected, but no register data received yet. Waiting for data...": "Connecté, mais aucune donnée de registre n'a encore été reçue. En attente de données...", "Browse": "Parcourir",
"Start Profile": "Démarrer le profil", "Select Images (or Drop Here)": "Sélectionner des images (ou déposer ici)",
"IDLE": "IDLE", "Templates": "Modèles",
"Commons": "Communes", "No templates saved yet": "Aucun modèle enregistré pour le moment",
"Slave Mode": "Mode esclave", "Manage": "Gérer"
"When Slave Mode is enabled, all Omron controllers will be disabled for processing.": "Lorsque le mode esclave est activé, tous les contrôleurs Omron sont désactivés pour le traitement.",
"All Stop": "Tous les arrêts",
"COM Write": "COM Écriture",
"Set All SP": "Set All SP",
"Total Cost": "Coût total",
"Custom Widgets": "Widgets personnalisés",
"Watched Items": "Articles surveillés",
"DEC": "DEC",
"HEX": "HEX",
"MINLOAD": "CHARGE MIN",
"MAX_TIME": "MAX_TIME",
"STALLED": "STALLED",
"BALANCE": "ÉQUILIBRE",
"LOADCELL": "LOADCELL",
"MULTI_TIMEOUT": "MULTI_TIMEOUT",
"NONE": "AUCUN",
"MANUAL_MULTI": "MANUEL_MULTI",
"AUTO_MULTI": "AUTO_MULTI",
"AUTO_MULTI_BALANCED": "AUTO_MULTI_BALANCED",
"REMOTE": "REMOTE",
"Temperature Profiles": "Profils de température",
"Controller Chart": "Tableau des contrôleurs",
"Global Settings": "Paramètres globaux",
"Show PV": "Afficher le PV",
"Show SP": "Spectacle SP",
"Profile SP": "Profil SP",
"Window (min)": "Fenêtre (min)",
"Visible Controllers": "Contrôleurs visibles",
"Cassandra Left": "Cassandra Left",
"Cassandra Right": "Cassandra Right",
"Clear Chart": "Graphique clair",
"Reset Zoom": "Réinitialiser le zoom",
"Export to CSV": "Exporter vers CSV",
"Sequential Heating Control": "Contrôle séquentiel du chauffage",
"Sequential Heating": "Chauffage séquentiel",
"Heating Time": "Temps de chauffage",
"in seconds": "en secondes",
"Max Simultaneous": "Maximale simultanée",
"Window Offset": "Décalage de la fenêtre",
"Start Index": "Index de départ",
"End Index": "Index de fin",
"Current Status": "Statut actuel",
"Unknown": "Inconnu",
"Controller Partitions": "Partitions du contrôleur",
"Carina": "Carina",
"Stopped": "Arrêtée",
"SP": "SP",
"Castor": "Castor",
"Cetus": "Cetus",
"Corona": "Corona",
"Coma B": "Coma B",
"Corvus": "Corvus",
"Crater": "Cratère",
"Crux": "Crux",
"Copy \"{plotName}\" to...": "Copier \"{nom du graphe}\" dans...",
"Select a destination plot. The content of \"{plotName}\" will overwrite the selected plot. This action cannot be undone.": "Sélectionnez une parcelle de destination. Le contenu de \"{nom du graphe}\" remplacera le graphe sélectionné. Cette action ne peut être annulée.",
"Select a plot to overwrite": "Sélectionner une parcelle à écraser",
"Signal Plot Editor": "Éditeur de tracés de signaux",
"Download All JSON": "Télécharger tous les JSON",
"Upload All JSON": "Télécharger tous les JSON",
"Signal plots configuration loaded from API.": "Configuration des tracés de signaux chargée à partir de l'API.",
"Slot:": "Crémaillère :",
"Enable control unavailable for {name}": "Activer le contrôle indisponible pour {nom}",
"Total:": "Total :",
"Add a set of sample control points to this plot": "Ajouter un ensemble de points de contrôle de l'échantillon à ce tracé",
"Remove all control points from this plot": "Supprimer tous les points de contrôle de ce tracé",
"Download JSON for {name}": "Télécharger le JSON pour {nom}",
"Upload JSON for {name}": "Télécharger le JSON pour {nom}",
"Copy this plot to another slot...": "Copier cette parcelle dans un autre emplacement...",
"Slot": "Fente",
"Duration:": "Durée de l'enquête :",
"Timeline:": "Calendrier :",
"Play from start": "Jouer depuis le début",
"Pause": "Pause",
"Stop and reset": "Arrêt et réinitialisation",
"Control Points": "Points de contrôle",
"Control Points List": "Liste des points de contrôle",
"Move control point up": "Déplacer le point de contrôle vers le haut",
"Move control point down": "Déplacer le point de contrôle vers le bas",
"Delete control point": "Supprimer le point de contrôle",
"Properties:": "Propriétés :",
"Select a control point to see its properties.": "Sélectionnez un point de contrôle pour afficher ses propriétés.",
"Add Samples": "Ajouter des échantillons",
"Clear All CPs": "Effacer tous les CP",
"Download Plot": "Télécharger la parcelle",
"Upload Plot": "Télécharger le tracé",
"Copy to...": "Copier sur...",
"No Operation": "Pas d'opération",
"Write Coil": "Bobine d'écriture",
"Write Holding Register": "Écriture du registre de maintien",
"Call Method": "Méthode d'appel",
"Call Function": "Appeler la fonction",
"Call REST API": "Appeler l'API REST",
"Write GPIO": "Écriture GPIO",
"Display Message": "Message d'affichage",
"User Defined": "Défini par l'utilisateur",
"Pause Profile": "Pause Profil",
"Start PID Controllers": "Démarrer les contrôleurs PID",
"Stop PID Controllers": "Arrêter les contrôleurs PID",
"Buzzer: Off": "Buzzer : Désactivé",
"Buzzer: Solid On": "Buzzer : Allumé en permanence",
"Buzzer: Slow Blink": "Buzzer : Clignotement lent",
"Buzzer: Fast Blink": "Buzzer : Clignotement rapide",
"Buzzer: Long Beep/Short Pause": "Buzzer : Bip long/Pause courte",
"Send IFTTT Notification": "Envoyer une notification IFTTT",
"Buzzer": "Buzzer",
"General": "Général",
"Hardware I/O": "E/S matérielles",
"Integrations": "Intégrations",
"Modbus": "Modbus",
"PID Control": "Contrôle PID",
"System Calls": "Appels du système",
"Addr:": "Addr :",
"Run this control point action now": "Exécuter cette action de point de contrôle maintenant",
"Select type": "Sélectionner le type",
"Enter CP name": "Saisir le nom du CP",
"Enter CP description": "Saisir la description de la PC",
"ID:": "ID :",
"Run Action": "Exécuter l'action",
"Time:": "Le temps :",
"Scale:": "Échelle :",
"State:": "État :",
"Type:": "Type :",
"CP Name (Optional):": "Nom du CP (facultatif) :",
"CP Description (Optional):": "CP Description (facultatif) :",
"Arguments:": "Arguments :",
"Argument 0:": "Argument 0 :",
"Argument 1:": "Argument 1 :",
"Argument 2 (Optional):": "Argument 2 (facultatif) :",
"Loading profiles from Modbus...": "Chargement des profils de Modbus...",
"This will permanently clear the profile \"{profileName}\" from the server. This action cannot be undone.": "Cette action efface définitivement le profil \"{nomduprofil}\" du serveur. Cette action ne peut pas être annulée.",
"Copy \"{profileName}\" to...": "Copier \"{nomduprofil}\" dans...",
"Select a destination profile. The content of \"{profileName}\" will overwrite the selected profile. This action cannot be undone.": "Sélectionnez un profil de destination. Le contenu de \"{nomduprofil}\" remplacera le profil sélectionné. Cette action ne peut être annulée.",
"Select a profile to overwrite": "Sélectionner un profil à écraser",
"Help": "Aide",
"Download": "Télécharger",
"Upload": "Télécharger",
"Associated Controllers:": "Contrôleurs associés :",
"Edit Profile": "Modifier le profil",
"Duplicate Profile": "Profil en double",
"Copy to existing slot...": "Copier dans un emplacement existant...",
"Delete Profile": "Supprimer le profil",
"Enabled": "Activé",
"Total": "Total",
"Idle": "Au repos",
"Start": "Démarrage",
"E.g., Quick Ramp Up": "Par exemple, une montée en puissance rapide",
"Select a signal plot to associate and edit": "Sélectionner un tracé de signal à associer et à éditer",
"Slave:": "Esclave :",
"SP CMD Addr:": "SP CMD Addr :",
"Profile Name": "Nom du profil",
"Description": "Description",
"Duration (hh:mm:ss)": "Durée (hh:mm:ss)",
"Profile Curves": "Courbes de profil",
"Temperature Control Points": "Points de contrôle de la température",
"Associated Signal Plot (Optional)": "Tracé du signal associé (optionnel)",
"Child Profiles (Sub-plots)": "Profils d'enfants (sous-intrigues)",
"Selected child profiles will start, stop, pause, and resume with this parent profile.": "Les profils enfants sélectionnés démarrent, s'arrêtent, se mettent en pause et reprennent avec ce profil parent.",
"Target Controllers (Registers)": "Contrôleurs cibles (registres)",
"Add all": "Ajouter tout",
"Remove all": "Supprimer tout",
"Export": "Exportation",
"Markdown": "Markdown",
"Import": "Importation",
"Update Profile": "Mise à jour du profil",
"None": "Aucun",
"Signal Control Point Details": "Détails des points de contrôle des signaux",
"Save Signal Plot": "Sauvegarder le tracé du signal",
"Loading Cassandra settings...": "Chargement des paramètres de Cassandra...",
"General Settings": "Paramètres généraux",
"Master Configuration": "Configuration principale",
"Master Name": "Nom du maître",
"Slaves": "Esclaves",
"Manage slave devices (max 1).": "Gérer les dispositifs esclaves (1 au maximum).",
"Add Slave": "Ajouter un esclave",
"Partitions": "Cloisons",
"Import JSON": "Importer JSON",
"Export JSON": "Exporter JSON",
"Save All Settings": "Sauvegarder tous les paramètres",
"Loading network settings...": "Chargement des paramètres réseau...",
"Network Settings": "Paramètres du réseau",
"Hostname": "Nom d'hôte",
"Device Hostname": "Nom d'hôte du dispositif",
"This hostname is used for both STA and AP modes. Changes here will be saved with either form.": "Ce nom d'hôte est utilisé pour les modes STA et AP. Les modifications apportées ici seront enregistrées sous l'une ou l'autre forme.",
"Station (STA) Mode": "Mode station (STA)",
"Connects to an existing Wi-Fi network.": "Se connecte à un réseau Wi-Fi existant.",
"STA SSID": "STA SSID",
"STA Password": "Mot de passe STA",
"STA IP Address": "Adresse IP de la STA",
"STA Gateway": "Passerelle STA",
"STA Subnet Mask": "STA Masque de sous-réseau",
"STA Primary DNS": "STA DNS primaire",
"STA Secondary DNS": "STA DNS secondaire",
"Save STA Settings": "Sauvegarder les paramètres de la STA",
"Access Point (AP) Mode": "Mode point d'accès (AP)",
"Creates its own Wi-Fi network.": "Crée son propre réseau Wi-Fi.",
"AP SSID": "AP SSID",
"AP Password": "Mot de passe AP",
"AP IP Address": "Adresse IP de l'AP",
"AP Gateway": "Passerelle AP",
"AP Subnet Mask": "Masque de sous-réseau de l'AP",
"Save AP Settings": "Sauvegarder les paramètres de l'AP",
"Enable All": "Activer tout",
"Disable All": "Désactiver tout",
"Operatorswitch": "Commutateur de l'opérateur",
"Set All": "Tout régler",
"Presscylinder": "Presscylindre",
"MAXLOAD": "CHARGE MAXIMALE",
"ERROR": "ERREUR",
"OK": "OK",
"OVERLOAD": "SURCHARGE",
"BALANCE_MAX_DIFF": "BALANCE_MAX_DIFF",
"AUTO_TIMEOUT": "AUTO_TIMEOUT",
"Loadcell[25]": "Capteur de charge[25]",
"Loadcell[26]": "Capteur de charge[26]",
"Real-time Charts": "Graphiques en temps réel",
"Real time Charting": "Graphiques en temps réel",
"X-Axis": "Axe X",
"Refresh Rate": "Taux de rafraîchissement",
"Y-Axis Left": "Axe Y gauche",
"Min": "Min",
"Series": "Série",
"Settings...": "Paramètres...",
"Copy...": "Copier...",
"Show Legend": "Afficher la légende",
"Apply": "Appliquer",
"CSV": "CSV",
"Pop-out": "Pop-out",
"Save As": "Enregistrer sous",
"Set as Default": "Définir par défaut",
"Delete": "Supprimer",
"Series Toggles": "Série Toggles",
"Continue": "Continuer",
"Stop at end": "Arrêter à la fin",
"Restart at end": "Redémarrage à la fin",
"Series settings": "Paramètres de la série",
"Configure the series to be displayed on the chart.": "Configurez la série à afficher sur le graphique.",
"Color": "Couleur",
"Offset": "Décalage",
"Scale": "Échelle",
"Title (Optional)": "Titre (facultatif)",
"Source": "Source",
"File name": "Nom du fichier",
"Search...": "Recherche...",
"No source found.": "Aucune source n'a été trouvée.",
"Select source...": "Sélectionner la source...",
"Favorite Registers": "Registres préférés",
"Favorite Coils": "Bobines préférées",
"e.g., Start Heating": "par exemple, Démarrer le chauffage",
"e.g., Turn on coil for pre-heating stage": "par exemple, allumer le serpentin pour la phase de préchauffage",
"Select Known Coil...": "Sélectionner la bobine connue...",
"Create New Control Point": "Créer un nouveau point de contrôle",
"Configure the new control point. Press Enter to confirm or Esc to cancel.": "Configurez le nouveau point de contrôle. Appuyez sur Enter pour confirmer ou sur Esc pour annuler.",
"Coil to Write:": "La bobine pour écrire :",
"Value:": "Valeur :",
"ON": "ON",
"Create Control Point": "Créer un point de contrôle",
"Phapp": "Phapp",
"Aux": "Aux",
"Joystick": "Manette",
"Samplesignalplot 0": "Diagramme de signaux d'échantillonnage 0",
"Shortplot 70s": "Raccourci 70s",
"Signalplot 922 Slot 2": "Signalplot 922 Slot 2",
"Signalplot 923 Slot 3": "Signalplot 923 Slot 3",
"Delta Vfd[15]": "Delta Vfd[15]",
"none": "aucun",
"OC": "OC",
"OV": "OV",
"OL": "LO",
"CE": "CE",
"stop": "arrêter",
"run": "courir",
"accel": "accel",
"decel": "décélérer",
"err": "errer",
"fwd": "en avant",
"rev": "réviser",
"reset": "réinitialiser",
"info": "info",
"setup": "configuration",
"reset_fault": "défaut_réinitialisation",
"Plunger": "Plongeur",
"HomingMan": "HomingMan",
"HomingAuto": "HomingAuto",
"PlungingMan": "L'homme en plongée",
"PlungingAuto": "PlongeantAuto",
"Stopping": "Arrêter",
"Jammed": "Bloqué",
"ResettingJam": "Réinitialisation du blocage",
"Record": "Enregistrer",
"Replay": "Replay",
"Filling": "Remplissage",
"PostFlow": "PostFlow",
"Home": "Accueil",
"Plunge": "Plongée",
"Info": "Info",
"Fill": "Remplir",
"No coils data available. Try refreshing.": "Aucune donnée sur les bobines n'est disponible. Essayez d'actualiser."
} }

View File

@ -1,442 +0,0 @@
import React, { useMemo } from 'react';
import { useModbus } from '@/contexts/ModbusContext';
import type { RegisterData } from '@/contexts/ModbusContext';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { T } from '../i18n';
import CassandraControllerCard from './CassandraControllerCard';
import SequentialHeatingCard from './SequentialHeatingCard';
import ControllerChart from './ControllerChart';
import { Progress } from "@/components/ui/progress";
import { PlotStatus, type Profile, TemperatureProfileCommand } from "@/types";
import { Play, Pause, StopCircle } from "lucide-react";
import { Button } from "@/components/ui/button";
import { useToast } from "@/components/ui/use-toast";
import CollapsibleSection from './CollapsibleSection';
import Commons from './Commons';
import VFDControls from './VFDControls';
import {
PV_REGISTER_NAME_SUFFIX,
SP_CMD_COMMAND_REGISTER_PREFIX,
PROFILE_REGISTER_NAMES
} from '@/constants';
import {
getSlaveIdFromGroup,
ControllerConfig,
getControllerStatus
} from '@/lib/controllerUtils';
interface ControllerDisplayData {
slaveid: number;
name: string;
pv: number | string;
sp: number | string;
isRunning: boolean;
// hasAlarm: boolean;
isAutoTuning: boolean;
hasHeaterBreak: boolean;
hasSensorBreak: boolean;
mode: 'manual' | 'auto' | 'cascade' | 'program' | 'unknown';
currentProfileName?: string | null;
isHeating: boolean;
}
interface PartitionDisplayData {
name: string;
controllers: ControllerDisplayData[];
}
const STATUS_HIGH_REGISTER_NAME = "Status High";
const STATUS_LOW_REGISTER_NAME = "Status Low";
const CassandraHMIDisplay = () => {
const {
registers: allModbusRegisters,
profiles: contextProfiles,
updateRegister,
isConnected,
settings,
featureFlags
} = useModbus();
const { toast } = useToast();
const liveUiProfiles = useMemo((): Profile[] => {
if (!contextProfiles || !allModbusRegisters) return [];
return contextProfiles.map(pService => {
let liveStatus: PlotStatus | undefined = pService.status;
let liveElapsed: number | undefined = pService.elapsed;
let liveCurrentTemp: number | undefined = pService.currentTemp;
const statusRegister = allModbusRegisters.find(
r => r.group === pService.name && r.name.startsWith(PROFILE_REGISTER_NAMES.STATUS)
);
if (statusRegister && typeof statusRegister.value === 'number' && statusRegister.value in PlotStatus) {
liveStatus = statusRegister.value as PlotStatus;
}
const currentTempRegister = allModbusRegisters.find(
r => r.group === pService.name && r.name === PROFILE_REGISTER_NAMES.CURRENT_VALUE
);
if (currentTempRegister && typeof currentTempRegister.value === 'number') {
liveCurrentTemp = currentTempRegister.value;
}
const elapsedRegister = allModbusRegisters.find(
r => r.group === pService.name && r.name === PROFILE_REGISTER_NAMES.ELAPSED
);
if (elapsedRegister && typeof elapsedRegister.value === 'number') {
liveElapsed = elapsedRegister.value * 1000; // Convert seconds to milliseconds
}
return {
...pService,
status: liveStatus,
elapsed: liveElapsed,
currentTemp: liveCurrentTemp,
};
});
}, [contextProfiles, allModbusRegisters]);
const activeUiProfiles = useMemo((): Profile[] => {
if (!liveUiProfiles) return [];
return liveUiProfiles.filter(
profile => profile.enabled || profile.status === PlotStatus.RUNNING || profile.status === PlotStatus.PAUSED || profile.status === PlotStatus.INITIALIZING
);
}, [liveUiProfiles]);
const handleHmiProfileCommand = async (profile: Profile | null, command: TemperatureProfileCommand) => {
if (!profile || !profile.name) {
toast({ title: "Command Error", description: "Invalid profile data for command (missing name).", variant: "destructive" });
return;
}
if (!isConnected) {
toast({ title: "Error", description: "Not connected to Modbus server.", variant: "destructive" });
return;
}
const commandRegisterEntry = allModbusRegisters.find(
reg => reg.group === profile.name && reg.name === PROFILE_REGISTER_NAMES.COMMAND
);
if (!commandRegisterEntry) {
toast({
title: "Command Error",
description: `Command register (Group: ${profile.name}, Name: ${PROFILE_REGISTER_NAMES.COMMAND}) not found.`,
variant: "destructive"
});
return;
}
try {
await updateRegister(commandRegisterEntry.address, command);
toast({
title: "Profile Command Sent",
description: `${TemperatureProfileCommand[command]} command sent to profile '${profile.name}'.`
});
} catch (error) {
toast({
title: "Command Failed",
description: `Failed to send command to profile '${profile.name}': ${error instanceof Error ? error.message : String(error)}`,
variant: "destructive"
});
}
};
const processedData = useMemo((): PartitionDisplayData[] => {
if (!settings) return [];
return settings.partitions.map(partition => {
let controllerConfigs: ControllerConfig[] = [];
if (partition.controllers && partition.controllers.length > 0) {
controllerConfigs = partition.controllers.filter(c => c.enabled);
} else if (partition.startslaveid !== undefined && partition.numcontrollers !== undefined) {
for (let i = 0; i < partition.numcontrollers; i++) {
controllerConfigs.push({
slaveid: partition.startslaveid + i,
name: `Controller ${partition.startslaveid + i}`,
enabled: true // Assume auto-generated are enabled
});
}
}
const controllersData: ControllerDisplayData[] = controllerConfigs.map(config => {
const pvRegister = allModbusRegisters.find((reg: RegisterData) =>
getSlaveIdFromGroup(reg.group) === config.slaveid && reg.name.endsWith(PV_REGISTER_NAME_SUFFIX)
);
const statusHighRegister = allModbusRegisters.find((reg: RegisterData) =>
getSlaveIdFromGroup(reg.group) === config.slaveid && reg.name === STATUS_HIGH_REGISTER_NAME
);
const statusLowRegister = allModbusRegisters.find((reg: RegisterData) =>
getSlaveIdFromGroup(reg.group) === config.slaveid && reg.name === STATUS_LOW_REGISTER_NAME
);
const status = getControllerStatus(statusHighRegister, statusLowRegister);
let activeProfileName: string | null = null;
const spCmdRegisterForController = allModbusRegisters.find(
reg => getSlaveIdFromGroup(reg.group) === config.slaveid &&
reg.name.startsWith(SP_CMD_COMMAND_REGISTER_PREFIX)
);
if (spCmdRegisterForController && liveUiProfiles) {
const controllerSpCmdAddress = spCmdRegisterForController.address;
for (const profile of liveUiProfiles) {
if ((profile.status === PlotStatus.RUNNING || profile.status === PlotStatus.PAUSED) &&
profile.targetRegisters &&
profile.targetRegisters.includes(controllerSpCmdAddress)) {
activeProfileName = profile.name;
break;
}
}
}
return {
slaveid: config.slaveid,
name: config.name,
pv: pvRegister ? pvRegister.value : "N/A",
sp: "N/A",
...status,
currentProfileName: activeProfileName,
isHeating: status.isHeating,
};
});
return {
name: partition.name,
controllers: controllersData,
};
});
}, [allModbusRegisters, liveUiProfiles, settings]);
if (!isConnected && (!allModbusRegisters || allModbusRegisters.length === 0)) {
return (
<div className="p-4 text-center">
<p className="text-muted-foreground"><T>Connect to a Modbus server to see controller data.</T></p>
</div>
);
}
if (allModbusRegisters.length === 0 && isConnected) {
return (
<div className="p-4 text-center">
<p className="text-muted-foreground"><T>Connected, but no register data received yet. Waiting for data...</T></p>
</div>
);
}
return (
<div className="space-y-3 md:space-y-6" id="cassandra-hmi-display">
<CollapsibleSection
title={<T>Commons</T>}
storageKey="hmi-commons-collapsible"
initiallyOpen={false}
className="glass-panel"
headerClassName="flex justify-between items-center p-3 rounded-t-lg"
contentClassName="p-3 glass-card rounded-b-lg"
titleClassName="text-lg font-semibold glass-text"
buttonClassName="text-slate-600 dark:text-white/80 hover:text-slate-800 dark:hover:text-white"
>
<Commons />
</CollapsibleSection>
{featureFlags.ENABLE_SAKO_VFD && (
<CollapsibleSection
title={<T>VFD Control</T>}
storageKey="hmi-vfd-collapsible"
className="glass-panel"
headerClassName="flex justify-between items-center p-3 rounded-t-lg"
contentClassName="p-3 glass-card rounded-b-lg"
titleClassName="text-lg font-semibold glass-text"
buttonClassName="text-slate-600 dark:text-white/80 hover:text-slate-800 dark:hover:text-white"
>
<VFDControls />
</CollapsibleSection>
)}
{activeUiProfiles.length > 0 && (
<CollapsibleSection
title={<T>Temperature Profiles</T>}
storageKey="hmi-profiles-collapsible"
className="glass-panel"
headerClassName="flex justify-between items-center p-3 rounded-t-lg"
contentClassName="p-3 glass-card rounded-b-lg"
titleClassName="text-lg font-semibold accent-text"
buttonClassName="text-slate-600 dark:text-white/80 hover:text-slate-800 dark:hover:text-white"
>
<div className="space-y-3 pt-2">
{activeUiProfiles.map(profile => (
<Card key={profile.slot} className="glass-card shadow-xl w-full">
<CardHeader className="pb-2 pt-3 flex flex-row justify-between items-center">
<CardTitle className="text-md font-semibold text-slate-700 dark:text-white">
{profile.status === PlotStatus.RUNNING ? 'Running Profile: ' :
profile.status === PlotStatus.PAUSED ? 'Paused Profile: ' :
'Profile: '}
<span className="text-indigo-600 dark:text-cyan-400 font-bold">{profile.name}</span>
<span> (Slot: {profile.slot})</span>
</CardTitle>
<div className="flex items-center space-x-2">
{profile.enabled && profile.status !== PlotStatus.RUNNING && profile.status !== PlotStatus.PAUSED && (
<Button
onClick={() => handleHmiProfileCommand(profile, TemperatureProfileCommand.START)}
title="Start Profile"
className="px-2 py-1 h-auto glass-button status-gradient-connected text-white border-0"
>
<Play className="h-4 w-4 mr-1" /> Start
</Button>
)}
{profile.status === PlotStatus.RUNNING && (
<Button
onClick={() => handleHmiProfileCommand(profile, TemperatureProfileCommand.PAUSE)}
title="Pause Profile"
className="px-2 py-1 h-auto glass-button bg-gradient-to-r from-amber-400 to-orange-500 text-white border-0"
disabled={!profile.enabled}
>
<Pause className="h-4 w-4 mr-1" /> Pause
</Button>
)}
{profile.status === PlotStatus.PAUSED && (
<Button
onClick={() => handleHmiProfileCommand(profile, TemperatureProfileCommand.RESUME)}
title="Resume Profile"
className="px-2 py-1 h-auto glass-button status-gradient-connected text-white border-0"
disabled={!profile.enabled}
>
<Play className="h-4 w-4 mr-1" /> Resume
</Button>
)}
{(profile.status === PlotStatus.RUNNING || profile.status === PlotStatus.PAUSED) && (
<Button
onClick={() => handleHmiProfileCommand(profile, TemperatureProfileCommand.STOP)}
title="Stop Profile"
className="px-2 py-1 h-auto glass-button status-gradient-error text-white border-0"
disabled={!profile.enabled}
>
<StopCircle className="h-4 w-4 mr-1" /> Stop
</Button>
)}
</div>
</CardHeader>
<CardContent className="pt-1 pb-3">
{(profile.status === PlotStatus.RUNNING || profile.status === PlotStatus.PAUSED) &&
profile.duration > 0 && (
<div className="space-y-2 pt-1">
{profile.currentTemp !== undefined && (
<div className="text-center">
<span className="font-bold text-lg text-indigo-600 dark:text-cyan-400">{profile.currentTemp.toFixed(1)}°C</span>
</div>
)}
{profile.elapsed !== undefined && (
<>
<Progress
value={(profile.elapsed / profile.duration) * 100}
className="w-full h-3 glass-progress"
/>
<div className="text-xs text-slate-500 dark:text-slate-400 flex justify-between">
<span>
<T>Elapsed</T>: {Math.floor(profile.elapsed / 60000)}m {Math.floor((profile.elapsed % 60000) / 1000)}s
</span>
<span>
<T>Total</T>: {Math.floor(profile.duration / 60000)}m {Math.floor((profile.duration % 60000) / 1000)}s
</span>
</div>
</>
)}
</div>
)}
{profile.status === PlotStatus.PAUSED && profile.elapsed === undefined && (
<div className="text-xs text-slate-500 dark:text-slate-400">
<span><T>Total Duration</T>: {Math.floor(profile.duration / 60000)}m {Math.floor((profile.duration % 60000) / 1000)}s - <T>Paused</T></span>
</div>
)}
</CardContent>
</Card>
))}
</div>
</CollapsibleSection>
)}
{featureFlags.ENABLE_OMRON_E5 && (
<CollapsibleSection
title={<T>Controller Chart</T>}
storageKey="hmi-chart-collapsible"
id="hmi-chart-collapsible"
className="glass-panel"
headerClassName="flex justify-between items-center p-3 rounded-t-lg"
contentClassName="p-3 glass-card rounded-b-lg"
titleClassName="text-lg font-semibold glass-text"
buttonClassName="text-slate-600 dark:text-white/80 hover:text-slate-800 dark:hover:text-white"
>
<ControllerChart />
</CollapsibleSection>
)}
{featureFlags.ENABLE_AMPERAGE_BUDGET_MANAGER && (
<CollapsibleSection
title={<T>Sequential Heating Control</T>}
storageKey="hmi-sequential-heating-collapsible"
id="hmi-sequential-heating-collapsible"
className="glass-panel"
headerClassName="flex justify-between items-center p-3 rounded-t-lg"
contentClassName="p-3 glass-card rounded-b-lg"
titleClassName="text-lg font-semibold glass-text"
buttonClassName="text-slate-600 dark:text-white/80 hover:text-slate-800 dark:hover:text-white"
>
<SequentialHeatingCard />
</CollapsibleSection>
)}
{featureFlags.ENABLE_OMRON_E5 && (
<CollapsibleSection
title={<T>Controller Partitions</T>}
storageKey="hmi-partitions-collapsible"
className="glass-panel"
headerClassName="flex justify-between items-center p-3 rounded-t-lg"
contentClassName="p-3 glass-card rounded-b-lg"
titleClassName="text-lg font-semibold glass-text"
buttonClassName="text-slate-600 dark:text-white/80 hover:text-slate-800 dark:hover:text-white"
>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4 pt-2" id="hmi-partitions-container">
{processedData.map(partition => (
<Card key={partition.name} className="glass-card shadow-xl flex flex-col" id={`hmi-partition-${partition.name.replace(/\s+/g, '-')}`}>
<CardHeader>
<CardTitle className="text-lg glass-text"><T>{partition.name}</T></CardTitle>
</CardHeader>
<CardContent className="space-y-3 flex-grow">
{partition.controllers.length === 0 ? (
<p className="text-sm text-slate-500 dark:text-slate-400"><T>No controllers configured or found for this partition.</T></p>
) : (
partition.controllers.map((controller, index) => (
<React.Fragment key={controller.slaveid}>
<CassandraControllerCard
slaveId={controller.slaveid}
name={controller.name}
pv={controller.pv}
isRunning={controller.isRunning}
//hasAlarm={controller.hasAlarm}
isAutoTuning={controller.isAutoTuning}
hasHeaterBreak={controller.hasHeaterBreak}
hasSensorBreak={controller.hasSensorBreak}
mode={controller.mode}
currentProfile={controller.currentProfileName}
isHeating={controller.isHeating}
/>
{(index + 1) % 2 === 0 && index < partition.controllers.length - 1 && (
<div className="border-t border-slate-300/30 dark:border-white/10 my-3" />
)}
</React.Fragment>
))
)}
</CardContent>
</Card>
))}
</div>
</CollapsibleSection>
)}
</div>
);
};
export default CassandraHMIDisplay;

View File

@ -1,4 +1,5 @@
@import "tailwindcss"; @import "tailwindcss";
@import "./components.css";
/* Dark mode variant for class-based toggling */ /* Dark mode variant for class-based toggling */
@custom-variant dark (&:where(.dark, .dark *)); @custom-variant dark (&:where(.dark, .dark *));
@ -17,7 +18,7 @@
} }
body { body {
@apply bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 transition-colors duration-200; @apply bg-white dark:bg-gray-900 text-gray-900 dark:text-white transition-colors duration-200;
} }
/* Debug: Force dark mode styles to ensure they're working */ /* Debug: Force dark mode styles to ensure they're working */
@ -1035,3 +1036,26 @@
max-width: 100%; max-width: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
/* High contrast dark mode overrides - ensure these load last */
.dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark h6 {
color: #ffffff !important;
}
.dark .text-slate-700,
.dark .text-slate-600,
.dark .text-slate-500,
.dark .text-slate-400,
.dark .text-slate-300 {
color: #ffffff !important;
}
.dark .border-slate-700,
.dark .border-slate-600,
.dark .border-slate-500 {
border-color: rgba(255, 255, 255, 0.3) !important;
}
.dark .bg-slate-800 {
background-color: rgba(30, 41, 59, 0.95) !important;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,11 +2,11 @@ export enum E_OPENAI_MODEL {
MODEL_GPT_4_0613 = "gpt-4-0613", MODEL_GPT_4_0613 = "gpt-4-0613",
MODEL_GPT_4 = "gpt-4", MODEL_GPT_4 = "gpt-4",
MODEL_GPT_3_5_TURBO = "gpt-3.5-turbo", MODEL_GPT_3_5_TURBO = "gpt-3.5-turbo",
MODEL_CHATGPT_IMAGE_LATEST = "chatgpt-image-latest", MODEL_GPT_5_2_CODEX = "gpt-5.2-codex",
MODEL_GPT_4O_MINI_TTS_2025_03_20 = "gpt-4o-mini-tts-2025-03-20",
MODEL_GPT_4O_MINI_TTS_2025_12_15 = "gpt-4o-mini-tts-2025-12-15", MODEL_GPT_4O_MINI_TTS_2025_12_15 = "gpt-4o-mini-tts-2025-12-15",
MODEL_GPT_REALTIME_MINI_2025_12_15 = "gpt-realtime-mini-2025-12-15", MODEL_GPT_REALTIME_MINI_2025_12_15 = "gpt-realtime-mini-2025-12-15",
MODEL_GPT_AUDIO_MINI_2025_12_15 = "gpt-audio-mini-2025-12-15", MODEL_GPT_AUDIO_MINI_2025_12_15 = "gpt-audio-mini-2025-12-15",
MODEL_CHATGPT_IMAGE_LATEST = "chatgpt-image-latest",
MODEL_DAVINCI_002 = "davinci-002", MODEL_DAVINCI_002 = "davinci-002",
MODEL_BABBAGE_002 = "babbage-002", MODEL_BABBAGE_002 = "babbage-002",
MODEL_GPT_3_5_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct", MODEL_GPT_3_5_TURBO_INSTRUCT = "gpt-3.5-turbo-instruct",
@ -109,6 +109,7 @@ export enum E_OPENAI_MODEL {
MODEL_GPT_5_2_CHAT_LATEST = "gpt-5.2-chat-latest", MODEL_GPT_5_2_CHAT_LATEST = "gpt-5.2-chat-latest",
MODEL_GPT_4O_MINI_TRANSCRIBE_2025_12_15 = "gpt-4o-mini-transcribe-2025-12-15", MODEL_GPT_4O_MINI_TRANSCRIBE_2025_12_15 = "gpt-4o-mini-transcribe-2025-12-15",
MODEL_GPT_4O_MINI_TRANSCRIBE_2025_03_20 = "gpt-4o-mini-transcribe-2025-03-20", MODEL_GPT_4O_MINI_TRANSCRIBE_2025_03_20 = "gpt-4o-mini-transcribe-2025-03-20",
MODEL_GPT_4O_MINI_TTS_2025_03_20 = "gpt-4o-mini-tts-2025-03-20",
MODEL_GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k", MODEL_GPT_3_5_TURBO_16K = "gpt-3.5-turbo-16k",
MODEL_TTS_1 = "tts-1", MODEL_TTS_1 = "tts-1",
MODEL_WHISPER_1 = "whisper-1", MODEL_WHISPER_1 = "whisper-1",

View File

@ -1,15 +1,11 @@
export enum E_OPENROUTER_MODEL_FREE { export enum E_OPENROUTER_MODEL_FREE {
MODEL_FREE_ALLENAI_OLMO_3_1_32B_THINK_FREE = "allenai/olmo-3.1-32b-think:free", MODEL_FREE_ALLENAI_MOLMO_2_8B_FREE = "allenai/molmo-2-8b:free",
MODEL_FREE_XIAOMI_MIMO_V2_FLASH_FREE = "xiaomi/mimo-v2-flash:free", MODEL_FREE_XIAOMI_MIMO_V2_FLASH_FREE = "xiaomi/mimo-v2-flash:free",
MODEL_FREE_NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = "nvidia/nemotron-3-nano-30b-a3b:free", MODEL_FREE_NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = "nvidia/nemotron-3-nano-30b-a3b:free",
MODEL_FREE_MISTRALAI_DEVSTRAL_2512_FREE = "mistralai/devstral-2512:free",
MODEL_FREE_NEX_AGI_DEEPSEEK_V3_1_NEX_N1_FREE = "nex-agi/deepseek-v3.1-nex-n1:free",
MODEL_FREE_ARCEE_AI_TRINITY_MINI_FREE = "arcee-ai/trinity-mini:free", MODEL_FREE_ARCEE_AI_TRINITY_MINI_FREE = "arcee-ai/trinity-mini:free",
MODEL_FREE_TNGTECH_TNG_R1T_CHIMERA_FREE = "tngtech/tng-r1t-chimera:free", MODEL_FREE_TNGTECH_TNG_R1T_CHIMERA_FREE = "tngtech/tng-r1t-chimera:free",
MODEL_FREE_ALLENAI_OLMO_3_32B_THINK_FREE = "allenai/olmo-3-32b-think:free",
MODEL_FREE_KWAIPILOT_KAT_CODER_PRO_FREE = "kwaipilot/kat-coder-pro:free",
MODEL_FREE_NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = "nvidia/nemotron-nano-12b-v2-vl:free", MODEL_FREE_NVIDIA_NEMOTRON_NANO_12B_V2_VL_FREE = "nvidia/nemotron-nano-12b-v2-vl:free",
MODEL_FREE_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B_FREE = "alibaba/tongyi-deepresearch-30b-a3b:free", MODEL_FREE_QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = "qwen/qwen3-next-80b-a3b-instruct:free",
MODEL_FREE_NVIDIA_NEMOTRON_NANO_9B_V2_FREE = "nvidia/nemotron-nano-9b-v2:free", MODEL_FREE_NVIDIA_NEMOTRON_NANO_9B_V2_FREE = "nvidia/nemotron-nano-9b-v2:free",
MODEL_FREE_OPENAI_GPT_OSS_120B_FREE = "openai/gpt-oss-120b:free", MODEL_FREE_OPENAI_GPT_OSS_120B_FREE = "openai/gpt-oss-120b:free",
MODEL_FREE_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free", MODEL_FREE_OPENAI_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free",
@ -17,21 +13,10 @@ export enum E_OPENROUTER_MODEL_FREE {
MODEL_FREE_QWEN_QWEN3_CODER_FREE = "qwen/qwen3-coder:free", MODEL_FREE_QWEN_QWEN3_CODER_FREE = "qwen/qwen3-coder:free",
MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free", MODEL_FREE_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free",
MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", MODEL_FREE_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
MODEL_FREE_GOOGLE_GEMMA_3N_E2B_IT_FREE = "google/gemma-3n-e2b-it:free",
MODEL_FREE_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE = "tngtech/deepseek-r1t2-chimera:free", MODEL_FREE_TNGTECH_DEEPSEEK_R1T2_CHIMERA_FREE = "tngtech/deepseek-r1t2-chimera:free",
MODEL_FREE_DEEPSEEK_DEEPSEEK_R1_0528_FREE = "deepseek/deepseek-r1-0528:free",
MODEL_FREE_GOOGLE_GEMMA_3N_E4B_IT_FREE = "google/gemma-3n-e4b-it:free",
MODEL_FREE_QWEN_QWEN3_4B_FREE = "qwen/qwen3-4b:free", MODEL_FREE_QWEN_QWEN3_4B_FREE = "qwen/qwen3-4b:free",
MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE = "tngtech/deepseek-r1t-chimera:free", MODEL_FREE_TNGTECH_DEEPSEEK_R1T_CHIMERA_FREE = "tngtech/deepseek-r1t-chimera:free",
MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.1-24b-instruct:free", MODEL_FREE_MISTRALAI_MISTRAL_SMALL_3_1_24B_INSTRUCT_FREE = "mistralai/mistral-small-3.1-24b-instruct:free",
MODEL_FREE_GOOGLE_GEMMA_3_4B_IT_FREE = "google/gemma-3-4b-it:free",
MODEL_FREE_GOOGLE_GEMMA_3_12B_IT_FREE = "google/gemma-3-12b-it:free",
MODEL_FREE_GOOGLE_GEMMA_3_27B_IT_FREE = "google/gemma-3-27b-it:free",
MODEL_FREE_GOOGLE_GEMINI_2_0_FLASH_EXP_FREE = "google/gemini-2.0-flash-exp:free",
MODEL_FREE_META_LLAMA_LLAMA_3_3_70B_INSTRUCT_FREE = "meta-llama/llama-3.3-70b-instruct:free",
MODEL_FREE_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free", MODEL_FREE_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free",
MODEL_FREE_QWEN_QWEN_2_5_VL_7B_INSTRUCT_FREE = "qwen/qwen-2.5-vl-7b-instruct:free", MODEL_FREE_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = "nousresearch/hermes-3-llama-3.1-405b:free"
MODEL_FREE_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = "nousresearch/hermes-3-llama-3.1-405b:free",
MODEL_FREE_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free",
MODEL_FREE_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE = "mistralai/mistral-7b-instruct:free"
} }

View File

@ -1,12 +1,23 @@
export enum E_OPENROUTER_MODEL { export enum E_OPENROUTER_MODEL {
MODEL_MINIMAX_MINIMAX_M2_HER = "minimax/minimax-m2-her",
MODEL_WRITER_PALMYRA_X5 = "writer/palmyra-x5",
MODEL_LIQUID_LFM_2_5_1_2B_THINKING_FREE = "liquid/lfm-2.5-1.2b-thinking:free",
MODEL_LIQUID_LFM_2_5_1_2B_INSTRUCT_FREE = "liquid/lfm-2.5-1.2b-instruct:free",
MODEL_OPENAI_GPT_AUDIO = "openai/gpt-audio",
MODEL_OPENAI_GPT_AUDIO_MINI = "openai/gpt-audio-mini",
MODEL_Z_AI_GLM_4_7_FLASH = "z-ai/glm-4.7-flash",
MODEL_OPENAI_GPT_5_2_CODEX = "openai/gpt-5.2-codex",
MODEL_ALLENAI_MOLMO_2_8B_FREE = "allenai/molmo-2-8b:free",
MODEL_ALLENAI_OLMO_3_1_32B_INSTRUCT = "allenai/olmo-3.1-32b-instruct",
MODEL_BYTEDANCE_SEED_SEED_1_6_FLASH = "bytedance-seed/seed-1.6-flash", MODEL_BYTEDANCE_SEED_SEED_1_6_FLASH = "bytedance-seed/seed-1.6-flash",
MODEL_BYTEDANCE_SEED_SEED_1_6 = "bytedance-seed/seed-1.6", MODEL_BYTEDANCE_SEED_SEED_1_6 = "bytedance-seed/seed-1.6",
MODEL_MINIMAX_MINIMAX_M2_1 = "minimax/minimax-m2.1", MODEL_MINIMAX_MINIMAX_M2_1 = "minimax/minimax-m2.1",
MODEL_Z_AI_GLM_4_7 = "z-ai/glm-4.7", MODEL_Z_AI_GLM_4_7 = "z-ai/glm-4.7",
MODEL_GOOGLE_GEMINI_3_FLASH_PREVIEW = "google/gemini-3-flash-preview", MODEL_GOOGLE_GEMINI_3_FLASH_PREVIEW = "google/gemini-3-flash-preview",
MODEL_MISTRALAI_MISTRAL_SMALL_CREATIVE = "mistralai/mistral-small-creative", MODEL_MISTRALAI_MISTRAL_SMALL_CREATIVE = "mistralai/mistral-small-creative",
MODEL_ALLENAI_OLMO_3_1_32B_THINK_FREE = "allenai/olmo-3.1-32b-think:free", MODEL_ALLENAI_OLMO_3_1_32B_THINK = "allenai/olmo-3.1-32b-think",
MODEL_XIAOMI_MIMO_V2_FLASH_FREE = "xiaomi/mimo-v2-flash:free", MODEL_XIAOMI_MIMO_V2_FLASH_FREE = "xiaomi/mimo-v2-flash:free",
MODEL_XIAOMI_MIMO_V2_FLASH = "xiaomi/mimo-v2-flash",
MODEL_NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = "nvidia/nemotron-3-nano-30b-a3b:free", MODEL_NVIDIA_NEMOTRON_3_NANO_30B_A3B_FREE = "nvidia/nemotron-3-nano-30b-a3b:free",
MODEL_NVIDIA_NEMOTRON_3_NANO_30B_A3B = "nvidia/nemotron-3-nano-30b-a3b", MODEL_NVIDIA_NEMOTRON_3_NANO_30B_A3B = "nvidia/nemotron-3-nano-30b-a3b",
MODEL_OPENAI_GPT_5_2_CHAT = "openai/gpt-5.2-chat", MODEL_OPENAI_GPT_5_2_CHAT = "openai/gpt-5.2-chat",
@ -16,7 +27,7 @@ export enum E_OPENROUTER_MODEL {
MODEL_MISTRALAI_DEVSTRAL_2512 = "mistralai/devstral-2512", MODEL_MISTRALAI_DEVSTRAL_2512 = "mistralai/devstral-2512",
MODEL_RELACE_RELACE_SEARCH = "relace/relace-search", MODEL_RELACE_RELACE_SEARCH = "relace/relace-search",
MODEL_Z_AI_GLM_4_6V = "z-ai/glm-4.6v", MODEL_Z_AI_GLM_4_6V = "z-ai/glm-4.6v",
MODEL_NEX_AGI_DEEPSEEK_V3_1_NEX_N1_FREE = "nex-agi/deepseek-v3.1-nex-n1:free", MODEL_NEX_AGI_DEEPSEEK_V3_1_NEX_N1 = "nex-agi/deepseek-v3.1-nex-n1",
MODEL_ESSENTIALAI_RNJ_1_INSTRUCT = "essentialai/rnj-1-instruct", MODEL_ESSENTIALAI_RNJ_1_INSTRUCT = "essentialai/rnj-1-instruct",
MODEL_OPENROUTER_BODYBUILDER = "openrouter/bodybuilder", MODEL_OPENROUTER_BODYBUILDER = "openrouter/bodybuilder",
MODEL_OPENAI_GPT_5_1_CODEX_MAX = "openai/gpt-5.1-codex-max", MODEL_OPENAI_GPT_5_1_CODEX_MAX = "openai/gpt-5.1-codex-max",
@ -33,7 +44,7 @@ export enum E_OPENROUTER_MODEL {
MODEL_TNGTECH_TNG_R1T_CHIMERA_FREE = "tngtech/tng-r1t-chimera:free", MODEL_TNGTECH_TNG_R1T_CHIMERA_FREE = "tngtech/tng-r1t-chimera:free",
MODEL_TNGTECH_TNG_R1T_CHIMERA = "tngtech/tng-r1t-chimera", MODEL_TNGTECH_TNG_R1T_CHIMERA = "tngtech/tng-r1t-chimera",
MODEL_ANTHROPIC_CLAUDE_OPUS_4_5 = "anthropic/claude-opus-4.5", MODEL_ANTHROPIC_CLAUDE_OPUS_4_5 = "anthropic/claude-opus-4.5",
MODEL_ALLENAI_OLMO_3_32B_THINK_FREE = "allenai/olmo-3-32b-think:free", MODEL_ALLENAI_OLMO_3_32B_THINK = "allenai/olmo-3-32b-think",
MODEL_ALLENAI_OLMO_3_7B_INSTRUCT = "allenai/olmo-3-7b-instruct", MODEL_ALLENAI_OLMO_3_7B_INSTRUCT = "allenai/olmo-3-7b-instruct",
MODEL_ALLENAI_OLMO_3_7B_THINK = "allenai/olmo-3-7b-think", MODEL_ALLENAI_OLMO_3_7B_THINK = "allenai/olmo-3-7b-think",
MODEL_GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = "google/gemini-3-pro-image-preview", MODEL_GOOGLE_GEMINI_3_PRO_IMAGE_PREVIEW = "google/gemini-3-pro-image-preview",
@ -44,7 +55,7 @@ export enum E_OPENROUTER_MODEL {
MODEL_OPENAI_GPT_5_1_CHAT = "openai/gpt-5.1-chat", MODEL_OPENAI_GPT_5_1_CHAT = "openai/gpt-5.1-chat",
MODEL_OPENAI_GPT_5_1_CODEX = "openai/gpt-5.1-codex", MODEL_OPENAI_GPT_5_1_CODEX = "openai/gpt-5.1-codex",
MODEL_OPENAI_GPT_5_1_CODEX_MINI = "openai/gpt-5.1-codex-mini", MODEL_OPENAI_GPT_5_1_CODEX_MINI = "openai/gpt-5.1-codex-mini",
MODEL_KWAIPILOT_KAT_CODER_PRO_FREE = "kwaipilot/kat-coder-pro:free", MODEL_KWAIPILOT_KAT_CODER_PRO = "kwaipilot/kat-coder-pro",
MODEL_MOONSHOTAI_KIMI_K2_THINKING = "moonshotai/kimi-k2-thinking", MODEL_MOONSHOTAI_KIMI_K2_THINKING = "moonshotai/kimi-k2-thinking",
MODEL_AMAZON_NOVA_PREMIER_V1 = "amazon/nova-premier-v1", MODEL_AMAZON_NOVA_PREMIER_V1 = "amazon/nova-premier-v1",
MODEL_PERPLEXITY_SONAR_PRO_SEARCH = "perplexity/sonar-pro-search", MODEL_PERPLEXITY_SONAR_PRO_SEARCH = "perplexity/sonar-pro-search",
@ -87,11 +98,11 @@ export enum E_OPENROUTER_MODEL {
MODEL_DEEPSEEK_DEEPSEEK_V3_1_TERMINUS_EXACTO = "deepseek/deepseek-v3.1-terminus:exacto", MODEL_DEEPSEEK_DEEPSEEK_V3_1_TERMINUS_EXACTO = "deepseek/deepseek-v3.1-terminus:exacto",
MODEL_DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = "deepseek/deepseek-v3.1-terminus", MODEL_DEEPSEEK_DEEPSEEK_V3_1_TERMINUS = "deepseek/deepseek-v3.1-terminus",
MODEL_X_AI_GROK_4_FAST = "x-ai/grok-4-fast", MODEL_X_AI_GROK_4_FAST = "x-ai/grok-4-fast",
MODEL_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B_FREE = "alibaba/tongyi-deepresearch-30b-a3b:free",
MODEL_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = "alibaba/tongyi-deepresearch-30b-a3b", MODEL_ALIBABA_TONGYI_DEEPRESEARCH_30B_A3B = "alibaba/tongyi-deepresearch-30b-a3b",
MODEL_QWEN_QWEN3_CODER_FLASH = "qwen/qwen3-coder-flash", MODEL_QWEN_QWEN3_CODER_FLASH = "qwen/qwen3-coder-flash",
MODEL_OPENGVLAB_INTERNVL3_78B = "opengvlab/internvl3-78b", MODEL_OPENGVLAB_INTERNVL3_78B = "opengvlab/internvl3-78b",
MODEL_QWEN_QWEN3_NEXT_80B_A3B_THINKING = "qwen/qwen3-next-80b-a3b-thinking", MODEL_QWEN_QWEN3_NEXT_80B_A3B_THINKING = "qwen/qwen3-next-80b-a3b-thinking",
MODEL_QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT_FREE = "qwen/qwen3-next-80b-a3b-instruct:free",
MODEL_QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = "qwen/qwen3-next-80b-a3b-instruct", MODEL_QWEN_QWEN3_NEXT_80B_A3B_INSTRUCT = "qwen/qwen3-next-80b-a3b-instruct",
MODEL_MEITUAN_LONGCAT_FLASH_CHAT = "meituan/longcat-flash-chat", MODEL_MEITUAN_LONGCAT_FLASH_CHAT = "meituan/longcat-flash-chat",
MODEL_QWEN_QWEN_PLUS_2025_07_28 = "qwen/qwen-plus-2025-07-28", MODEL_QWEN_QWEN_PLUS_2025_07_28 = "qwen/qwen-plus-2025-07-28",
@ -107,7 +118,6 @@ export enum E_OPENROUTER_MODEL {
MODEL_X_AI_GROK_CODE_FAST_1 = "x-ai/grok-code-fast-1", MODEL_X_AI_GROK_CODE_FAST_1 = "x-ai/grok-code-fast-1",
MODEL_NOUSRESEARCH_HERMES_4_70B = "nousresearch/hermes-4-70b", MODEL_NOUSRESEARCH_HERMES_4_70B = "nousresearch/hermes-4-70b",
MODEL_NOUSRESEARCH_HERMES_4_405B = "nousresearch/hermes-4-405b", MODEL_NOUSRESEARCH_HERMES_4_405B = "nousresearch/hermes-4-405b",
MODEL_GOOGLE_GEMINI_2_5_FLASH_IMAGE_PREVIEW = "google/gemini-2.5-flash-image-preview",
MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_1 = "deepseek/deepseek-chat-v3.1", MODEL_DEEPSEEK_DEEPSEEK_CHAT_V3_1 = "deepseek/deepseek-chat-v3.1",
MODEL_OPENAI_GPT_4O_AUDIO_PREVIEW = "openai/gpt-4o-audio-preview", MODEL_OPENAI_GPT_4O_AUDIO_PREVIEW = "openai/gpt-4o-audio-preview",
MODEL_MISTRALAI_MISTRAL_MEDIUM_3_1 = "mistralai/mistral-medium-3.1", MODEL_MISTRALAI_MISTRAL_MEDIUM_3_1 = "mistralai/mistral-medium-3.1",
@ -143,7 +153,6 @@ export enum E_OPENROUTER_MODEL {
MODEL_SWITCHPOINT_ROUTER = "switchpoint/router", MODEL_SWITCHPOINT_ROUTER = "switchpoint/router",
MODEL_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free", MODEL_MOONSHOTAI_KIMI_K2_FREE = "moonshotai/kimi-k2:free",
MODEL_MOONSHOTAI_KIMI_K2 = "moonshotai/kimi-k2", MODEL_MOONSHOTAI_KIMI_K2 = "moonshotai/kimi-k2",
MODEL_THUDM_GLM_4_1V_9B_THINKING = "thudm/glm-4.1v-9b-thinking",
MODEL_MISTRALAI_DEVSTRAL_MEDIUM = "mistralai/devstral-medium", MODEL_MISTRALAI_DEVSTRAL_MEDIUM = "mistralai/devstral-medium",
MODEL_MISTRALAI_DEVSTRAL_SMALL = "mistralai/devstral-small", MODEL_MISTRALAI_DEVSTRAL_SMALL = "mistralai/devstral-small",
MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free", MODEL_COGNITIVECOMPUTATIONS_DOLPHIN_MISTRAL_24B_VENICE_EDITION_FREE = "cognitivecomputations/dolphin-mistral-24b-venice-edition:free",
@ -166,15 +175,12 @@ export enum E_OPENROUTER_MODEL {
MODEL_X_AI_GROK_3_MINI = "x-ai/grok-3-mini", MODEL_X_AI_GROK_3_MINI = "x-ai/grok-3-mini",
MODEL_X_AI_GROK_3 = "x-ai/grok-3", MODEL_X_AI_GROK_3 = "x-ai/grok-3",
MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW = "google/gemini-2.5-pro-preview", MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW = "google/gemini-2.5-pro-preview",
MODEL_DEEPSEEK_DEEPSEEK_R1_0528_QWEN3_8B = "deepseek/deepseek-r1-0528-qwen3-8b",
MODEL_DEEPSEEK_DEEPSEEK_R1_0528_FREE = "deepseek/deepseek-r1-0528:free", MODEL_DEEPSEEK_DEEPSEEK_R1_0528_FREE = "deepseek/deepseek-r1-0528:free",
MODEL_DEEPSEEK_DEEPSEEK_R1_0528 = "deepseek/deepseek-r1-0528", MODEL_DEEPSEEK_DEEPSEEK_R1_0528 = "deepseek/deepseek-r1-0528",
MODEL_ANTHROPIC_CLAUDE_OPUS_4 = "anthropic/claude-opus-4", MODEL_ANTHROPIC_CLAUDE_OPUS_4 = "anthropic/claude-opus-4",
MODEL_ANTHROPIC_CLAUDE_SONNET_4 = "anthropic/claude-sonnet-4", MODEL_ANTHROPIC_CLAUDE_SONNET_4 = "anthropic/claude-sonnet-4",
MODEL_MISTRALAI_DEVSTRAL_SMALL_2505 = "mistralai/devstral-small-2505",
MODEL_GOOGLE_GEMMA_3N_E4B_IT_FREE = "google/gemma-3n-e4b-it:free", MODEL_GOOGLE_GEMMA_3N_E4B_IT_FREE = "google/gemma-3n-e4b-it:free",
MODEL_GOOGLE_GEMMA_3N_E4B_IT = "google/gemma-3n-e4b-it", MODEL_GOOGLE_GEMMA_3N_E4B_IT = "google/gemma-3n-e4b-it",
MODEL_OPENAI_CODEX_MINI = "openai/codex-mini",
MODEL_NOUSRESEARCH_DEEPHERMES_3_MISTRAL_24B_PREVIEW = "nousresearch/deephermes-3-mistral-24b-preview", MODEL_NOUSRESEARCH_DEEPHERMES_3_MISTRAL_24B_PREVIEW = "nousresearch/deephermes-3-mistral-24b-preview",
MODEL_MISTRALAI_MISTRAL_MEDIUM_3 = "mistralai/mistral-medium-3", MODEL_MISTRALAI_MISTRAL_MEDIUM_3 = "mistralai/mistral-medium-3",
MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = "google/gemini-2.5-pro-preview-05-06", MODEL_GOOGLE_GEMINI_2_5_PRO_PREVIEW_05_06 = "google/gemini-2.5-pro-preview-05-06",
@ -182,10 +188,8 @@ export enum E_OPENROUTER_MODEL {
MODEL_ARCEE_AI_MAESTRO_REASONING = "arcee-ai/maestro-reasoning", MODEL_ARCEE_AI_MAESTRO_REASONING = "arcee-ai/maestro-reasoning",
MODEL_ARCEE_AI_VIRTUOSO_LARGE = "arcee-ai/virtuoso-large", MODEL_ARCEE_AI_VIRTUOSO_LARGE = "arcee-ai/virtuoso-large",
MODEL_ARCEE_AI_CODER_LARGE = "arcee-ai/coder-large", MODEL_ARCEE_AI_CODER_LARGE = "arcee-ai/coder-large",
MODEL_MICROSOFT_PHI_4_REASONING_PLUS = "microsoft/phi-4-reasoning-plus",
MODEL_INCEPTION_MERCURY_CODER = "inception/mercury-coder", MODEL_INCEPTION_MERCURY_CODER = "inception/mercury-coder",
MODEL_QWEN_QWEN3_4B_FREE = "qwen/qwen3-4b:free", MODEL_QWEN_QWEN3_4B_FREE = "qwen/qwen3-4b:free",
MODEL_DEEPSEEK_DEEPSEEK_PROVER_V2 = "deepseek/deepseek-prover-v2",
MODEL_META_LLAMA_LLAMA_GUARD_4_12B = "meta-llama/llama-guard-4-12b", MODEL_META_LLAMA_LLAMA_GUARD_4_12B = "meta-llama/llama-guard-4-12b",
MODEL_QWEN_QWEN3_30B_A3B = "qwen/qwen3-30b-a3b", MODEL_QWEN_QWEN3_30B_A3B = "qwen/qwen3-30b-a3b",
MODEL_QWEN_QWEN3_8B = "qwen/qwen3-8b", MODEL_QWEN_QWEN3_8B = "qwen/qwen3-8b",
@ -203,7 +207,6 @@ export enum E_OPENROUTER_MODEL {
MODEL_OPENAI_GPT_4_1_NANO = "openai/gpt-4.1-nano", MODEL_OPENAI_GPT_4_1_NANO = "openai/gpt-4.1-nano",
MODEL_ELEUTHERAI_LLEMMA_7B = "eleutherai/llemma_7b", MODEL_ELEUTHERAI_LLEMMA_7B = "eleutherai/llemma_7b",
MODEL_ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = "alfredpros/codellama-7b-instruct-solidity", MODEL_ALFREDPROS_CODELLAMA_7B_INSTRUCT_SOLIDITY = "alfredpros/codellama-7b-instruct-solidity",
MODEL_ARLIAI_QWQ_32B_ARLIAI_RPR_V1 = "arliai/qwq-32b-arliai-rpr-v1",
MODEL_X_AI_GROK_3_MINI_BETA = "x-ai/grok-3-mini-beta", MODEL_X_AI_GROK_3_MINI_BETA = "x-ai/grok-3-mini-beta",
MODEL_X_AI_GROK_3_BETA = "x-ai/grok-3-beta", MODEL_X_AI_GROK_3_BETA = "x-ai/grok-3-beta",
MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = "nvidia/llama-3.1-nemotron-ultra-253b-v1", MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_ULTRA_253B_V1 = "nvidia/llama-3.1-nemotron-ultra-253b-v1",
@ -225,7 +228,6 @@ export enum E_OPENROUTER_MODEL {
MODEL_GOOGLE_GEMMA_3_27B_IT_FREE = "google/gemma-3-27b-it:free", MODEL_GOOGLE_GEMMA_3_27B_IT_FREE = "google/gemma-3-27b-it:free",
MODEL_GOOGLE_GEMMA_3_27B_IT = "google/gemma-3-27b-it", MODEL_GOOGLE_GEMMA_3_27B_IT = "google/gemma-3-27b-it",
MODEL_THEDRUMMER_SKYFALL_36B_V2 = "thedrummer/skyfall-36b-v2", MODEL_THEDRUMMER_SKYFALL_36B_V2 = "thedrummer/skyfall-36b-v2",
MODEL_MICROSOFT_PHI_4_MULTIMODAL_INSTRUCT = "microsoft/phi-4-multimodal-instruct",
MODEL_PERPLEXITY_SONAR_REASONING_PRO = "perplexity/sonar-reasoning-pro", MODEL_PERPLEXITY_SONAR_REASONING_PRO = "perplexity/sonar-reasoning-pro",
MODEL_PERPLEXITY_SONAR_PRO = "perplexity/sonar-pro", MODEL_PERPLEXITY_SONAR_PRO = "perplexity/sonar-pro",
MODEL_PERPLEXITY_SONAR_DEEP_RESEARCH = "perplexity/sonar-deep-research", MODEL_PERPLEXITY_SONAR_DEEP_RESEARCH = "perplexity/sonar-deep-research",
@ -249,8 +251,6 @@ export enum E_OPENROUTER_MODEL {
MODEL_OPENAI_O3_MINI = "openai/o3-mini", MODEL_OPENAI_O3_MINI = "openai/o3-mini",
MODEL_MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = "mistralai/mistral-small-24b-instruct-2501", MODEL_MISTRALAI_MISTRAL_SMALL_24B_INSTRUCT_2501 = "mistralai/mistral-small-24b-instruct-2501",
MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = "deepseek/deepseek-r1-distill-qwen-32b", MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_32B = "deepseek/deepseek-r1-distill-qwen-32b",
MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_QWEN_14B = "deepseek/deepseek-r1-distill-qwen-14b",
MODEL_PERPLEXITY_SONAR_REASONING = "perplexity/sonar-reasoning",
MODEL_PERPLEXITY_SONAR = "perplexity/sonar", MODEL_PERPLEXITY_SONAR = "perplexity/sonar",
MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = "deepseek/deepseek-r1-distill-llama-70b", MODEL_DEEPSEEK_DEEPSEEK_R1_DISTILL_LLAMA_70B = "deepseek/deepseek-r1-distill-llama-70b",
MODEL_DEEPSEEK_DEEPSEEK_R1 = "deepseek/deepseek-r1", MODEL_DEEPSEEK_DEEPSEEK_R1 = "deepseek/deepseek-r1",
@ -274,31 +274,28 @@ export enum E_OPENROUTER_MODEL {
MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT = "qwen/qwen-2.5-coder-32b-instruct", MODEL_QWEN_QWEN_2_5_CODER_32B_INSTRUCT = "qwen/qwen-2.5-coder-32b-instruct",
MODEL_RAIFLE_SORCERERLM_8X22B = "raifle/sorcererlm-8x22b", MODEL_RAIFLE_SORCERERLM_8X22B = "raifle/sorcererlm-8x22b",
MODEL_THEDRUMMER_UNSLOPNEMO_12B = "thedrummer/unslopnemo-12b", MODEL_THEDRUMMER_UNSLOPNEMO_12B = "thedrummer/unslopnemo-12b",
MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU_20241022 = "anthropic/claude-3.5-haiku-20241022",
MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic/claude-3.5-haiku", MODEL_ANTHROPIC_CLAUDE_3_5_HAIKU = "anthropic/claude-3.5-haiku",
MODEL_ANTHRACITE_ORG_MAGNUM_V4_72B = "anthracite-org/magnum-v4-72b", MODEL_ANTHRACITE_ORG_MAGNUM_V4_72B = "anthracite-org/magnum-v4-72b",
MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic/claude-3.5-sonnet", MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic/claude-3.5-sonnet",
MODEL_MISTRALAI_MINISTRAL_8B = "mistralai/ministral-8b",
MODEL_MISTRALAI_MINISTRAL_3B = "mistralai/ministral-3b", MODEL_MISTRALAI_MINISTRAL_3B = "mistralai/ministral-3b",
MODEL_MISTRALAI_MINISTRAL_8B = "mistralai/ministral-8b",
MODEL_QWEN_QWEN_2_5_7B_INSTRUCT = "qwen/qwen-2.5-7b-instruct", MODEL_QWEN_QWEN_2_5_7B_INSTRUCT = "qwen/qwen-2.5-7b-instruct",
MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = "nvidia/llama-3.1-nemotron-70b-instruct", MODEL_NVIDIA_LLAMA_3_1_NEMOTRON_70B_INSTRUCT = "nvidia/llama-3.1-nemotron-70b-instruct",
MODEL_INFLECTION_INFLECTION_3_PI = "inflection/inflection-3-pi", MODEL_INFLECTION_INFLECTION_3_PI = "inflection/inflection-3-pi",
MODEL_INFLECTION_INFLECTION_3_PRODUCTIVITY = "inflection/inflection-3-productivity", MODEL_INFLECTION_INFLECTION_3_PRODUCTIVITY = "inflection/inflection-3-productivity",
MODEL_THEDRUMMER_ROCINANTE_12B = "thedrummer/rocinante-12b", MODEL_THEDRUMMER_ROCINANTE_12B = "thedrummer/rocinante-12b",
MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT = "meta-llama/llama-3.2-1b-instruct",
MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free", MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT_FREE = "meta-llama/llama-3.2-3b-instruct:free",
MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT = "meta-llama/llama-3.2-3b-instruct", MODEL_META_LLAMA_LLAMA_3_2_3B_INSTRUCT = "meta-llama/llama-3.2-3b-instruct",
MODEL_META_LLAMA_LLAMA_3_2_1B_INSTRUCT = "meta-llama/llama-3.2-1b-instruct",
MODEL_META_LLAMA_LLAMA_3_2_90B_VISION_INSTRUCT = "meta-llama/llama-3.2-90b-vision-instruct",
MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = "meta-llama/llama-3.2-11b-vision-instruct", MODEL_META_LLAMA_LLAMA_3_2_11B_VISION_INSTRUCT = "meta-llama/llama-3.2-11b-vision-instruct",
MODEL_QWEN_QWEN_2_5_72B_INSTRUCT = "qwen/qwen-2.5-72b-instruct", MODEL_QWEN_QWEN_2_5_72B_INSTRUCT = "qwen/qwen-2.5-72b-instruct",
MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_8B = "neversleep/llama-3.1-lumimaid-8b", MODEL_NEVERSLEEP_LLAMA_3_1_LUMIMAID_8B = "neversleep/llama-3.1-lumimaid-8b",
MODEL_MISTRALAI_PIXTRAL_12B = "mistralai/pixtral-12b", MODEL_MISTRALAI_PIXTRAL_12B = "mistralai/pixtral-12b",
MODEL_COHERE_COMMAND_R_08_2024 = "cohere/command-r-08-2024",
MODEL_COHERE_COMMAND_R_PLUS_08_2024 = "cohere/command-r-plus-08-2024", MODEL_COHERE_COMMAND_R_PLUS_08_2024 = "cohere/command-r-plus-08-2024",
MODEL_SAO10K_L3_1_EURYALE_70B = "sao10k/l3.1-euryale-70b", MODEL_COHERE_COMMAND_R_08_2024 = "cohere/command-r-08-2024",
MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT_FREE = "qwen/qwen-2.5-vl-7b-instruct:free", MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT_FREE = "qwen/qwen-2.5-vl-7b-instruct:free",
MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT = "qwen/qwen-2.5-vl-7b-instruct", MODEL_QWEN_QWEN_2_5_VL_7B_INSTRUCT = "qwen/qwen-2.5-vl-7b-instruct",
MODEL_MICROSOFT_PHI_3_5_MINI_128K_INSTRUCT = "microsoft/phi-3.5-mini-128k-instruct", MODEL_SAO10K_L3_1_EURYALE_70B = "sao10k/l3.1-euryale-70b",
MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = "nousresearch/hermes-3-llama-3.1-70b", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_70B = "nousresearch/hermes-3-llama-3.1-70b",
MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = "nousresearch/hermes-3-llama-3.1-405b:free", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B_FREE = "nousresearch/hermes-3-llama-3.1-405b:free",
MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = "nousresearch/hermes-3-llama-3.1-405b", MODEL_NOUSRESEARCH_HERMES_3_LLAMA_3_1_405B = "nousresearch/hermes-3-llama-3.1-405b",
@ -306,33 +303,29 @@ export enum E_OPENROUTER_MODEL {
MODEL_SAO10K_L3_LUNARIS_8B = "sao10k/l3-lunaris-8b", MODEL_SAO10K_L3_LUNARIS_8B = "sao10k/l3-lunaris-8b",
MODEL_OPENAI_GPT_4O_2024_08_06 = "openai/gpt-4o-2024-08-06", MODEL_OPENAI_GPT_4O_2024_08_06 = "openai/gpt-4o-2024-08-06",
MODEL_META_LLAMA_LLAMA_3_1_405B = "meta-llama/llama-3.1-405b", MODEL_META_LLAMA_LLAMA_3_1_405B = "meta-llama/llama-3.1-405b",
MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT = "meta-llama/llama-3.1-8b-instruct", MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT = "meta-llama/llama-3.1-70b-instruct",
MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free", MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT_FREE = "meta-llama/llama-3.1-405b-instruct:free",
MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT = "meta-llama/llama-3.1-405b-instruct", MODEL_META_LLAMA_LLAMA_3_1_405B_INSTRUCT = "meta-llama/llama-3.1-405b-instruct",
MODEL_META_LLAMA_LLAMA_3_1_70B_INSTRUCT = "meta-llama/llama-3.1-70b-instruct", MODEL_META_LLAMA_LLAMA_3_1_8B_INSTRUCT = "meta-llama/llama-3.1-8b-instruct",
MODEL_MISTRALAI_MISTRAL_NEMO = "mistralai/mistral-nemo", MODEL_MISTRALAI_MISTRAL_NEMO = "mistralai/mistral-nemo",
MODEL_OPENAI_GPT_4O_MINI_2024_07_18 = "openai/gpt-4o-mini-2024-07-18",
MODEL_OPENAI_GPT_4O_MINI = "openai/gpt-4o-mini", MODEL_OPENAI_GPT_4O_MINI = "openai/gpt-4o-mini",
MODEL_OPENAI_GPT_4O_MINI_2024_07_18 = "openai/gpt-4o-mini-2024-07-18",
MODEL_GOOGLE_GEMMA_2_27B_IT = "google/gemma-2-27b-it", MODEL_GOOGLE_GEMMA_2_27B_IT = "google/gemma-2-27b-it",
MODEL_GOOGLE_GEMMA_2_9B_IT = "google/gemma-2-9b-it", MODEL_GOOGLE_GEMMA_2_9B_IT = "google/gemma-2-9b-it",
MODEL_SAO10K_L3_EURYALE_70B = "sao10k/l3-euryale-70b", MODEL_SAO10K_L3_EURYALE_70B = "sao10k/l3-euryale-70b",
MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = "nousresearch/hermes-2-pro-llama-3-8b",
MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_FREE = "mistralai/mistral-7b-instruct:free",
MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT = "mistralai/mistral-7b-instruct", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT = "mistralai/mistral-7b-instruct",
MODEL_NOUSRESEARCH_HERMES_2_PRO_LLAMA_3_8B = "nousresearch/hermes-2-pro-llama-3-8b",
MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3 = "mistralai/mistral-7b-instruct-v0.3", MODEL_MISTRALAI_MISTRAL_7B_INSTRUCT_V0_3 = "mistralai/mistral-7b-instruct-v0.3",
MODEL_MICROSOFT_PHI_3_MINI_128K_INSTRUCT = "microsoft/phi-3-mini-128k-instruct",
MODEL_MICROSOFT_PHI_3_MEDIUM_128K_INSTRUCT = "microsoft/phi-3-medium-128k-instruct",
MODEL_META_LLAMA_LLAMA_GUARD_2_8B = "meta-llama/llama-guard-2-8b", MODEL_META_LLAMA_LLAMA_GUARD_2_8B = "meta-llama/llama-guard-2-8b",
MODEL_OPENAI_GPT_4O_2024_05_13 = "openai/gpt-4o-2024-05-13",
MODEL_OPENAI_GPT_4O = "openai/gpt-4o", MODEL_OPENAI_GPT_4O = "openai/gpt-4o",
MODEL_OPENAI_GPT_4O_EXTENDED = "openai/gpt-4o:extended", MODEL_OPENAI_GPT_4O_EXTENDED = "openai/gpt-4o:extended",
MODEL_META_LLAMA_LLAMA_3_70B_INSTRUCT = "meta-llama/llama-3-70b-instruct", MODEL_OPENAI_GPT_4O_2024_05_13 = "openai/gpt-4o-2024-05-13",
MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT = "meta-llama/llama-3-8b-instruct", MODEL_META_LLAMA_LLAMA_3_8B_INSTRUCT = "meta-llama/llama-3-8b-instruct",
MODEL_META_LLAMA_LLAMA_3_70B_INSTRUCT = "meta-llama/llama-3-70b-instruct",
MODEL_MISTRALAI_MIXTRAL_8X22B_INSTRUCT = "mistralai/mixtral-8x22b-instruct", MODEL_MISTRALAI_MIXTRAL_8X22B_INSTRUCT = "mistralai/mixtral-8x22b-instruct",
MODEL_MICROSOFT_WIZARDLM_2_8X22B = "microsoft/wizardlm-2-8x22b", MODEL_MICROSOFT_WIZARDLM_2_8X22B = "microsoft/wizardlm-2-8x22b",
MODEL_OPENAI_GPT_4_TURBO = "openai/gpt-4-turbo", MODEL_OPENAI_GPT_4_TURBO = "openai/gpt-4-turbo",
MODEL_ANTHROPIC_CLAUDE_3_HAIKU = "anthropic/claude-3-haiku", MODEL_ANTHROPIC_CLAUDE_3_HAIKU = "anthropic/claude-3-haiku",
MODEL_ANTHROPIC_CLAUDE_3_OPUS = "anthropic/claude-3-opus",
MODEL_MISTRALAI_MISTRAL_LARGE = "mistralai/mistral-large", MODEL_MISTRALAI_MISTRAL_LARGE = "mistralai/mistral-large",
MODEL_OPENAI_GPT_3_5_TURBO_0613 = "openai/gpt-3.5-turbo-0613", MODEL_OPENAI_GPT_3_5_TURBO_0613 = "openai/gpt-3.5-turbo-0613",
MODEL_OPENAI_GPT_4_TURBO_PREVIEW = "openai/gpt-4-turbo-preview", MODEL_OPENAI_GPT_4_TURBO_PREVIEW = "openai/gpt-4-turbo-preview",

View File

@ -31,366 +31,228 @@ export interface IKBotOptions {
 
 OpenRouter models:  OpenRouter models:
 
ai21/jamba-large-1.7 | paid 01-ai/yi-large | paid
ai21/jamba-mini-1.7 | paid aetherwiing/mn-starcannon-12b | paid
aion-labs/aion-1.0 | paid ai21/jamba-1-5-large | paid
aion-labs/aion-1.0-mini | paid ai21/jamba-1-5-mini | paid
aion-labs/aion-rp-llama-3.1-8b | paid ai21/jamba-instruct | paid
alfredpros/codellama-7b-instruct-solidity | paid jondurbin/airoboros-l2-70b | paid
allenai/olmo-2-0325-32b-instruct | paid
allenai/olmo-3-32b-think:free | free
allenai/olmo-3-7b-instruct | paid
allenai/olmo-3-7b-think | paid
allenai/olmo-3.1-32b-think:free | free
amazon/nova-2-lite-v1 | paid
amazon/nova-lite-v1 | paid amazon/nova-lite-v1 | paid
amazon/nova-micro-v1 | paid amazon/nova-micro-v1 | paid
amazon/nova-premier-v1 | paid
amazon/nova-pro-v1 | paid amazon/nova-pro-v1 | paid
anthropic/claude-3-haiku | paid anthropic/claude-3-haiku | paid
anthropic/claude-3-haiku:beta | paid
anthropic/claude-3-opus | paid anthropic/claude-3-opus | paid
anthropic/claude-3-opus:beta | paid
anthropic/claude-3-sonnet | paid
anthropic/claude-3-sonnet:beta | paid
anthropic/claude-3.5-haiku | paid anthropic/claude-3.5-haiku | paid
anthropic/claude-3.5-haiku-20241022 | paid anthropic/claude-3.5-haiku-20241022 | paid
anthropic/claude-3.5-haiku-20241022:beta | paid
anthropic/claude-3.5-haiku:beta | paid
anthropic/claude-3.5-sonnet | paid anthropic/claude-3.5-sonnet | paid
anthropic/claude-3.7-sonnet | paid anthropic/claude-3.5-sonnet-20240620 | paid
anthropic/claude-3.7-sonnet:thinking | paid anthropic/claude-3.5-sonnet-20240620:beta | paid
anthropic/claude-haiku-4.5 | paid anthropic/claude-3.5-sonnet:beta | paid
anthropic/claude-opus-4 | paid anthropic/claude-2 | paid
anthropic/claude-opus-4.1 | paid anthropic/claude-2:beta | paid
anthropic/claude-opus-4.5 | paid anthropic/claude-2.0 | paid
anthropic/claude-sonnet-4 | paid anthropic/claude-2.0:beta | paid
anthropic/claude-sonnet-4.5 | paid anthropic/claude-2.1 | paid
arcee-ai/coder-large | paid anthropic/claude-2.1:beta | paid
arcee-ai/maestro-reasoning | paid
arcee-ai/spotlight | paid
arcee-ai/trinity-mini | paid
arcee-ai/trinity-mini:free | free
arcee-ai/virtuoso-large | paid
arliai/qwq-32b-arliai-rpr-v1 | paid
openrouter/auto | paid openrouter/auto | paid
baidu/ernie-4.5-21b-a3b | paid cohere/command | paid
baidu/ernie-4.5-21b-a3b-thinking | paid cohere/command-r | paid
baidu/ernie-4.5-300b-a47b | paid cohere/command-r-03-2024 | paid
baidu/ernie-4.5-vl-28b-a3b | paid
baidu/ernie-4.5-vl-424b-a47b | paid
openrouter/bodybuilder | paid
bytedance-seed/seed-1.6 | paid
bytedance-seed/seed-1.6-flash | paid
bytedance/ui-tars-1.5-7b | paid
deepcogito/cogito-v2-preview-llama-109b-moe | paid
cohere/command-a | paid
cohere/command-r-08-2024 | paid cohere/command-r-08-2024 | paid
cohere/command-r-plus | paid
cohere/command-r-plus-04-2024 | paid
cohere/command-r-plus-08-2024 | paid cohere/command-r-plus-08-2024 | paid
cohere/command-r7b-12-2024 | paid cohere/command-r7b-12-2024 | paid
deepcogito/cogito-v2-preview-llama-405b | paid databricks/dbrx-instruct | paid
deepcogito/cogito-v2-preview-llama-70b | paid deepseek/deepseek-chat-v2.5 | paid
deepcogito/cogito-v2.1-671b | paid
deepseek/deepseek-prover-v2 | paid
deepseek/deepseek-r1-0528-qwen3-8b | paid
deepseek/deepseek-chat | paid deepseek/deepseek-chat | paid
deepseek/deepseek-chat-v3-0324 | paid cognitivecomputations/dolphin-mixtral-8x7b | paid
deepseek/deepseek-chat-v3.1 | paid cognitivecomputations/dolphin-mixtral-8x22b | paid
deepseek/deepseek-v3.1-terminus | paid eva-unit-01/eva-llama-3.33-70b | paid
deepseek/deepseek-v3.1-terminus:exacto | paid eva-unit-01/eva-qwen-2.5-32b | paid
deepseek/deepseek-v3.2 | paid eva-unit-01/eva-qwen-2.5-72b | paid
deepseek/deepseek-v3.2-exp | paid
deepseek/deepseek-v3.2-speciale | paid
deepseek/deepseek-r1 | paid
deepseek/deepseek-r1-0528 | paid
deepseek/deepseek-r1-0528:free | free
deepseek/deepseek-r1-distill-llama-70b | paid
deepseek/deepseek-r1-distill-qwen-14b | paid
deepseek/deepseek-r1-distill-qwen-32b | paid
eleutherai/llemma_7b | paid
essentialai/rnj-1-instruct | paid
alpindale/goliath-120b | paid alpindale/goliath-120b | paid
google/gemini-2.0-flash-001 | paid google/gemini-2.0-flash-thinking-exp:free | free
google/gemini-exp-1114:free | free
google/gemini-exp-1121:free | free
google/gemini-exp-1206:free | free
google/gemini-flash-1.5 | paid
google/gemini-flash-1.5-8b | paid
google/gemini-flash-1.5-8b-exp | paid
google/gemini-flash-1.5-exp | paid
google/gemini-2.0-flash-exp:free | free google/gemini-2.0-flash-exp:free | free
google/gemini-2.0-flash-lite-001 | paid google/gemini-pro | paid
google/gemini-2.5-flash | paid google/gemini-pro-1.5 | paid
google/gemini-2.5-flash-image | paid google/gemini-pro-1.5-exp | paid
google/gemini-2.5-flash-image-preview | paid google/gemini-pro-vision | paid
google/gemini-2.5-flash-lite | paid
google/gemini-2.5-flash-lite-preview-09-2025 | paid
google/gemini-2.5-flash-preview-09-2025 | paid
google/gemini-2.5-pro | paid
google/gemini-2.5-pro-preview-05-06 | paid
google/gemini-2.5-pro-preview | paid
google/gemini-3-flash-preview | paid
google/gemini-3-pro-preview | paid
google/gemma-2-27b-it | paid google/gemma-2-27b-it | paid
google/gemma-2-9b-it | paid google/gemma-2-9b-it | paid
google/gemma-3-12b-it | paid google/gemma-2-9b-it:free | free
google/gemma-3-12b-it:free | free google/learnlm-1.5-pro-experimental:free | free
google/gemma-3-27b-it | paid google/palm-2-chat-bison | paid
google/gemma-3-27b-it:free | free google/palm-2-chat-bison-32k | paid
google/gemma-3-4b-it | paid google/palm-2-codechat-bison | paid
google/gemma-3-4b-it:free | free google/palm-2-codechat-bison-32k | paid
google/gemma-3n-e2b-it:free | free huggingfaceh4/zephyr-7b-beta:free | free
google/gemma-3n-e4b-it | paid infermatic/mn-inferor-12b | paid
google/gemma-3n-e4b-it:free | free inflatebot/mn-mag-mell-r1 | paid
google/gemini-3-pro-image-preview | paid
ibm-granite/granite-4.0-h-micro | paid
inception/mercury | paid
inception/mercury-coder | paid
inflection/inflection-3-pi | paid inflection/inflection-3-pi | paid
inflection/inflection-3-productivity | paid inflection/inflection-3-productivity | paid
kwaipilot/kat-coder-pro:free | free liquid/lfm-40b | paid
liquid/lfm-2.2-6b | paid lizpreciatior/lzlv-70b-fp16-hf | paid
liquid/lfm2-8b-a1b | paid alpindale/magnum-72b | paid
meta-llama/llama-guard-3-8b | paid anthracite-org/magnum-v2-72b | paid
anthracite-org/magnum-v4-72b | paid anthracite-org/magnum-v4-72b | paid
mancer/weaver | paid mancer/weaver | paid
meituan/longcat-flash-chat | paid meta-llama/llama-2-13b-chat | paid
meta-llama/llama-3-70b-instruct | paid meta-llama/llama-3-70b-instruct | paid
meta-llama/llama-3-70b-instruct:nitro | paid
meta-llama/llama-3-8b-instruct | paid meta-llama/llama-3-8b-instruct | paid
meta-llama/llama-3-8b-instruct:extended | paid
meta-llama/llama-3-8b-instruct:free | free
meta-llama/llama-3-8b-instruct:nitro | paid
meta-llama/llama-3.1-405b | paid meta-llama/llama-3.1-405b | paid
meta-llama/llama-3.1-405b-instruct | paid meta-llama/llama-3.1-405b-instruct | paid
meta-llama/llama-3.1-405b-instruct:free | free meta-llama/llama-3.1-405b-instruct:free | free
meta-llama/llama-3.1-405b-instruct:nitro | paid
meta-llama/llama-3.1-70b-instruct | paid meta-llama/llama-3.1-70b-instruct | paid
meta-llama/llama-3.1-70b-instruct:free | free
meta-llama/llama-3.1-70b-instruct:nitro | paid
meta-llama/llama-3.1-8b-instruct | paid meta-llama/llama-3.1-8b-instruct | paid
meta-llama/llama-3.1-8b-instruct:free | free
meta-llama/llama-3.2-11b-vision-instruct | paid meta-llama/llama-3.2-11b-vision-instruct | paid
meta-llama/llama-3.2-11b-vision-instruct:free | free
meta-llama/llama-3.2-1b-instruct | paid meta-llama/llama-3.2-1b-instruct | paid
meta-llama/llama-3.2-1b-instruct:free | free
meta-llama/llama-3.2-3b-instruct | paid meta-llama/llama-3.2-3b-instruct | paid
meta-llama/llama-3.2-3b-instruct:free | free meta-llama/llama-3.2-3b-instruct:free | free
meta-llama/llama-3.2-90b-vision-instruct | paid meta-llama/llama-3.2-90b-vision-instruct | paid
meta-llama/llama-3.2-90b-vision-instruct:free | free
meta-llama/llama-3.3-70b-instruct | paid meta-llama/llama-3.3-70b-instruct | paid
meta-llama/llama-3.3-70b-instruct:free | free
meta-llama/llama-4-maverick | paid
meta-llama/llama-4-scout | paid
meta-llama/llama-guard-4-12b | paid
meta-llama/llama-guard-2-8b | paid meta-llama/llama-guard-2-8b | paid
microsoft/phi-4 | paid
microsoft/phi-4-multimodal-instruct | paid
microsoft/phi-4-reasoning-plus | paid
microsoft/phi-3-medium-128k-instruct | paid microsoft/phi-3-medium-128k-instruct | paid
microsoft/phi-3-medium-128k-instruct:free | free
microsoft/phi-3-mini-128k-instruct | paid microsoft/phi-3-mini-128k-instruct | paid
microsoft/phi-3-mini-128k-instruct:free | free
microsoft/phi-3.5-mini-128k-instruct | paid microsoft/phi-3.5-mini-128k-instruct | paid
minimax/minimax-m1 | paid sophosympatheia/midnight-rose-70b | paid
minimax/minimax-m2 | paid
minimax/minimax-m2.1 | paid
minimax/minimax-01 | paid
mistralai/mistral-large | paid mistralai/mistral-large | paid
mistralai/mistral-large-2407 | paid mistralai/mistral-large-2407 | paid
mistralai/mistral-large-2411 | paid mistralai/mistral-large-2411 | paid
mistralai/mistral-medium | paid
nothingiisreal/mn-celeste-12b | paid
mistralai/mistral-small | paid
mistralai/mistral-tiny | paid mistralai/mistral-tiny | paid
mistralai/codestral-2508 | paid mistralai/codestral-mamba | paid
mistralai/devstral-2512 | paid
mistralai/devstral-2512:free | free
mistralai/devstral-medium | paid
mistralai/devstral-small | paid
mistralai/devstral-small-2505 | paid
mistralai/ministral-14b-2512 | paid
mistralai/ministral-3b-2512 | paid
mistralai/ministral-8b-2512 | paid
mistralai/ministral-3b | paid mistralai/ministral-3b | paid
mistralai/ministral-8b | paid mistralai/ministral-8b | paid
mistralai/mistral-7b-instruct | paid mistralai/mistral-7b-instruct | paid
mistralai/mistral-7b-instruct:free | free mistralai/mistral-7b-instruct:free | free
mistralai/mistral-7b-instruct:nitro | paid
mistralai/mistral-7b-instruct-v0.1 | paid mistralai/mistral-7b-instruct-v0.1 | paid
mistralai/mistral-7b-instruct-v0.2 | paid mistralai/mistral-7b-instruct-v0.2 | paid
mistralai/mistral-7b-instruct-v0.3 | paid mistralai/mistral-7b-instruct-v0.3 | paid
mistralai/mistral-large-2512 | paid
mistralai/mistral-medium-3 | paid
mistralai/mistral-medium-3.1 | paid
mistralai/mistral-nemo | paid mistralai/mistral-nemo | paid
mistralai/mistral-small-24b-instruct-2501 | paid
mistralai/mistral-small-3.1-24b-instruct | paid
mistralai/mistral-small-3.1-24b-instruct:free | free
mistralai/mistral-small-3.2-24b-instruct | paid
mistralai/mistral-small-creative | paid
mistralai/mixtral-8x22b-instruct | paid mistralai/mixtral-8x22b-instruct | paid
mistralai/mixtral-8x7b | paid
mistralai/mixtral-8x7b-instruct | paid mistralai/mixtral-8x7b-instruct | paid
mistralai/mixtral-8x7b-instruct:nitro | paid
mistralai/pixtral-12b | paid mistralai/pixtral-12b | paid
mistralai/pixtral-large-2411 | paid mistralai/pixtral-large-2411 | paid
mistralai/mistral-saba | paid
mistralai/voxtral-small-24b-2507 | paid
moonshotai/kimi-dev-72b | paid
moonshotai/kimi-k2 | paid
moonshotai/kimi-k2:free | free
moonshotai/kimi-k2-0905 | paid
moonshotai/kimi-k2-0905:exacto | paid
moonshotai/kimi-k2-thinking | paid
morph/morph-v3-fast | paid
morph/morph-v3-large | paid
gryphe/mythomax-l2-13b | paid gryphe/mythomax-l2-13b | paid
gryphe/mythomax-l2-13b:extended | paid
gryphe/mythomax-l2-13b:free | free
gryphe/mythomax-l2-13b:nitro | paid
neversleep/llama-3-lumimaid-70b | paid
neversleep/llama-3-lumimaid-8b | paid
neversleep/llama-3-lumimaid-8b:extended | paid
neversleep/llama-3.1-lumimaid-70b | paid
neversleep/llama-3.1-lumimaid-8b | paid neversleep/llama-3.1-lumimaid-8b | paid
nex-agi/deepseek-v3.1-nex-n1:free | free
neversleep/noromaid-20b | paid neversleep/noromaid-20b | paid
nousresearch/deephermes-3-mistral-24b-preview | paid nousresearch/nous-hermes-llama2-13b | paid
nousresearch/nous-hermes-2-mixtral-8x7b-dpo | paid
nousresearch/hermes-3-llama-3.1-405b | paid nousresearch/hermes-3-llama-3.1-405b | paid
nousresearch/hermes-3-llama-3.1-405b:free | free
nousresearch/hermes-3-llama-3.1-70b | paid nousresearch/hermes-3-llama-3.1-70b | paid
nousresearch/hermes-4-405b | paid
nousresearch/hermes-4-70b | paid
nousresearch/hermes-2-pro-llama-3-8b | paid nousresearch/hermes-2-pro-llama-3-8b | paid
nvidia/llama-3.1-nemotron-70b-instruct | paid nvidia/llama-3.1-nemotron-70b-instruct | paid
nvidia/llama-3.1-nemotron-ultra-253b-v1 | paid
nvidia/llama-3.3-nemotron-super-49b-v1.5 | paid
nvidia/nemotron-3-nano-30b-a3b | paid
nvidia/nemotron-3-nano-30b-a3b:free | free
nvidia/nemotron-nano-12b-v2-vl | paid
nvidia/nemotron-nano-12b-v2-vl:free | free
nvidia/nemotron-nano-9b-v2 | paid
nvidia/nemotron-nano-9b-v2:free | free
openai/chatgpt-4o-latest | paid openai/chatgpt-4o-latest | paid
openai/codex-mini | paid
openai/gpt-3.5-turbo | paid openai/gpt-3.5-turbo | paid
openai/gpt-3.5-turbo-0613 | paid openai/gpt-3.5-turbo-0613 | paid
openai/gpt-3.5-turbo-16k | paid openai/gpt-3.5-turbo-16k | paid
openai/gpt-3.5-turbo-0125 | paid
openai/gpt-3.5-turbo-1106 | paid
openai/gpt-3.5-turbo-instruct | paid openai/gpt-3.5-turbo-instruct | paid
openai/gpt-4 | paid openai/gpt-4 | paid
openai/gpt-4-0314 | paid openai/gpt-4-0314 | paid
openai/gpt-4-32k | paid
openai/gpt-4-32k-0314 | paid
openai/gpt-4-turbo | paid openai/gpt-4-turbo | paid
openai/gpt-4-1106-preview | paid openai/gpt-4-1106-preview | paid
openai/gpt-4-turbo-preview | paid openai/gpt-4-turbo-preview | paid
openai/gpt-4.1 | paid
openai/gpt-4.1-mini | paid
openai/gpt-4.1-nano | paid
openai/gpt-4o | paid openai/gpt-4o | paid
openai/gpt-4o-2024-05-13 | paid openai/gpt-4o-2024-05-13 | paid
openai/gpt-4o-2024-08-06 | paid openai/gpt-4o-2024-08-06 | paid
openai/gpt-4o-2024-11-20 | paid openai/gpt-4o-2024-11-20 | paid
openai/gpt-4o:extended | paid openai/gpt-4o:extended | paid
openai/gpt-4o-audio-preview | paid
openai/gpt-4o-search-preview | paid
openai/gpt-4o-mini | paid openai/gpt-4o-mini | paid
openai/gpt-4o-mini-2024-07-18 | paid openai/gpt-4o-mini-2024-07-18 | paid
openai/gpt-4o-mini-search-preview | paid
openai/gpt-5 | paid
openai/gpt-5-chat | paid
openai/gpt-5-codex | paid
openai/gpt-5-image | paid
openai/gpt-5-image-mini | paid
openai/gpt-5-mini | paid
openai/gpt-5-nano | paid
openai/gpt-5-pro | paid
openai/gpt-5.1 | paid
openai/gpt-5.1-chat | paid
openai/gpt-5.1-codex | paid
openai/gpt-5.1-codex-max | paid
openai/gpt-5.1-codex-mini | paid
openai/gpt-5.2 | paid
openai/gpt-5.2-chat | paid
openai/gpt-5.2-pro | paid
openai/gpt-oss-120b | paid
openai/gpt-oss-120b:exacto | paid
openai/gpt-oss-120b:free | free
openai/gpt-oss-20b | paid
openai/gpt-oss-20b:free | free
openai/gpt-oss-safeguard-20b | paid
openai/o1 | paid openai/o1 | paid
openai/o1-pro | paid openai/o1-mini | paid
openai/o3 | paid openai/o1-mini-2024-09-12 | paid
openai/o3-deep-research | paid openai/o1-preview | paid
openai/o3-mini | paid openai/o1-preview-2024-09-12 | paid
openai/o3-mini-high | paid openchat/openchat-7b | paid
openai/o3-pro | paid openchat/openchat-7b:free | free
openai/o4-mini | paid teknium/openhermes-2.5-mistral-7b | paid
openai/o4-mini-deep-research | paid perplexity/llama-3.1-sonar-huge-128k-online | paid
openai/o4-mini-high | paid perplexity/llama-3.1-sonar-large-128k-chat | paid
opengvlab/internvl3-78b | paid perplexity/llama-3.1-sonar-large-128k-online | paid
perplexity/sonar | paid perplexity/llama-3.1-sonar-small-128k-chat | paid
perplexity/sonar-deep-research | paid perplexity/llama-3.1-sonar-small-128k-online | paid
perplexity/sonar-pro | paid perplexity/llama-3-sonar-large-32k-chat | paid
perplexity/sonar-pro-search | paid perplexity/llama-3-sonar-large-32k-online | paid
perplexity/sonar-reasoning | paid perplexity/llama-3-sonar-small-32k-chat | paid
perplexity/sonar-reasoning-pro | paid pygmalionai/mythalion-13b | paid
prime-intellect/intellect-3 | paid qwen/qwen-2-72b-instruct | paid
qwen/qwen-plus-2025-07-28 | paid qwen/qwen-2-7b-instruct | paid
qwen/qwen-plus-2025-07-28:thinking | paid qwen/qwen-2-7b-instruct:free | free
qwen/qwen-vl-max | paid qwen/qvq-72b-preview | paid
qwen/qwen-vl-plus | paid qwen/qwq-32b-preview | paid
qwen/qwen-max | paid qwen/qwen-2-vl-72b-instruct | paid
qwen/qwen-plus | paid qwen/qwen-2-vl-7b-instruct | paid
qwen/qwen-turbo | paid
qwen/qwen-2.5-7b-instruct | paid
qwen/qwen2.5-coder-7b-instruct | paid
qwen/qwen2.5-vl-32b-instruct | paid
qwen/qwen2.5-vl-72b-instruct | paid
qwen/qwen-2.5-vl-7b-instruct | paid
qwen/qwen-2.5-vl-7b-instruct:free | free
qwen/qwen3-14b | paid
qwen/qwen3-235b-a22b | paid
qwen/qwen3-235b-a22b-2507 | paid
qwen/qwen3-235b-a22b-thinking-2507 | paid
qwen/qwen3-30b-a3b | paid
qwen/qwen3-30b-a3b-instruct-2507 | paid
qwen/qwen3-30b-a3b-thinking-2507 | paid
qwen/qwen3-32b | paid
qwen/qwen3-4b:free | free
qwen/qwen3-8b | paid
qwen/qwen3-coder-30b-a3b-instruct | paid
qwen/qwen3-coder | paid
qwen/qwen3-coder:exacto | paid
qwen/qwen3-coder:free | free
qwen/qwen3-coder-flash | paid
qwen/qwen3-coder-plus | paid
qwen/qwen3-max | paid
qwen/qwen3-next-80b-a3b-instruct | paid
qwen/qwen3-next-80b-a3b-thinking | paid
qwen/qwen3-vl-235b-a22b-instruct | paid
qwen/qwen3-vl-235b-a22b-thinking | paid
qwen/qwen3-vl-30b-a3b-instruct | paid
qwen/qwen3-vl-30b-a3b-thinking | paid
qwen/qwen3-vl-32b-instruct | paid
qwen/qwen3-vl-8b-instruct | paid
qwen/qwen3-vl-8b-thinking | paid
qwen/qwq-32b | paid
qwen/qwen-2.5-72b-instruct | paid qwen/qwen-2.5-72b-instruct | paid
qwen/qwen-2.5-7b-instruct | paid
qwen/qwen-2.5-coder-32b-instruct | paid qwen/qwen-2.5-coder-32b-instruct | paid
relace/relace-apply-3 | paid
relace/relace-search | paid
undi95/remm-slerp-l2-13b | paid undi95/remm-slerp-l2-13b | paid
undi95/remm-slerp-l2-13b:extended | paid
thedrummer/rocinante-12b | paid
sao10k/l3-lunaris-8b | paid sao10k/l3-lunaris-8b | paid
sao10k/l3-euryale-70b | paid sao10k/l3-euryale-70b | paid
sao10k/l3.1-70b-hanami-x1 | paid
sao10k/l3.1-euryale-70b | paid sao10k/l3.1-euryale-70b | paid
sao10k/l3.3-euryale-70b | paid sao10k/l3.3-euryale-70b | paid
raifle/sorcererlm-8x22b | paid raifle/sorcererlm-8x22b | paid
stepfun-ai/step3 | paid undi95/toppy-m-7b | paid
switchpoint/router | paid undi95/toppy-m-7b:free | free
tencent/hunyuan-a13b-instruct | paid undi95/toppy-m-7b:nitro | paid
thedrummer/cydonia-24b-v4.1 | paid
thedrummer/rocinante-12b | paid
thedrummer/skyfall-36b-v2 | paid
thedrummer/unslopnemo-12b | paid thedrummer/unslopnemo-12b | paid
thudm/glm-4.1v-9b-thinking | paid microsoft/wizardlm-2-7b | paid
tngtech/deepseek-r1t-chimera | paid
tngtech/deepseek-r1t-chimera:free | free
tngtech/deepseek-r1t2-chimera | paid
tngtech/deepseek-r1t2-chimera:free | free
tngtech/tng-r1t-chimera | paid
tngtech/tng-r1t-chimera:free | free
alibaba/tongyi-deepresearch-30b-a3b | paid
alibaba/tongyi-deepresearch-30b-a3b:free | free
cognitivecomputations/dolphin-mistral-24b-venice-edition:free | free
microsoft/wizardlm-2-8x22b | paid microsoft/wizardlm-2-8x22b | paid
x-ai/grok-3 | paid x-ai/grok-2-1212 | paid
x-ai/grok-3-beta | paid x-ai/grok-2-vision-1212 | paid
x-ai/grok-3-mini | paid x-ai/grok-beta | paid
x-ai/grok-3-mini-beta | paid x-ai/grok-vision-beta | paid
x-ai/grok-4 | paid xwin-lm/xwin-lm-70b | paid
x-ai/grok-4-fast | paid
x-ai/grok-4.1-fast | paid
x-ai/grok-code-fast-1 | paid
xiaomi/mimo-v2-flash:free | free
z-ai/glm-4-32b | paid
z-ai/glm-4.5 | paid
z-ai/glm-4.5-air | paid
z-ai/glm-4.5-air:free | free
z-ai/glm-4.5v | paid
z-ai/glm-4.6 | paid
z-ai/glm-4.6:exacto | paid
z-ai/glm-4.6v | paid
z-ai/glm-4.7 | paid
 
 OpenAI models:  OpenAI models:
 
babbage-002 babbage-002
chatgpt-4o-latest chatgpt-4o-latest
chatgpt-image-latest
codex-mini-latest
dall-e-2 dall-e-2
dall-e-3 dall-e-3
davinci-002 davinci-002
@ -404,95 +266,33 @@ export interface IKBotOptions {
gpt-4-0125-preview gpt-4-0125-preview
gpt-4-0613 gpt-4-0613
gpt-4-1106-preview gpt-4-1106-preview
gpt-4-1106-vision-preview
gpt-4-turbo gpt-4-turbo
gpt-4-turbo-2024-04-09 gpt-4-turbo-2024-04-09
gpt-4-turbo-preview gpt-4-turbo-preview
gpt-4.1 gpt-4-vision-preview
gpt-4.1-2025-04-14
gpt-4.1-mini
gpt-4.1-mini-2025-04-14
gpt-4.1-nano
gpt-4.1-nano-2025-04-14
gpt-4o gpt-4o
gpt-4o-2024-05-13 gpt-4o-2024-05-13
gpt-4o-2024-08-06 gpt-4o-2024-08-06
gpt-4o-2024-11-20 gpt-4o-2024-11-20
gpt-4o-audio-preview gpt-4o-audio-preview
gpt-4o-audio-preview-2024-10-01
gpt-4o-audio-preview-2024-12-17 gpt-4o-audio-preview-2024-12-17
gpt-4o-audio-preview-2025-06-03
gpt-4o-mini gpt-4o-mini
gpt-4o-mini-2024-07-18 gpt-4o-mini-2024-07-18
gpt-4o-mini-audio-preview gpt-4o-mini-audio-preview
gpt-4o-mini-audio-preview-2024-12-17 gpt-4o-mini-audio-preview-2024-12-17
gpt-4o-mini-realtime-preview gpt-4o-mini-realtime-preview
gpt-4o-mini-realtime-preview-2024-12-17 gpt-4o-mini-realtime-preview-2024-12-17
gpt-4o-mini-search-preview
gpt-4o-mini-search-preview-2025-03-11
gpt-4o-mini-transcribe
gpt-4o-mini-transcribe-2025-03-20
gpt-4o-mini-transcribe-2025-12-15
gpt-4o-mini-tts
gpt-4o-mini-tts-2025-03-20
gpt-4o-mini-tts-2025-12-15
gpt-4o-realtime-preview gpt-4o-realtime-preview
gpt-4o-realtime-preview-2024-10-01
gpt-4o-realtime-preview-2024-12-17 gpt-4o-realtime-preview-2024-12-17
gpt-4o-realtime-preview-2025-06-03 o1-mini
gpt-4o-search-preview o1-mini-2024-09-12
gpt-4o-search-preview-2025-03-11 o1-preview
gpt-4o-transcribe o1-preview-2024-09-12
gpt-4o-transcribe-diarize
gpt-5
gpt-5-2025-08-07
gpt-5-chat-latest
gpt-5-codex
gpt-5-mini
gpt-5-mini-2025-08-07
gpt-5-nano
gpt-5-nano-2025-08-07
gpt-5-pro
gpt-5-pro-2025-10-06
gpt-5-search-api
gpt-5-search-api-2025-10-14
gpt-5.1
gpt-5.1-2025-11-13
gpt-5.1-chat-latest
gpt-5.1-codex
gpt-5.1-codex-max
gpt-5.1-codex-mini
gpt-5.2
gpt-5.2-2025-12-11
gpt-5.2-chat-latest
gpt-5.2-pro
gpt-5.2-pro-2025-12-11
gpt-audio
gpt-audio-2025-08-28
gpt-audio-mini
gpt-audio-mini-2025-10-06
gpt-audio-mini-2025-12-15
gpt-image-1
gpt-image-1-mini
gpt-image-1.5
gpt-realtime
gpt-realtime-2025-08-28
gpt-realtime-mini
gpt-realtime-mini-2025-10-06
gpt-realtime-mini-2025-12-15
o1
o1-2024-12-17
o1-pro
o1-pro-2025-03-19
o3
o3-2025-04-16
o3-mini
o3-mini-2025-01-31
o4-mini
o4-mini-2025-04-16
o4-mini-deep-research
o4-mini-deep-research-2025-06-26
omni-moderation-2024-09-26 omni-moderation-2024-09-26
omni-moderation-latest omni-moderation-latest
sora-2
sora-2-pro
text-embedding-3-large text-embedding-3-large
text-embedding-3-small text-embedding-3-small
text-embedding-ada-002 text-embedding-ada-002