@adaptic/lumic-utils 1.0.19 → 1.0.21

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.
Files changed (24) hide show
  1. package/dist/{apollo-client.client-guxMwplM.js → apollo-client.client-ByADDB46.js} +3 -3
  2. package/dist/{apollo-client.client-guxMwplM.js.map → apollo-client.client-ByADDB46.js.map} +1 -1
  3. package/dist/{apollo-client.client-Dfi-rHW-.js → apollo-client.client-CUIakkzs.js} +4 -4
  4. package/dist/{apollo-client.client-Dfi-rHW-.js.map → apollo-client.client-CUIakkzs.js.map} +1 -1
  5. package/dist/{apollo-client.server-HwHIFnVk.js → apollo-client.server-BnZhh39o.js} +3 -3
  6. package/dist/{apollo-client.server-HwHIFnVk.js.map → apollo-client.server-BnZhh39o.js.map} +1 -1
  7. package/dist/{apollo-client.server-Blxbp1Gf.js → apollo-client.server-JucuAyrj.js} +3 -3
  8. package/dist/{apollo-client.server-Blxbp1Gf.js.map → apollo-client.server-JucuAyrj.js.map} +1 -1
  9. package/dist/{index-B4tfLvHx.js → index-BLXN1stF.js} +2 -2
  10. package/dist/{index-B4tfLvHx.js.map → index-BLXN1stF.js.map} +1 -1
  11. package/dist/{index-Dr85zRZC.js → index-Ca3x8X5U.js} +85 -31
  12. package/dist/{index-CSQmloZ-.js.map → index-Ca3x8X5U.js.map} +1 -1
  13. package/dist/{index-DollRUHQ.js → index-DT0dXUtn.js} +2 -2
  14. package/dist/{index-DollRUHQ.js.map → index-DT0dXUtn.js.map} +1 -1
  15. package/dist/{index-CSQmloZ-.js → index-DYehXKUX.js} +85 -31
  16. package/dist/{index-Dr85zRZC.js.map → index-DYehXKUX.js.map} +1 -1
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.mjs +1 -1
  19. package/dist/test.cjs +1 -1
  20. package/dist/test.mjs +1 -1
  21. package/dist/types/functions/llm-config.d.ts +9 -1
  22. package/dist/types/types/openai-types.d.ts +8 -1
  23. package/dist/types/utils/llm-cost-tracker.d.ts +3 -0
  24. package/package.json +1 -1
@@ -748,58 +748,79 @@ const DEFAULT_DEVELOPER_PROMPT = `
748
748
  Present complete, high-confidence, final answers only. Do not rephrase to be more brief or omit parts of answers.
749
749
  Respond only with final content (e.g. code, a json or yaml object, a formatted string, or a markdown document) and nothing else. Do not reply with a preamble, introduction, or conclusion.
750
750
  `;
