@ljoukov/llm 7.0.10 → 7.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/index.cjs +51 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +51 -10
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -19,10 +19,10 @@ declare function estimateCallCostUsd({ modelId, tokens, responseImages, imageSiz
|
|
|
19
19
|
imageSize?: string;
|
|
20
20
|
}): number;
|
|
21
21
|
|
|
22
|
-
declare const OPENAI_MODEL_IDS: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
|
|
22
|
+
declare const OPENAI_MODEL_IDS: readonly ["gpt-5.5", "gpt-5.5-fast", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
|
|
23
23
|
type OpenAiModelId = (typeof OPENAI_MODEL_IDS)[number];
|
|
24
24
|
declare function isOpenAiModelId(value: string): value is OpenAiModelId;
|
|
25
|
-
declare const CHATGPT_MODEL_IDS: readonly ["chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark"];
|
|
25
|
+
declare const CHATGPT_MODEL_IDS: readonly ["chatgpt-gpt-5.5", "chatgpt-gpt-5.5-fast", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark"];
|
|
26
26
|
declare const EXPERIMENTAL_CHATGPT_MODEL_PREFIX: "experimental-chatgpt-";
|
|
27
27
|
type ListedChatGptModelId = (typeof CHATGPT_MODEL_IDS)[number];
|
|
28
28
|
type ExperimentalChatGptModelId = `${typeof EXPERIMENTAL_CHATGPT_MODEL_PREFIX}${string}`;
|
|
@@ -218,11 +218,11 @@ type LlmToolCallCompletedEvent = {
|
|
|
218
218
|
type LlmToolCallStreamEvent = LlmToolCallStartedEvent | LlmToolCallCompletedEvent;
|
|
219
219
|
type LlmStreamEvent = LlmTextDeltaEvent | LlmUsageEvent | LlmModelEvent | LlmBlockedEvent | LlmToolCallStreamEvent;
|
|
220
220
|
type LlmProvider = "openai" | "chatgpt" | "gemini" | "fireworks";
|
|
221
|
-
declare const LLM_TEXT_MODEL_IDS: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark", "kimi-k2.5", "glm-5", "minimax-m2.1", "gpt-oss-120b", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-flash-latest", "gemini-flash-lite-latest"];
|
|
221
|
+
declare const LLM_TEXT_MODEL_IDS: readonly ["gpt-5.5", "gpt-5.5-fast", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "chatgpt-gpt-5.5", "chatgpt-gpt-5.5-fast", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark", "kimi-k2.5", "glm-5", "minimax-m2.1", "gpt-oss-120b", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-flash-latest", "gemini-flash-lite-latest"];
|
|
222
222
|
type LlmTextModelId = (typeof LLM_TEXT_MODEL_IDS)[number] | ExperimentalChatGptModelId;
|
|
223
223
|
declare const LLM_IMAGE_MODEL_IDS: readonly ["gemini-3-pro-image-preview", "gemini-3.1-flash-image-preview"];
|
|
224
224
|
type LlmImageModelId = (typeof LLM_IMAGE_MODEL_IDS)[number];
|
|
225
|
-
declare const LLM_MODEL_IDS: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark", "kimi-k2.5", "glm-5", "minimax-m2.1", "gpt-oss-120b", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-flash-latest", "gemini-flash-lite-latest", "gemini-3-pro-image-preview", "gemini-3.1-flash-image-preview"];
|
|
225
|
+
declare const LLM_MODEL_IDS: readonly ["gpt-5.5", "gpt-5.5-fast", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "chatgpt-gpt-5.5", "chatgpt-gpt-5.5-fast", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark", "kimi-k2.5", "glm-5", "minimax-m2.1", "gpt-oss-120b", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-flash-latest", "gemini-flash-lite-latest", "gemini-3-pro-image-preview", "gemini-3.1-flash-image-preview"];
|
|
226
226
|
type LlmModelId = LlmTextModelId | LlmImageModelId;
|
|
227
227
|
declare function isLlmTextModelId(value: string): value is LlmTextModelId;
|
|
228
228
|
declare function isLlmImageModelId(value: string): value is LlmImageModelId;
|
package/dist/index.d.ts
CHANGED
|
@@ -19,10 +19,10 @@ declare function estimateCallCostUsd({ modelId, tokens, responseImages, imageSiz
|
|
|
19
19
|
imageSize?: string;
|
|
20
20
|
}): number;
|
|
21
21
|
|
|
22
|
-
declare const OPENAI_MODEL_IDS: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
|
|
22
|
+
declare const OPENAI_MODEL_IDS: readonly ["gpt-5.5", "gpt-5.5-fast", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
|
|
23
23
|
type OpenAiModelId = (typeof OPENAI_MODEL_IDS)[number];
|
|
24
24
|
declare function isOpenAiModelId(value: string): value is OpenAiModelId;
|
|
25
|
-
declare const CHATGPT_MODEL_IDS: readonly ["chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark"];
|
|
25
|
+
declare const CHATGPT_MODEL_IDS: readonly ["chatgpt-gpt-5.5", "chatgpt-gpt-5.5-fast", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark"];
|
|
26
26
|
declare const EXPERIMENTAL_CHATGPT_MODEL_PREFIX: "experimental-chatgpt-";
|
|
27
27
|
type ListedChatGptModelId = (typeof CHATGPT_MODEL_IDS)[number];
|
|
28
28
|
type ExperimentalChatGptModelId = `${typeof EXPERIMENTAL_CHATGPT_MODEL_PREFIX}${string}`;
|
|
@@ -218,11 +218,11 @@ type LlmToolCallCompletedEvent = {
|
|
|
218
218
|
type LlmToolCallStreamEvent = LlmToolCallStartedEvent | LlmToolCallCompletedEvent;
|
|
219
219
|
type LlmStreamEvent = LlmTextDeltaEvent | LlmUsageEvent | LlmModelEvent | LlmBlockedEvent | LlmToolCallStreamEvent;
|
|
220
220
|
type LlmProvider = "openai" | "chatgpt" | "gemini" | "fireworks";
|
|
221
|
-
declare const LLM_TEXT_MODEL_IDS: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark", "kimi-k2.5", "glm-5", "minimax-m2.1", "gpt-oss-120b", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-flash-latest", "gemini-flash-lite-latest"];
|
|
221
|
+
declare const LLM_TEXT_MODEL_IDS: readonly ["gpt-5.5", "gpt-5.5-fast", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "chatgpt-gpt-5.5", "chatgpt-gpt-5.5-fast", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark", "kimi-k2.5", "glm-5", "minimax-m2.1", "gpt-oss-120b", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-flash-latest", "gemini-flash-lite-latest"];
|
|
222
222
|
type LlmTextModelId = (typeof LLM_TEXT_MODEL_IDS)[number] | ExperimentalChatGptModelId;
|
|
223
223
|
declare const LLM_IMAGE_MODEL_IDS: readonly ["gemini-3-pro-image-preview", "gemini-3.1-flash-image-preview"];
|
|
224
224
|
type LlmImageModelId = (typeof LLM_IMAGE_MODEL_IDS)[number];
|
|
225
|
-
declare const LLM_MODEL_IDS: readonly ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark", "kimi-k2.5", "glm-5", "minimax-m2.1", "gpt-oss-120b", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-flash-latest", "gemini-flash-lite-latest", "gemini-3-pro-image-preview", "gemini-3.1-flash-image-preview"];
|
|
225
|
+
declare const LLM_MODEL_IDS: readonly ["gpt-5.5", "gpt-5.5-fast", "gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano", "chatgpt-gpt-5.5", "chatgpt-gpt-5.5-fast", "chatgpt-gpt-5.4", "chatgpt-gpt-5.4-fast", "chatgpt-gpt-5.4-mini", "chatgpt-gpt-5.3-codex-spark", "kimi-k2.5", "glm-5", "minimax-m2.1", "gpt-oss-120b", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", "gemini-flash-latest", "gemini-flash-lite-latest", "gemini-3-pro-image-preview", "gemini-3.1-flash-image-preview"];
|
|
226
226
|
type LlmModelId = LlmTextModelId | LlmImageModelId;
|
|
227
227
|
declare function isLlmTextModelId(value: string): value is LlmTextModelId;
|
|
228
228
|
declare function isLlmImageModelId(value: string): value is LlmImageModelId;
|
package/dist/index.js
CHANGED
|
@@ -206,16 +206,27 @@ function getGeminiImagePricing(modelId) {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
// src/openai/models.ts
|
|
209
|
-
var OPENAI_MODEL_IDS = [
|
|
209
|
+
var OPENAI_MODEL_IDS = [
|
|
210
|
+
"gpt-5.5",
|
|
211
|
+
"gpt-5.5-fast",
|
|
212
|
+
"gpt-5.4",
|
|
213
|
+
"gpt-5.4-mini",
|
|
214
|
+
"gpt-5.4-nano"
|
|
215
|
+
];
|
|
210
216
|
function isOpenAiModelId(value) {
|
|
211
217
|
return OPENAI_MODEL_IDS.includes(value);
|
|
212
218
|
}
|
|
213
219
|
var CHATGPT_MODEL_IDS = [
|
|
220
|
+
"chatgpt-gpt-5.5",
|
|
221
|
+
"chatgpt-gpt-5.5-fast",
|
|
214
222
|
"chatgpt-gpt-5.4",
|
|
215
223
|
"chatgpt-gpt-5.4-fast",
|
|
216
224
|
"chatgpt-gpt-5.4-mini",
|
|
217
225
|
"chatgpt-gpt-5.3-codex-spark"
|
|
218
226
|
];
|
|
227
|
+
var FAST_MODEL_SUFFIX = "-fast";
|
|
228
|
+
var OPENAI_PRIORITY_MODEL_IDS = ["gpt-5.5-fast"];
|
|
229
|
+
var CHATGPT_PRIORITY_MODEL_IDS = ["chatgpt-gpt-5.5-fast", "chatgpt-gpt-5.4-fast"];
|
|
219
230
|
var EXPERIMENTAL_CHATGPT_MODEL_PREFIX = "experimental-chatgpt-";
|
|
220
231
|
function isExperimentalChatGptModelId(value) {
|
|
221
232
|
return value.startsWith(EXPERIMENTAL_CHATGPT_MODEL_PREFIX) && value.length > EXPERIMENTAL_CHATGPT_MODEL_PREFIX.length;
|
|
@@ -223,6 +234,15 @@ function isExperimentalChatGptModelId(value) {
|
|
|
223
234
|
function isChatGptModelId(value) {
|
|
224
235
|
return CHATGPT_MODEL_IDS.includes(value) || isExperimentalChatGptModelId(value);
|
|
225
236
|
}
|
|
237
|
+
function stripFastSuffix(model) {
|
|
238
|
+
return model.endsWith(FAST_MODEL_SUFFIX) ? model.slice(0, -FAST_MODEL_SUFFIX.length) : model;
|
|
239
|
+
}
|
|
240
|
+
function resolveOpenAiProviderModel(model) {
|
|
241
|
+
return OPENAI_PRIORITY_MODEL_IDS.includes(model) ? stripFastSuffix(model) : model;
|
|
242
|
+
}
|
|
243
|
+
function resolveOpenAiServiceTier(model) {
|
|
244
|
+
return OPENAI_PRIORITY_MODEL_IDS.includes(model) ? "priority" : void 0;
|
|
245
|
+
}
|
|
226
246
|
function stripChatGptPrefix(model) {
|
|
227
247
|
if (isExperimentalChatGptModelId(model)) {
|
|
228
248
|
return model.slice(EXPERIMENTAL_CHATGPT_MODEL_PREFIX.length);
|
|
@@ -230,18 +250,16 @@ function stripChatGptPrefix(model) {
|
|
|
230
250
|
return model.slice("chatgpt-".length);
|
|
231
251
|
}
|
|
232
252
|
function resolveChatGptProviderModel(model) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
return "gpt-5.4";
|
|
236
|
-
default:
|
|
237
|
-
return stripChatGptPrefix(model);
|
|
238
|
-
}
|
|
253
|
+
const providerModel = stripChatGptPrefix(model);
|
|
254
|
+
return CHATGPT_PRIORITY_MODEL_IDS.includes(model) ? stripFastSuffix(providerModel) : providerModel;
|
|
239
255
|
}
|
|
240
256
|
function resolveChatGptServiceTier(model) {
|
|
241
|
-
return model
|
|
257
|
+
return CHATGPT_PRIORITY_MODEL_IDS.includes(model) ? "priority" : void 0;
|
|
242
258
|
}
|
|
243
259
|
|
|
244
260
|
// src/openai/pricing.ts
|
|
261
|
+
var OPENAI_GPT_55_FAST_MODEL_IDS = ["gpt-5.5-fast", "chatgpt-gpt-5.5-fast"];
|
|
262
|
+
var OPENAI_GPT_55_STANDARD_MODEL_IDS = ["gpt-5.5", "chatgpt-gpt-5.5"];
|
|
245
263
|
var OPENAI_GPT_54_FAST_MODEL_IDS = ["gpt-5.4-fast", "chatgpt-gpt-5.4-fast"];
|
|
246
264
|
var OPENAI_GPT_54_MINI_MODEL_IDS = ["gpt-5.4-mini", "chatgpt-gpt-5.4-mini"];
|
|
247
265
|
var OPENAI_GPT_54_NANO_MODEL_IDS = ["gpt-5.4-nano"];
|
|
@@ -250,6 +268,16 @@ var OPENAI_GPT_53_CODEX_SPARK_MODEL_IDS = [
|
|
|
250
268
|
"chatgpt-gpt-5.3-codex-spark"
|
|
251
269
|
];
|
|
252
270
|
var OPENAI_GPT_54_STANDARD_MODEL_IDS = ["gpt-5.4", "chatgpt-gpt-5.4"];
|
|
271
|
+
var OPENAI_GPT_55_PRICING = {
|
|
272
|
+
inputRate: 5 / 1e6,
|
|
273
|
+
cachedRate: 0.5 / 1e6,
|
|
274
|
+
outputRate: 30 / 1e6
|
|
275
|
+
};
|
|
276
|
+
var OPENAI_GPT_55_PRIORITY_PRICING = {
|
|
277
|
+
inputRate: 12.5 / 1e6,
|
|
278
|
+
cachedRate: 1.25 / 1e6,
|
|
279
|
+
outputRate: 75 / 1e6
|
|
280
|
+
};
|
|
253
281
|
var OPENAI_GPT_54_PRICING = {
|
|
254
282
|
inputRate: 2.5 / 1e6,
|
|
255
283
|
cachedRate: 0.25 / 1e6,
|
|
@@ -274,6 +302,12 @@ function getOpenAiPricing(modelId) {
|
|
|
274
302
|
if (isExperimentalChatGptModelId(modelId)) {
|
|
275
303
|
return OPENAI_GPT_54_PRICING;
|
|
276
304
|
}
|
|
305
|
+
if (OPENAI_GPT_55_FAST_MODEL_IDS.includes(modelId)) {
|
|
306
|
+
return OPENAI_GPT_55_PRIORITY_PRICING;
|
|
307
|
+
}
|
|
308
|
+
if (OPENAI_GPT_55_STANDARD_MODEL_IDS.includes(modelId)) {
|
|
309
|
+
return OPENAI_GPT_55_PRICING;
|
|
310
|
+
}
|
|
277
311
|
if (OPENAI_GPT_54_FAST_MODEL_IDS.includes(modelId)) {
|
|
278
312
|
return OPENAI_GPT_54_PRIORITY_PRICING;
|
|
279
313
|
}
|
|
@@ -4955,7 +4989,11 @@ function resolveProvider(model) {
|
|
|
4955
4989
|
}
|
|
4956
4990
|
}
|
|
4957
4991
|
if (isOpenAiModelId(model)) {
|
|
4958
|
-
return {
|
|
4992
|
+
return {
|
|
4993
|
+
provider: "openai",
|
|
4994
|
+
model: resolveOpenAiProviderModel(model),
|
|
4995
|
+
serviceTier: resolveOpenAiServiceTier(model)
|
|
4996
|
+
};
|
|
4959
4997
|
}
|
|
4960
4998
|
throw new Error(`Unsupported text model: ${model}`);
|
|
4961
4999
|
}
|
|
@@ -7729,6 +7767,7 @@ async function runTextCall(params) {
|
|
|
7729
7767
|
{
|
|
7730
7768
|
model: modelForProvider,
|
|
7731
7769
|
input: openAiInput,
|
|
7770
|
+
...providerInfo.serviceTier ? { service_tier: providerInfo.serviceTier } : {},
|
|
7732
7771
|
reasoning,
|
|
7733
7772
|
text: openAiTextConfig,
|
|
7734
7773
|
...openAiTools ? { tools: openAiTools } : {},
|
|
@@ -8614,6 +8653,7 @@ async function runToolLoop(request) {
|
|
|
8614
8653
|
const stepRequestPayload = {
|
|
8615
8654
|
model: providerInfo.model,
|
|
8616
8655
|
input: preparedInput,
|
|
8656
|
+
...providerInfo.serviceTier ? { service_tier: providerInfo.serviceTier } : {},
|
|
8617
8657
|
...previousResponseId ? { previous_response_id: previousResponseId } : {},
|
|
8618
8658
|
...openAiTools.length > 0 ? { tools: openAiTools } : {},
|
|
8619
8659
|
...openAiTools.length > 0 ? { parallel_tool_calls: true } : {},
|
|
@@ -8642,6 +8682,7 @@ async function runToolLoop(request) {
|
|
|
8642
8682
|
{
|
|
8643
8683
|
model: providerInfo.model,
|
|
8644
8684
|
input: preparedInput,
|
|
8685
|
+
...providerInfo.serviceTier ? { service_tier: providerInfo.serviceTier } : {},
|
|
8645
8686
|
...previousResponseId ? { previous_response_id: previousResponseId } : {},
|
|
8646
8687
|
...openAiTools.length > 0 ? { tools: openAiTools } : {},
|
|
8647
8688
|
...openAiTools.length > 0 ? { parallel_tool_calls: true } : {},
|
|
@@ -12653,7 +12694,7 @@ function isCodexModel(model) {
|
|
|
12653
12694
|
return true;
|
|
12654
12695
|
}
|
|
12655
12696
|
const normalized = model.startsWith("chatgpt-") ? model.slice("chatgpt-".length) : model;
|
|
12656
|
-
return normalized.includes("codex") || normalized === "gpt-5.4" || normalized === "gpt-5.4-fast";
|
|
12697
|
+
return normalized.includes("codex") || normalized === "gpt-5.5" || normalized === "gpt-5.5-fast" || normalized === "gpt-5.4" || normalized === "gpt-5.4-fast";
|
|
12657
12698
|
}
|
|
12658
12699
|
function isGeminiModel(model) {
|
|
12659
12700
|
return model.startsWith("gemini-");
|