@ljoukov/llm 7.0.9 → 7.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -36,6 +36,7 @@ __export(index_exports, {
36
36
  CODEX_APPLY_PATCH_LARK_GRAMMAR: () => CODEX_APPLY_PATCH_LARK_GRAMMAR,
37
37
  DEFAULT_FILE_TTL_SECONDS: () => DEFAULT_FILE_TTL_SECONDS,
38
38
  DEFAULT_SIGNED_URL_TTL_SECONDS: () => DEFAULT_SIGNED_URL_TTL_SECONDS,
39
+ EXPERIMENTAL_CHATGPT_MODEL_PREFIX: () => EXPERIMENTAL_CHATGPT_MODEL_PREFIX,
39
40
  FIREWORKS_DEFAULT_GLM_MODEL: () => FIREWORKS_DEFAULT_GLM_MODEL,
40
41
  FIREWORKS_DEFAULT_GPT_OSS_120B_MODEL: () => FIREWORKS_DEFAULT_GPT_OSS_120B_MODEL,
41
42
  FIREWORKS_DEFAULT_KIMI_MODEL: () => FIREWORKS_DEFAULT_KIMI_MODEL,
@@ -90,6 +91,7 @@ __export(index_exports, {
90
91
  getChatGptAuthProfile: () => getChatGptAuthProfile,
91
92
  getCurrentToolCallContext: () => getCurrentToolCallContext,
92
93
  isChatGptModelId: () => isChatGptModelId,
94
+ isExperimentalChatGptModelId: () => isExperimentalChatGptModelId,
93
95
  isFireworksModelId: () => isFireworksModelId,
94
96
  isGeminiImageModelId: () => isGeminiImageModelId,
95
97
  isGeminiModelId: () => isGeminiModelId,
@@ -318,6 +320,42 @@ function getGeminiImagePricing(modelId) {
318
320
  return void 0;
319
321
  }
320
322
 
323
+ // src/openai/models.ts
324
+ var OPENAI_MODEL_IDS = ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
325
+ function isOpenAiModelId(value) {
326
+ return OPENAI_MODEL_IDS.includes(value);
327
+ }
328
+ var CHATGPT_MODEL_IDS = [
329
+ "chatgpt-gpt-5.4",
330
+ "chatgpt-gpt-5.4-fast",
331
+ "chatgpt-gpt-5.4-mini",
332
+ "chatgpt-gpt-5.3-codex-spark"
333
+ ];
334
+ var EXPERIMENTAL_CHATGPT_MODEL_PREFIX = "experimental-chatgpt-";
335
+ function isExperimentalChatGptModelId(value) {
336
+ return value.startsWith(EXPERIMENTAL_CHATGPT_MODEL_PREFIX) && value.length > EXPERIMENTAL_CHATGPT_MODEL_PREFIX.length;
337
+ }
338
+ function isChatGptModelId(value) {
339
+ return CHATGPT_MODEL_IDS.includes(value) || isExperimentalChatGptModelId(value);
340
+ }
341
+ function stripChatGptPrefix(model) {
342
+ if (isExperimentalChatGptModelId(model)) {
343
+ return model.slice(EXPERIMENTAL_CHATGPT_MODEL_PREFIX.length);
344
+ }
345
+ return model.slice("chatgpt-".length);
346
+ }
347
+ function resolveChatGptProviderModel(model) {
348
+ switch (model) {
349
+ case "chatgpt-gpt-5.4-fast":
350
+ return "gpt-5.4";
351
+ default:
352
+ return stripChatGptPrefix(model);
353
+ }
354
+ }
355
+ function resolveChatGptServiceTier(model) {
356
+ return model === "chatgpt-gpt-5.4-fast" ? "priority" : void 0;
357
+ }
358
+
321
359
  // src/openai/pricing.ts
322
360
  var OPENAI_GPT_54_FAST_MODEL_IDS = ["gpt-5.4-fast", "chatgpt-gpt-5.4-fast"];
323
361
  var OPENAI_GPT_54_MINI_MODEL_IDS = ["gpt-5.4-mini", "chatgpt-gpt-5.4-mini"];
@@ -348,6 +386,9 @@ var OPENAI_GPT_54_NANO_PRICING = {
348
386
  outputRate: 0.4 / 1e6
349
387
  };
350
388
  function getOpenAiPricing(modelId) {
389
+ if (isExperimentalChatGptModelId(modelId)) {
390
+ return OPENAI_GPT_54_PRICING;
391
+ }
351
392
  if (OPENAI_GPT_54_FAST_MODEL_IDS.includes(modelId)) {
352
393
  return OPENAI_GPT_54_PRIORITY_PRICING;
353
394
  }
@@ -2832,35 +2873,6 @@ async function runOpenAiCall(fn, modelId, runOptions) {
2832
2873
  return getSchedulerForModel3(modelId).run(async () => fn(getOpenAiClient()), runOptions);
2833
2874
  }
2834
2875
 
2835
- // src/openai/models.ts
2836
- var OPENAI_MODEL_IDS = ["gpt-5.4", "gpt-5.4-mini", "gpt-5.4-nano"];
2837
- function isOpenAiModelId(value) {
2838
- return OPENAI_MODEL_IDS.includes(value);
2839
- }
2840
- var CHATGPT_MODEL_IDS = [
2841
- "chatgpt-gpt-5.4",
2842
- "chatgpt-gpt-5.4-fast",
2843
- "chatgpt-gpt-5.4-mini",
2844
- "chatgpt-gpt-5.3-codex-spark"
2845
- ];
2846
- function isChatGptModelId(value) {
2847
- return CHATGPT_MODEL_IDS.includes(value);
2848
- }
2849
- function stripChatGptPrefix(model) {
2850
- return model.slice("chatgpt-".length);
2851
- }
2852
- function resolveChatGptProviderModel(model) {
2853
- switch (model) {
2854
- case "chatgpt-gpt-5.4-fast":
2855
- return "gpt-5.4";
2856
- default:
2857
- return stripChatGptPrefix(model);
2858
- }
2859
- }
2860
- function resolveChatGptServiceTier(model) {
2861
- return model === "chatgpt-gpt-5.4-fast" ? "priority" : void 0;
2862
- }
2863
-
2864
2876
  // src/agentLogging.ts
2865
2877
  var import_node_async_hooks = require("async_hooks");
2866
2878
  var import_node_buffer2 = require("buffer");
@@ -7936,7 +7948,7 @@ async function runTextCall(params) {
7936
7948
  pushEvent({ type: "blocked" });
7937
7949
  }
7938
7950
  if (result2.model) {
7939
- modelVersion = providerInfo.serviceTier ? request.model : `chatgpt-${result2.model}`;
7951
+ modelVersion = providerInfo.serviceTier || isExperimentalChatGptModelId(request.model) ? request.model : `chatgpt-${result2.model}`;
7940
7952
  pushEvent({ type: "model", modelVersion });
7941
7953
  }
7942
7954
  latestUsage = extractChatGptUsageTokens(result2.usage);
@@ -9142,7 +9154,7 @@ async function runToolLoop(request) {
9142
9154
  }
9143
9155
  });
9144
9156
  const modelCompletedAtMs = Date.now();
9145
- modelVersion = response.model && !providerInfo.serviceTier ? `chatgpt-${response.model}` : request.model;
9157
+ modelVersion = response.model && !providerInfo.serviceTier && !isExperimentalChatGptModelId(request.model) ? `chatgpt-${response.model}` : request.model;
9146
9158
  usageTokens = extractChatGptUsageTokens(response.usage);
9147
9159
  const stepCostUsd = estimateCallCostUsd({
9148
9160
  modelId: modelVersion,
@@ -12752,6 +12764,9 @@ async function runAccessHook2(runtime, context) {
12752
12764
  await runtime.checkAccess(context);
12753
12765
  }
12754
12766
  function isCodexModel(model) {
12767
+ if (model.startsWith("experimental-chatgpt-")) {
12768
+ return true;
12769
+ }
12755
12770
  const normalized = model.startsWith("chatgpt-") ? model.slice("chatgpt-".length) : model;
12756
12771
  return normalized.includes("codex") || normalized === "gpt-5.4" || normalized === "gpt-5.4-fast";
12757
12772
  }
@@ -14192,6 +14207,7 @@ async function runCandidateEvolution(options) {
14192
14207
  CODEX_APPLY_PATCH_LARK_GRAMMAR,
14193
14208
  DEFAULT_FILE_TTL_SECONDS,
14194
14209
  DEFAULT_SIGNED_URL_TTL_SECONDS,
14210
+ EXPERIMENTAL_CHATGPT_MODEL_PREFIX,
14195
14211
  FIREWORKS_DEFAULT_GLM_MODEL,
14196
14212
  FIREWORKS_DEFAULT_GPT_OSS_120B_MODEL,
14197
14213
  FIREWORKS_DEFAULT_KIMI_MODEL,
@@ -14246,6 +14262,7 @@ async function runCandidateEvolution(options) {
14246
14262
  getChatGptAuthProfile,
14247
14263
  getCurrentToolCallContext,
14248
14264
  isChatGptModelId,
14265
+ isExperimentalChatGptModelId,
14249
14266
  isFireworksModelId,
14250
14267
  isGeminiImageModelId,
14251
14268
  isGeminiModelId,