751
- /** Token costs in USD per token. Last updated Mar 2026. */
751
+ /**
752
+ * Token costs in USD per token. Last updated Apr 2026.
753
+ *
754
+ * `cacheHitCost` reflects OpenAI's cached-input billing rate (~50% of the
755
+ * standard input rate per OpenAI's prompt caching documentation). When set,
756
+ * `calculateCost` splits prompt tokens into cached vs non-cached buckets and
757
+ * applies the discount; when omitted, cached tokens are billed at full input
758
+ * rate (a silent ~50% cost overstatement for cache-friendly workloads).
759
+ */
752
760
  const openAiModelCosts = {
753
761
  'gpt-5.4': {
754
762
  inputCost: 2.5 / 1_000_000,
763
+ cacheHitCost: 1.25 / 1_000_000,
755
764
  outputCost: 15 / 1_000_000,
756
765
  },
757
766
  'gpt-5.4-mini': {
758
767
  inputCost: 0.75 / 1_000_000,
768
+ cacheHitCost: 0.375 / 1_000_000,
759
769
  outputCost: 4.5 / 1_000_000,
760
770
  },
761
771
  'gpt-5.4-nano': {
762
772
  inputCost: 0.2 / 1_000_000,
773
+ cacheHitCost: 0.1 / 1_000_000,
763
774
  outputCost: 1.25 / 1_000_000,
764
775
  },
765
776
  'gpt-5': {
766
777
  inputCost: 2.5 / 1_000_000,
778
+ cacheHitCost: 1.25 / 1_000_000,
767
779
  outputCost: 10 / 1_000_000,
768
780
  },
769
781
  'gpt-5-mini': {
770
782
  inputCost: 0.15 / 1_000_000,
783
+ cacheHitCost: 0.075 / 1_000_000,
771
784
  outputCost: 0.6 / 1_000_000,
772
785
  },
773
786
  'o1-mini': {
774
787
  inputCost: 1.1 / 1_000_000,
788
+ cacheHitCost: 0.55 / 1_000_000,
775
789
  outputCost: 4.4 / 1_000_000,
776
790
  },
777
791
  'o1': {
778
792
  inputCost: 15 / 1_000_000,
793
+ cacheHitCost: 7.5 / 1_000_000,
779
794
  outputCost: 60 / 1_000_000,
780
795
  },
781
796
  'o3-mini': {
782
797
  inputCost: 1.1 / 1_000_000,
798
+ cacheHitCost: 0.55 / 1_000_000,
783
799
  outputCost: 4.4 / 1_000_000,
784
800
  },
785
801
  'o3': {
786
802
  inputCost: 2 / 1_000_000,
803
+ cacheHitCost: 1 / 1_000_000,
787
804
  outputCost: 8 / 1_000_000,
788
805
  },
789
806
  'gpt-4.1': {
790
807
  inputCost: 2 / 1_000_000,
808
+ cacheHitCost: 1 / 1_000_000,
791
809
  outputCost: 8 / 1_000_000,
792
810
  },
793
811
  'gpt-4.1-mini': {
794
812
  inputCost: 0.4 / 1_000_000,
813
+ cacheHitCost: 0.2 / 1_000_000,
795
814
  outputCost: 1.6 / 1_000_000,
796
815
  },
797
816
  'gpt-4.1-nano': {
798
817
  inputCost: 0.1 / 1_000_000,
818
+ cacheHitCost: 0.05 / 1_000_000,
799
819
  outputCost: 0.4 / 1_000_000,
800
820
  },
801
821
  'o4-mini': {
802
822
  inputCost: 1.1 / 1_000_000,
823
+ cacheHitCost: 0.55 / 1_000_000,
803
824
  outputCost: 4.4 / 1_000_000,
804
825
  },
805
826
  };
@@ -1874,7 +1895,10 @@ class LLMCostTracker {
1874
1895
  timestamp: Date.now(),
1875
1896
  };
1876
1897
  this.usageRecords.push(record);
1877
- getLumicLogger().info(`LLM cost tracked: ${provider}/${model} - $${cost.toFixed(6)}`, { provider, model, inputTokens, outputTokens, cost });
1898
+ // Emit cachedTokens and reasoningTokens explicitly so operators can
1899
+ // verify cache effectiveness from logs alone (the prior log shape only
1900
+ // surfaced inputTokens and outputTokens, hiding the cache discount).
1901
+ getLumicLogger().info(`LLM cost tracked: ${provider}/${model} - $${cost.toFixed(6)}`, { provider, model, inputTokens, cachedTokens: cacheHitTokens, outputTokens, reasoningTokens, cost });
1878
1902
  }
