@adaptic/lumic-utils 1.0.18 → 1.0.20
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/{apollo-client.client-kEvzgHxw.js → apollo-client.client-DRk6kygw.js} +4 -4
- package/dist/{apollo-client.client-kEvzgHxw.js.map → apollo-client.client-DRk6kygw.js.map} +1 -1
- package/dist/{apollo-client.client-Cz-ZMwuK.js → apollo-client.client-DVsbR05r.js} +3 -3
- package/dist/{apollo-client.client-Cz-ZMwuK.js.map → apollo-client.client-DVsbR05r.js.map} +1 -1
- package/dist/{apollo-client.server-BAuFJqgR.js → apollo-client.server-Djh4v__C.js} +3 -3
- package/dist/{apollo-client.server-BAuFJqgR.js.map → apollo-client.server-Djh4v__C.js.map} +1 -1
- package/dist/{apollo-client.server-C2gZgUkR.js → apollo-client.server-L8JR2ko_.js} +3 -3
- package/dist/{apollo-client.server-C2gZgUkR.js.map → apollo-client.server-L8JR2ko_.js.map} +1 -1
- package/dist/{index-C3ihLNel.js → index-BVl0tRmx.js} +126 -38
- package/dist/{index-C3ihLNel.js.map → index-BVl0tRmx.js.map} +1 -1
- package/dist/{index-UQOI_SLD.js → index-CSOg0U0R.js} +126 -38
- package/dist/{index-UQOI_SLD.js.map → index-CSOg0U0R.js.map} +1 -1
- package/dist/{index-C_0vRRAD.js → index-Cs56Fq24.js} +2 -2
- package/dist/{index-C_0vRRAD.js.map → index-Cs56Fq24.js.map} +1 -1
- package/dist/{index-27SewDPi.js → index-eU6Q74W8.js} +2 -2
- package/dist/{index-27SewDPi.js.map → index-eU6Q74W8.js.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/test.cjs +1 -1
- package/dist/test.mjs +1 -1
- package/dist/types/types/openai-types.d.ts +8 -1
- package/package.json +1 -1
|
@@ -2086,15 +2086,33 @@ function resetLLMCostTracker() {
|
|
|
2086
2086
|
// llm-openai.ts
|
|
2087
2087
|
/**
|
|
2088
2088
|
* Determines if an LLM error should be retried.
|
|
2089
|
-
*
|
|
2089
|
+
*
|
|
2090
|
+
* Retries on:
|
|
2091
|
+
* - 429 / rate limit errors (transient capacity)
|
|
2092
|
+
* - "could not parse the JSON body" 400s — observed once in production for a
|
|
2093
|
+
* single symbol on the very first conversation turn (Wave 86, 2026-04-11).
|
|
2094
|
+
* The exact same call site succeeds millions of times before and after, and
|
|
2095
|
+
* the prior fix commit `6eaef52` in this repo already eliminated the only
|
|
2096
|
+
* known SDK-v5 cause (passing `tools: undefined/null`). The remaining cases
|
|
2097
|
+
* are virtually always proxy/network corruption of the request body in
|
|
2098
|
+
* flight (request truncated mid-flight, TLS renegotiation, edge proxy
|
|
2099
|
+
* buffer reset). Retrying once with a fresh connection has a high
|
|
2100
|
+
* probability of recovering, and a deterministic SDK-side defect would
|
|
2101
|
+
* re-fail on retry (so we still surface it).
|
|
2090
2102
|
*/
|
|
2091
2103
|
const isRetryableLLMError = (error) => {
|
|
2092
2104
|
if (error instanceof Error) {
|
|
2093
2105
|
const message = error.message;
|
|
2094
|
-
// Retry
|
|
2106
|
+
// Retry on rate limits (429)
|
|
2095
2107
|
if (message.includes('429') || message.includes('rate limit') || message.includes('Rate limit')) {
|
|
2096
2108
|
return true;
|
|
2097
2109
|
}
|
|
2110
|
+
// Retry on transient body-corruption 400s. Match the exact OpenAI error
|
|
2111
|
+
// string to avoid retrying genuine client-side validation 400s (which
|
|
2112
|
+
// would re-fail forever and waste retry budget).
|
|
2113
|
+
if (message.includes('could not parse the JSON body of your request')) {
|
|
2114
|
+
return true;
|
|
2115
|
+
}
|
|
2098
2116
|
}
|
|
2099
2117
|
return false;
|
|
2100
2118
|
};
|
|
@@ -2290,20 +2308,66 @@ async function createCompletion(content, responseFormat, options = DEFAULT_OPTIO
|
|
|
2290
2308
|
if (responseFormatOption.type !== 'text') {
|
|
2291
2309
|
queryOptions.response_format = responseFormatOption;
|
|
2292
2310
|
}
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2311
|
+
let completion;
|
|
2312
|
+
try {
|
|
2313
|
+
completion = await withRetry(() => openai.chat.completions.create(queryOptions), {
|
|
2314
|
+
maxRetries: 3,
|
|
2315
|
+
baseDelayMs: 2000,
|
|
2316
|
+
maxDelayMs: 30000,
|
|
2317
|
+
retryableErrors: isRetryableLLMError,
|
|
2318
|
+
}, `OpenAI:${normalizedModel}`);
|
|
2319
|
+
}
|
|
2320
|
+
catch (error) {
|
|
2321
|
+
// Defensive observability: when the OpenAI SDK rejects our request,
|
|
2322
|
+
// emit a structured snapshot of the queryOptions shape (NOT content) so
|
|
2323
|
+
// a future recurrence of the rare "could not parse JSON body" 400 can be
|
|
2324
|
+
// diagnosed without having to reproduce locally. We deliberately log
|
|
2325
|
+
// metadata only — no message content, no API key — so this is safe even
|
|
2326
|
+
// for production prompts containing sensitive context.
|
|
2327
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
2328
|
+
const totalContentChars = messages.reduce((sum, msg) => {
|
|
2329
|
+
if (typeof msg.content === 'string')
|
|
2330
|
+
return sum + msg.content.length;
|
|
2331
|
+
if (Array.isArray(msg.content)) {
|
|
2332
|
+
return sum + msg.content.reduce((s, part) => {
|
|
2333
|
+
if (typeof part === 'object' && part !== null && 'text' in part && typeof part.text === 'string') {
|
|
2334
|
+
return s + part.text.length;
|
|
2335
|
+
}
|
|
2336
|
+
return s;
|
|
2337
|
+
}, 0);
|
|
2338
|
+
}
|
|
2339
|
+
return sum;
|
|
2340
|
+
}, 0);
|
|
2341
|
+
getLumicLogger().error(`OpenAI ChatCompletion call failed for model ${normalizedModel}`, {
|
|
2342
|
+
model: normalizedModel,
|
|
2343
|
+
errorMessage,
|
|
2344
|
+
messageCount: messages.length,
|
|
2345
|
+
roleBreakdown: messages.reduce((acc, msg) => {
|
|
2346
|
+
acc[msg.role] = (acc[msg.role] ?? 0) + 1;
|
|
2347
|
+
return acc;
|
|
2348
|
+
}, {}),
|
|
2349
|
+
totalContentChars,
|
|
2350
|
+
toolCount: queryOptions.tools?.length ?? 0,
|
|
2351
|
+
hasTemperature: queryOptions.temperature !== undefined,
|
|
2352
|
+
hasResponseFormat: queryOptions.response_format !== undefined,
|
|
2353
|
+
hasMaxCompletionTokens: queryOptions.max_completion_tokens !== undefined,
|
|
2354
|
+
});
|
|
2355
|
+
throw error;
|
|
2356
|
+
}
|
|
2357
|
+
// OpenAI returns cached input tokens under `prompt_tokens_details.cached_tokens`
|
|
2358
|
+
// when prompts >1024 tokens hit the automatic prompt cache. We surface this
|
|
2359
|
+
// as a first-class field so cost tracking and dashboards reflect the real
|
|
2360
|
+
// (discounted) input cost rather than billing every input token at full rate.
|
|
2361
|
+
const cachedTokens = completion.usage?.prompt_tokens_details?.cached_tokens ?? 0;
|
|
2299
2362
|
const response = {
|
|
2300
2363
|
id: completion.id,
|
|
2301
2364
|
content: completion.choices[0]?.message?.content || '',
|
|
2302
2365
|
tool_calls: completion.choices[0]?.message?.tool_calls,
|
|
2303
|
-
usage:
|
|
2304
|
-
prompt_tokens: 0,
|
|
2305
|
-
completion_tokens: 0,
|
|
2306
|
-
total_tokens: 0,
|
|
2366
|
+
usage: {
|
|
2367
|
+
prompt_tokens: completion.usage?.prompt_tokens ?? 0,
|
|
2368
|
+
completion_tokens: completion.usage?.completion_tokens ?? 0,
|
|
2369
|
+
total_tokens: completion.usage?.total_tokens ?? 0,
|
|
2370
|
+
cached_tokens: cachedTokens,
|
|
2307
2371
|
},
|
|
2308
2372
|
system_fingerprint: completion.system_fingerprint,
|
|
2309
2373
|
service_tier: options.service_tier,
|
|
@@ -2326,8 +2390,10 @@ const makeOpenAIChatCompletionCall = async (content, responseFormat = 'text', op
|
|
|
2326
2390
|
...options,
|
|
2327
2391
|
};
|
|
2328
2392
|
const completion = await createCompletion(content, responseFormat, mergedOptions);
|
|
2329
|
-
// Track cost in the global cost tracker
|
|
2330
|
-
|
|
2393
|
+
// Track cost in the global cost tracker. Pass cached tokens through so the
|
|
2394
|
+
// tracker applies the discounted cached-input rate (typically ~50% of the
|
|
2395
|
+
// standard input rate) instead of billing every input token at full price.
|
|
2396
|
+
getLLMCostTracker().trackUsage('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens);
|
|
2331
2397
|
// Handle tool calls differently
|
|
2332
2398
|
if (completion.tool_calls && completion.tool_calls.length > 0) {
|
|
2333
2399
|
const toolCallResponse = {
|
|
@@ -2345,7 +2411,8 @@ const makeOpenAIChatCompletionCall = async (content, responseFormat = 'text', op
|
|
|
2345
2411
|
reasoning_tokens: 0,
|
|
2346
2412
|
provider: 'openai',
|
|
2347
2413
|
model: completion.model,
|
|
2348
|
-
|
|
2414
|
+
cached_tokens: completion.usage.cached_tokens,
|
|
2415
|
+
cost: calculateCost('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens),
|
|
2349
2416
|
},
|
|
2350
2417
|
tool_calls: completion.tool_calls,
|
|
2351
2418
|
};
|
|
@@ -2363,7 +2430,8 @@ const makeOpenAIChatCompletionCall = async (content, responseFormat = 'text', op
|
|
|
2363
2430
|
reasoning_tokens: 0,
|
|
2364
2431
|
provider: 'openai',
|
|
2365
2432
|
model: completion.model,
|
|
2366
|
-
|
|
2433
|
+
cached_tokens: completion.usage.cached_tokens,
|
|
2434
|
+
cost: calculateCost('openai', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens),
|
|
2367
2435
|
},
|
|
2368
2436
|
tool_calls: completion.tool_calls,
|
|
2369
2437
|
};
|
|
@@ -2418,8 +2486,11 @@ const makeResponsesAPICall = async (input, options = {}) => {
|
|
|
2418
2486
|
maxDelayMs: 30000,
|
|
2419
2487
|
retryableErrors: isRetryableLLMError,
|
|
2420
2488
|
}, `OpenAI-Responses:${normalizedModel}`);
|
|
2489
|
+
// Responses API exposes cached input tokens under `input_tokens_details.cached_tokens`
|
|
2490
|
+
// (the equivalent of Chat Completions' `prompt_tokens_details.cached_tokens`).
|
|
2491
|
+
const responsesCachedTokens = response.usage?.input_tokens_details?.cached_tokens || 0;
|
|
2421
2492
|
// Track cost in the global cost tracker
|
|
2422
|
-
getLLMCostTracker().trackUsage('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0);
|
|
2493
|
+
getLLMCostTracker().trackUsage('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0, responsesCachedTokens);
|
|
2423
2494
|
// Extract tool calls from the output
|
|
2424
2495
|
const toolCalls = response.output
|
|
2425
2496
|
?.filter((item) => item.type === 'function_call')
|
|
@@ -2460,7 +2531,8 @@ const makeResponsesAPICall = async (input, options = {}) => {
|
|
|
2460
2531
|
reasoning_tokens: response.usage?.output_tokens_details?.reasoning_tokens || 0,
|
|
2461
2532
|
provider: 'openai',
|
|
2462
2533
|
model: normalizedModel,
|
|
2463
|
-
|
|
2534
|
+
cached_tokens: responsesCachedTokens,
|
|
2535
|
+
cost: calculateCost('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0, responsesCachedTokens),
|
|
2464
2536
|
},
|
|
2465
2537
|
tool_calls: toolCalls,
|
|
2466
2538
|
...(codeInterpreterOutputs ? { code_interpreter_outputs: codeInterpreterOutputs } : {}),
|
|
@@ -2492,7 +2564,8 @@ const makeResponsesAPICall = async (input, options = {}) => {
|
|
|
2492
2564
|
reasoning_tokens: response.usage?.output_tokens_details?.reasoning_tokens || 0,
|
|
2493
2565
|
provider: 'openai',
|
|
2494
2566
|
model: normalizedModel,
|
|
2495
|
-
|
|
2567
|
+
cached_tokens: responsesCachedTokens,
|
|
2568
|
+
cost: calculateCost('openai', normalizedModel, response.usage?.input_tokens || 0, response.usage?.output_tokens || 0, response.usage?.output_tokens_details?.reasoning_tokens || 0, responsesCachedTokens),
|
|
2496
2569
|
},
|
|
2497
2570
|
tool_calls: toolCalls,
|
|
2498
2571
|
...(codeInterpreterOutputs ? { code_interpreter_outputs: codeInterpreterOutputs } : {}),
|
|
@@ -7922,7 +7995,12 @@ function translateContextToAnthropic(context) {
|
|
|
7922
7995
|
/** Convert string or content block array to a uniform content block array. */
|
|
7923
7996
|
function toContentBlocks(content) {
|
|
7924
7997
|
if (typeof content === 'string') {
|
|
7925
|
-
|
|
7998
|
+
const textBlock = {
|
|
7999
|
+
type: 'text',
|
|
8000
|
+
text: content,
|
|
8001
|
+
citations: null,
|
|
8002
|
+
};
|
|
8003
|
+
return [textBlock];
|
|
7926
8004
|
}
|
|
7927
8005
|
return content;
|
|
7928
8006
|
}
|
|
@@ -8679,14 +8757,25 @@ async function createDeepseekCompletion(content, responseFormat, options = {}) {
|
|
|
8679
8757
|
maxDelayMs: 30000,
|
|
8680
8758
|
retryableErrors: isRetryableDeepseekError,
|
|
8681
8759
|
}, `Deepseek:${normalizedModel}`);
|
|
8760
|
+
// DeepSeek surfaces cached input tokens in two places on the usage object:
|
|
8761
|
+
// - `prompt_cache_hit_tokens` (DeepSeek-native field, see
|
|
8762
|
+
// https://api-docs.deepseek.com/guides/kv_cache)
|
|
8763
|
+
// - `prompt_tokens_details.cached_tokens` (OpenAI-compatible alias)
|
|
8764
|
+
// Prefer the OpenAI-compatible name so a single canonical field works for
|
|
8765
|
+
// both providers; fall back to the DeepSeek-native name if absent.
|
|
8766
|
+
const usageRaw = completion.usage;
|
|
8767
|
+
const cachedTokens = usageRaw?.prompt_tokens_details?.cached_tokens ??
|
|
8768
|
+
usageRaw?.prompt_cache_hit_tokens ??
|
|
8769
|
+
0;
|
|
8682
8770
|
return {
|
|
8683
8771
|
id: completion.id,
|
|
8684
8772
|
content: completion.choices[0]?.message?.content || '',
|
|
8685
8773
|
tool_calls: completion.choices[0]?.message?.tool_calls,
|
|
8686
|
-
usage:
|
|
8687
|
-
prompt_tokens: 0,
|
|
8688
|
-
completion_tokens: 0,
|
|
8689
|
-
total_tokens: 0,
|
|
8774
|
+
usage: {
|
|
8775
|
+
prompt_tokens: completion.usage?.prompt_tokens ?? 0,
|
|
8776
|
+
completion_tokens: completion.usage?.completion_tokens ?? 0,
|
|
8777
|
+
total_tokens: completion.usage?.total_tokens ?? 0,
|
|
8778
|
+
cached_tokens: cachedTokens,
|
|
8690
8779
|
},
|
|
8691
8780
|
system_fingerprint: completion.system_fingerprint,
|
|
8692
8781
|
provider: 'deepseek',
|
|
@@ -8728,7 +8817,7 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
|
|
|
8728
8817
|
reasoning_tokens: 0,
|
|
8729
8818
|
provider: 'deepseek',
|
|
8730
8819
|
model: modelName,
|
|
8731
|
-
|
|
8820
|
+
cached_tokens: 0,
|
|
8732
8821
|
cost: 0,
|
|
8733
8822
|
},
|
|
8734
8823
|
tool_calls: undefined,
|
|
@@ -8747,7 +8836,7 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
|
|
|
8747
8836
|
reasoning_tokens: 0,
|
|
8748
8837
|
provider: 'deepseek',
|
|
8749
8838
|
model: modelName,
|
|
8750
|
-
|
|
8839
|
+
cached_tokens: 0,
|
|
8751
8840
|
cost: 0,
|
|
8752
8841
|
},
|
|
8753
8842
|
tool_calls: undefined,
|
|
@@ -8755,8 +8844,9 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
|
|
|
8755
8844
|
}
|
|
8756
8845
|
try {
|
|
8757
8846
|
const completion = await createDeepseekCompletion(content, responseFormat, mergedOptions);
|
|
8758
|
-
// Track cost in the global cost tracker
|
|
8759
|
-
|
|
8847
|
+
// Track cost in the global cost tracker. Pass cached tokens through so the
|
|
8848
|
+
// discounted cached-input pricing tier is applied.
|
|
8849
|
+
getLLMCostTracker().trackUsage('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens);
|
|
8760
8850
|
// Handle tool calls similarly to OpenAI
|
|
8761
8851
|
if (completion.tool_calls && completion.tool_calls.length > 0) {
|
|
8762
8852
|
const toolCallResponse = {
|
|
@@ -8774,9 +8864,8 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
|
|
|
8774
8864
|
reasoning_tokens: 0, // Deepseek doesn't provide reasoning tokens separately
|
|
8775
8865
|
provider: 'deepseek',
|
|
8776
8866
|
model: completion.model,
|
|
8777
|
-
|
|
8778
|
-
cost: calculateCost('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0,
|
|
8779
|
-
),
|
|
8867
|
+
cached_tokens: completion.usage.cached_tokens,
|
|
8868
|
+
cost: calculateCost('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens),
|
|
8780
8869
|
},
|
|
8781
8870
|
tool_calls: completion.tool_calls,
|
|
8782
8871
|
};
|
|
@@ -8794,9 +8883,8 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
|
|
|
8794
8883
|
reasoning_tokens: 0, // Deepseek doesn't provide reasoning tokens separately
|
|
8795
8884
|
provider: 'deepseek',
|
|
8796
8885
|
model: completion.model,
|
|
8797
|
-
|
|
8798
|
-
cost: calculateCost('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0,
|
|
8799
|
-
),
|
|
8886
|
+
cached_tokens: completion.usage.cached_tokens,
|
|
8887
|
+
cost: calculateCost('deepseek', completion.model, completion.usage.prompt_tokens, completion.usage.completion_tokens, 0, completion.usage.cached_tokens),
|
|
8800
8888
|
},
|
|
8801
8889
|
tool_calls: completion.tool_calls,
|
|
8802
8890
|
};
|
|
@@ -8814,7 +8902,7 @@ const makeDeepseekCall = async (content, responseFormat = 'json', options = {})
|
|
|
8814
8902
|
reasoning_tokens: 0,
|
|
8815
8903
|
provider: 'deepseek',
|
|
8816
8904
|
model: modelName,
|
|
8817
|
-
|
|
8905
|
+
cached_tokens: 0,
|
|
8818
8906
|
cost: 0,
|
|
8819
8907
|
},
|
|
8820
8908
|
tool_calls: undefined,
|
|
@@ -22713,11 +22801,11 @@ let poolConfig = DEFAULT_POOL_CONFIG;
|
|
|
22713
22801
|
async function loadApolloModules() {
|
|
22714
22802
|
if (typeof window === "undefined" || process.env.AWS_EXECUTION_ENV) {
|
|
22715
22803
|
// Server-side (or Lambda): load the CommonJS‑based implementation.
|
|
22716
|
-
return (await import('./apollo-client.server-
|
|
22804
|
+
return (await import('./apollo-client.server-L8JR2ko_.js'));
|
|
22717
22805
|
}
|
|
22718
22806
|
else {
|
|
22719
22807
|
// Client-side: load the ESM‑based implementation.
|
|
22720
|
-
return (await import('./apollo-client.client-
|
|
22808
|
+
return (await import('./apollo-client.client-DRk6kygw.js'));
|
|
22721
22809
|
}
|
|
22722
22810
|
}
|
|
22723
22811
|
/**
|
|
@@ -81241,4 +81329,4 @@ const lumic = {
|
|
|
81241
81329
|
};
|
|
81242
81330
|
|
|
81243
81331
|
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 };
|
|
81244
|
-
//# sourceMappingURL=index-
|
|
81332
|
+
//# sourceMappingURL=index-CSOg0U0R.js.map
|