1879
1903
  /**
1880
1904
  * Records usage from an image generation call.
@@ -1955,11 +1979,13 @@ class LLMCostTracker {
1955
1979
  const images = this.getImageCosts();
1956
1980
  let totalCost = 0;
1957
1981
  let totalInputTokens = 0;
1982
+ let totalCacheHitTokens = 0;
1958
1983
  let totalOutputTokens = 0;
1959
1984
  let totalReasoningTokens = 0;
1960
1985
  for (const summary of Object.values(byModel)) {
1961
1986
  totalCost += summary.totalCost;
1962
1987
  totalInputTokens += summary.totalInputTokens;
1988
+ totalCacheHitTokens += summary.totalCacheHitTokens;
1963
1989
  totalOutputTokens += summary.totalOutputTokens;
1964
1990
  totalReasoningTokens += summary.totalReasoningTokens;
1965
1991
  }
@@ -1976,6 +2002,7 @@ class LLMCostTracker {
1976
2002
  totalCost,
1977
2003
  totalCalls: this.usageRecords.length + this.imageRecords.length,
1978
2004
  totalInputTokens,
2005
+ totalCacheHitTokens,
1979
2006
  totalOutputTokens,
1980
2007
  totalReasoningTokens,
1981
2008
  byModel,
@@ -1998,7 +2025,9 @@ class LLMCostTracker {
1998
2025
  cost: `$${m.totalCost.toFixed(6)}`,
1999
2026
  calls: m.callCount,
2000
2027
  inputTokens: m.totalInputTokens,
2028
+ cachedTokens: m.totalCacheHitTokens,
2001
2029
  outputTokens: m.totalOutputTokens,
2030
+ reasoningTokens: m.totalReasoningTokens,
2002
2031
  }));
2003
2032
  const images = Object.values(summary.images).map((img) => ({
2004
2033
  model: img.model,
@@ -2354,14 +2383,20 @@ async function createCompletion(content, responseFormat, options = DEFAULT_OPTIO
2354
2383
  });
2355
2384
  throw error;
2356
2385
  }
2386
+ // OpenAI returns cached input tokens under `prompt_tokens_details.cached_tokens`
2387
+ // when prompts >1024 tokens hit the automatic prompt cache. We surface this
2388
+ // as a first-class field so cost tracking and dashboards reflect the real
2389
+ // (discounted) input cost rather than billing every input token at full rate.
2390
+ const cachedTokens = completion.usage?.prompt_tokens_details?.cached_tokens ?? 0;
2357
2391
  const response = {
2358
2392
  id: completion.id,
2359
2393
  content: completion.choices[0]?.message?.content || '',
2360
2394
  tool_calls: completion.choices[0]?.message?.tool_calls,
2361
- usage: completion.usage || {
2362
- prompt_tokens: 0,
2363
- completion_tokens: 0,
2364
- total_tokens: 0,
2395
+ usage: {
2396
+ prompt_tokens: completion.usage?.prompt_tokens ?? 0,
2397
+ completion_tokens: completion.usage?.completion_tokens ?? 0,
2398
+ total_tokens: completion.usage?.total_tokens ?? 0,
2399
+ cached_tokens: cachedTokens,
2365
2400
  },
2366
2401
  system_fingerprint: completion.system_fingerprint,
2367
2402
  service_tier: options.service_tier,
@@ -2384,8 +2419,10 @@ const makeOpenAIChatCompletionCall = async (content, responseFormat = 'text', op
2384
2419
  ...options,
2385
2420
  };
2386
2421
  const completion = await createCompletion(content, responseFormat, mergedOptions);
2387
- // Track cost in the global cost tracker
2388
- getLLMCostTracker().trackUsage('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens);
2422
+ // Track cost in the global cost tracker. Pass cached tokens through so the
2423
+ // tracker applies the discounted cached-input rate (typically ~50% of the
2424
+ // standard input rate) instead of billing every input token at full price.
2425
+ getLLMCostTracker().trackUsage('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens);
2389
2426
  // Handle tool calls differently
2390
2427
  if (completion.tool_calls && completion.tool_calls.length > 0) {
2391
2428
  const toolCallResponse = {
@@ -2403,7 +2440,8 @@ const makeOpenAIChatCompletionCall = async (content, responseFormat = 'text', op
2403
2440
  reasoning_tokens: 0,
2404
2441
  provider: 'openai',
2405
2442
  model: completion.model,
2406
- cost: calculateCost('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0),
2443
+ cached_tokens: completion.usage.cached_tokens,
2444
+ cost: calculateCost('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens),
2407
2445
  },
2408
2446
  tool_calls: completion.tool_calls,
2409
2447
  };
@@ -2421,7 +2459,8 @@ const makeOpenAIChatCompletionCall = async (content, responseFormat = 'text', op
2421
2459
  reasoning_tokens: 0,
2422
2460
  provider: 'openai',
2423
2461
  model: completion.model,
2424
- cost: calculateCost('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0),
2462
+ cached_tokens: completion.usage.cached_tokens,
2463
+ cost: calculateCost('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens),
2425
2464
  },
2426
2465
  tool_calls: completion.tool_calls,
2427
2466
  };
@@ -2476,8 +2515,11 @@ const makeResponsesAPICall = async (input, options = {}) => {
2476
2515
  maxDelayMs: 30000,
2477
2516
  retryableErrors: isRetryableLLMError,
2478
2517
  }, `OpenAI-Responses:${normalizedModel}`);
2518
+ // Responses API exposes cached input tokens under `input_tokens_details.cached_tokens`
2519
+ // (the equivalent of Chat Completions' `prompt_tokens_details.cached_tokens`).
2520
+ const responsesCachedTokens = response.usage?.input_tokens_details?.cached_tokens || 0;
2479
2521
  // Track cost in the global cost tracker
2480
- getLLMCostTracker().trackUsage('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0);
2522
+ getLLMCostTracker().trackUsage('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0, responsesCachedTokens);
2481
2523
  // Extract tool calls from the output
2482
2524
  const toolCalls = response.output
2483
2525
  ?.filter((item) => item.type === 'function_call')
@@ -2518,7 +2560,8 @@ const makeResponsesAPICall = async (input, options = {}) => {
2518
2560
  reasoning_tokens: response.usage?.output_tokens_details?.reasoning_tokens || 0,
2519
2561
  provider: 'openai',
2520
2562
  model: normalizedModel,
2521
- cost: calculateCost('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0),
2563
+ cached_tokens: responsesCachedTokens,
2564
+ cost: calculateCost('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0, responsesCachedTokens),
2522
2565
  },
2523
2566
  tool_calls: toolCalls,
2524
2567
  ...(codeInterpreterOutputs ? { code_interpreter_outputs: codeInterpreterOutputs } : {}),
@@ -2550,7 +2593,8 @@ const makeResponsesAPICall = async (input, options = {}) => {
2550
2593
  reasoning_tokens: response.usage?.output_tokens_details?.reasoning_tokens || 0,
2551
2594
  provider: 'openai',
2552
2595
  model: normalizedModel,
2553
- cost: calculateCost('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0),
2596
+ cached_tokens: responsesCachedTokens,
2597
+ cost: calculateCost('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0, responsesCachedTokens),
2554
2598
  },
2555
2599
  tool_calls: toolCalls,
2556
2600
  ...(codeInterpreterOutputs ? { code_interpreter_outputs: codeInterpreterOutputs } : {}),
@@ -8742,14 +8786,25 @@ async function createDeepseekCompletion(content, responseFormat, options = {}) {
8742
8786
  maxDelayMs: 30000,
8743
8787
  retryableErrors: isRetryableDeepseekError,
8744
8788
  }, `Deepseek:${normalizedModel}`);
8789
+ // DeepSeek surfaces cached input tokens in two places on the usage object:
8790
+ // - `prompt_cache_hit_tokens` (DeepSeek-native field, see
8791
+ // https://api-docs.deepseek.com/guides/kv_cache)
8792
+ // - `prompt_tokens_details.cached_tokens` (OpenAI-compatible alias)
8793
+ // Prefer the OpenAI-compatible name so a single canonical field works for
8794
+ // both providers; fall back to the DeepSeek-native name if absent.
8795
+ const usageRaw = completion.usage;
8796
+ const cachedTokens = usageRaw?.prompt_tokens_details?.cached_tokens ??
8797
+ usageRaw?.prompt_cache_hit_tokens ??
8798
+ 0;
8745
8799
  return {
8746
8800
  id: completion.id,
8747
8801
  content: completion.choices[0]?.message?.content || '',
8748
8802
  tool_calls: completion.choices[0]?.message?.tool_calls,
8749
- usage: completion.usage || {
8750
- prompt_tokens: 0,
8751
- completion_tokens: 0,
8752
- total_tokens: 0,
8803
+ usage: {
8804
+ prompt_tokens: completion.usage?.prompt_tokens ?? 0,
8805
+ completion_tokens: completion.usage?.completion_tokens ?? 0,
8806
+ total_tokens: completion.usage?.total_tokens ?? 0,
8807
+ cached_tokens: cachedTokens,
8753
8808
  },
8754
8809
  system_fingerprint: completion.system_fingerprint,
8755
8810
  provider: 'deepseek',
@@ -8791,7 +8846,7 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
8791
8846
  reasoning_tokens: 0,
8792
8847
  provider: 'deepseek',
8793
8848
  model: modelName,
8794
- cache_hit_tokens: 0,
8849
+ cached_tokens: 0,
8795
8850
  cost: 0,
8796
8851
  },
8797
8852
  tool_calls: undefined,
@@ -8810,7 +8865,7 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
8810
8865
  reasoning_tokens: 0,
8811
8866
  provider: 'deepseek',
8812
8867
  model: modelName,
8813
- cache_hit_tokens: 0,
8868
+ cached_tokens: 0,
8814
8869
  cost: 0,
8815
8870
  },
8816
8871
  tool_calls: undefined,
@@ -8818,8 +8873,9 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
8818
8873
  }
8819
8874
  try {
8820
8875
  const completion = await createDeepseekCompletion(content, responseFormat, mergedOptions);
8821
- // Track cost in the global cost tracker
8822
- getLLMCostTracker().trackUsage('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens);
8876
+ // Track cost in the global cost tracker. Pass cached tokens through so the
8877
+ // discounted cached-input pricing tier is applied.
8878
+ getLLMCostTracker().trackUsage('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens);
8823
8879
  // Handle tool calls similarly to OpenAI
8824
8880
  if (completion.tool_calls && completion.tool_calls.length > 0) {
8825
8881
  const toolCallResponse = {
@@ -8837,9 +8893,8 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
8837
8893
  reasoning_tokens: 0, // Deepseek doesn't provide reasoning tokens separately
8838
8894
  provider: 'deepseek',
8839
8895
  model: completion.model,
8840
- cache_hit_tokens: 0, // Not provided directly in API response
8841
- cost: calculateCost('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, 0 // Cache hit tokens (not provided in the response)
8842
- ),
8896
+ cached_tokens: completion.usage.cached_tokens,
8897
+ cost: calculateCost('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens),
8843
8898
  },
8844
8899
  tool_calls: completion.tool_calls,
8845
8900
  };
@@ -8857,9 +8912,8 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
8857
8912
  reasoning_tokens: 0, // Deepseek doesn't provide reasoning tokens separately
8858
8913
  provider: 'deepseek',
8859
8914
  model: completion.model,
8860
- cache_hit_tokens: 0, // Not provided directly in API response
8861
- cost: calculateCost('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, 0 // Cache hit tokens (not provided in the response)
8862
- ),
8915
+ cached_tokens: completion.usage.cached_tokens,
8916
+ cost: calculateCost('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens),
8863
8917
  },
8864
8918
  tool_calls: completion.tool_calls,
8865
8919
  };
@@ -8877,7 +8931,7 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
8877
8931
  reasoning_tokens: 0,
8878
8932
  provider: 'deepseek',
8879
8933
  model: modelName,
8880
- cache_hit_tokens: 0,
8934
+ cached_tokens: 0,
8881
8935
  cost: 0,
8882
8936
  },
8883
8937
  tool_calls: undefined,
@@ -22776,11 +22830,11 @@ let poolConfig = DEFAULT_POOL_CONFIG;
22776
22830
  async function loadApolloModules() {
22777
22831
  if (typeof window === "undefined" || process.env.AWS_EXECUTION_ENV) {
22778
22832
  // Server-side (or Lambda): load the CommonJS‑based implementation.
22779
- return (await import('./apollo-client.server-Blxbp1Gf.js'));
22833
+ return (await import('./apollo-client.server-JucuAyrj.js'));
22780
22834
  }
22781
22835
  else {
22782
22836
  // Client-side: load the ESM‑based implementation.
22783
- return (await import('./apollo-client.client-Dfi-rHW-.js'));
22837
+ return (await import('./apollo-client.client-CUIakkzs.js'));
22784
22838
  }
22785
22839
  }
22786
22840
  /**
@@ -81304,4 +81358,4 @@ const lumic = {
81304
81358
  };
81305
81359
 
81306
81360
  export { GraphQLInterfaceType as $, print as A, getNamedType as B, isInputType as C, isRequiredArgument as D, isNamedType as E, GraphQLError as F, GraphQLNonNull as G, isOutputType as H, isRequiredInputField as I, isCompositeType as J, Kind as K, getNullableType as L, getEnterLeaveForKind as M, isNode as N, OperationTypeNode as O, didYouMean as P, naturalCompare as Q, suggestionList as R, specifiedScalarTypes as S, keyMap as T, isType as U, isNullableType as V, visit as W, visitInParallel as X, keyValMap as Y, assertObjectType as Z, GraphQLScalarType as _, isListType as a, validateGoogleSheetsRange as a$, GraphQLUnionType as a0, GraphQLInputObjectType as a1, assertNullableType as a2, assertInterfaceType as a3, mapValue as a4, isSpecifiedScalarType as a5, isPrintableAsBlockString as a6, printBlockString as a7, BREAK as a8, GRAPHQL_MAX_INT as a9, printSourceLocation as aA, resolveObjMapThunk as aB, resolveReadonlyArrayThunk as aC, valueFromASTUntyped as aD, version$4 as aE, versionInfo as aF, getAugmentedNamespace as aG, isDigit$1 as aH, isNameStart as aI, dedentBlockStringLines as aJ, isNameContinue as aK, setLumicLogger as aL, getLumicLogger as aM, sanitizeForLog as aN, sanitizeError as aO, sanitizeAWSAuth as aP, sanitizeObject as aQ, getSecrets as aR, resetSecrets as aS, requireSecret as aT, withRetry as aU, CircuitBreaker as aV, CircuitBreakerState as aW, CircuitBreakerOpenError as aX, DEFAULT_CIRCUIT_BREAKER_CONFIG as aY, validateSlackChannel as aZ, validateS3Key as a_, GRAPHQL_MIN_INT as aa, GraphQLFloat as ab, GraphQLInt as ac, Location as ad, Token as ae, assertAbstractType as af, assertCompositeType as ag, assertEnumType as ah, assertEnumValueName as ai, assertInputObjectType as aj, assertInputType as ak, assertLeafType as al, assertListType as am, assertNamedType as an, assertNonNullType as ao, assertOutputType as ap, assertScalarType as aq, assertType as ar, assertUnionType as as, assertWrappingType as at, formatError as au, getLocation as av, getVisitFn as aw, isWrappingType as ax, printError as ay, printLocation as az, isAbstractType as b, PDFError as b$, LLMCostTracker as b0, getLLMCostTracker as b1, setLLMCostTracker as b2, resetLLMCostTracker as b3, setMetricsCollector as b4, getMetricsCollector as b5, resetMetricsCollector as b6, withMetrics as b7, generateCorrelationId as b8, getCorrelationId as b9, openAIChatCompletionSchema as bA, openAIImageResponseSchema as bB, validateOpenAIChatCompletion as bC, safeValidateOpenAIChatCompletion as bD, perplexityResponseSchema as bE, validatePerplexityResponse as bF, safeValidatePerplexityResponse as bG, googleSheetsValueRangeSchema as bH, validateGoogleSheetsResponse as bI, safeValidateGoogleSheetsResponse as bJ, s3ListObjectsSchema as bK, s3GetObjectSchema as bL, lambdaInvokeResponseSchema as bM, validateS3ListObjects as bN, safeValidateS3ListObjects as bO, validateLambdaResponse as bP, safeValidateLambdaResponse as bQ, createValidator as bR, createSafeValidator as bS, LumicError as bT, SlackError as bU, LLMError as bV, AWSLambdaError as bW, AWSS3Error as bX, GoogleSheetsError as bY, PerplexityError as bZ, JsonParseError as b_, getCorrelationContext as ba, withCorrelationId as bb, getCorrelationHeaders as bc, TokenBucketRateLimiter as bd, RATE_LIMIT_PROFILES as be, getRateLimiter as bf, resetAllRateLimiters as bg, withRateLimit as bh, checkIntegrationHealth as bi, SUPPORTED_MODELS as bj, isValidModel as bk, getModelCapabilities as bl, getModelProvider as bm, MODEL_ALIASES as bn, OPENAI_COMPATIBLE_PROVIDERS as bo, PROVIDER_DEFAULT_MODELS as bp, LLM_DEFAULT_PROVIDER as bq, LLM_MINI_PROVIDER as br, LLM_NORMAL_PROVIDER as bs, LLM_ADVANCED_PROVIDER as bt, LLM_PROVIDER as bu, LLM_MODEL_MINI as bv, LLM_MODEL_NORMAL as bw, LLM_MODEL_ADVANCED as bx, makeAnthropicCall as by, makeOpenAICompatibleCall as bz, isInterfaceType as c, ZipError as c0, SLACK_TIMEOUT_MS as c1, PERPLEXITY_TIMEOUT_MS as c2, GOOGLE_SHEETS_TIMEOUT_MS as c3, LLM_TIMEOUT_MS as c4, AWS_LAMBDA_TIMEOUT_MS as c5, AWS_S3_TIMEOUT_MS as c6, OPENWEATHER_TIMEOUT_MS as c7, GENERIC_FETCH_TIMEOUT_MS as c8, isObjectType as d, assertName as e, devAssert as f, isObjectLike as g, defineArguments as h, isNonNullType as i, argsToArgsConfig as j, GraphQLBoolean as k, lumic as l, GraphQLString as m, instanceOf as n, inspect as o, isInputObjectType as p, isLeafType as q, isEnumType as r, GraphQLID as s, toObjMap as t, invariant as u, GraphQLObjectType as v, GraphQLEnumType as w, GraphQLList as x, isScalarType as y, isUnionType as z };
81307
- //# sourceMappingURL=index-CSQmloZ-.js.map
81361
+ //# sourceMappingURL=index-DYehXKUX.js.map