@workglow/openai 0.4.4 → 0.4.6

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.
@@ -16,29 +16,25 @@ import { promptToTailMessages, toOpenAIMessages } from "@workglow/ai/worker";
16
16
 
17
17
  // src/ai/common/OpenAI_Client.ts
18
18
  import { isBrowserLike, resolveApiKey, validateProviderBaseUrl } from "@workglow/ai/provider-utils";
19
- import { isModelEffortEnabled } from "@workglow/ai/worker";
19
+ import { resolveEnabledEffort } from "@workglow/ai/worker";
20
20
 
21
21
  // src/ai/common/OpenAI_EffortPolicy.ts
22
- import { MODEL_EFFORTS } from "@workglow/ai/worker";
23
- var ALL = { supported: MODEL_EFFORTS, default: undefined };
22
+ import {
23
+ EFFORT_POLICY_NONE,
24
+ makeEffortPolicy,
25
+ MODEL_EFFORTS
26
+ } from "@workglow/ai/worker";
24
27
  var REASONING = {
25
28
  supported: MODEL_EFFORTS,
26
29
  default: "medium"
27
30
  };
28
- var NONE = { supported: [], default: undefined };
29
- function modelName(model) {
30
- return String(model.provider_config?.model_name ?? "").trim();
31
- }
32
- function openaiEffortPolicy(model) {
33
- const id = modelName(model);
34
- if (!id)
35
- return ALL;
36
- if (/^text-embedding/i.test(id) || /^gpt-image/i.test(id) || /^dall-e/i.test(id))
37
- return NONE;
38
- if (/^gpt-5/i.test(id) || /^o[134]/i.test(id))
39
- return REASONING;
40
- return NONE;
41
- }
31
+ var openaiEffortPolicy = makeEffortPolicy({
32
+ rules: [
33
+ { when: [/^text-embedding/i, /^gpt-image/i, /^dall-e/i], policy: EFFORT_POLICY_NONE },
34
+ { when: [/^gpt-5/i, /^o[134]/i], policy: REASONING }
35
+ ],
36
+ fallback: EFFORT_POLICY_NONE
37
+ });
42
38
 
43
39
  // src/ai/common/OpenAI_Client.ts
44
40
  var EFFORT_TO_OPENAI = {
@@ -104,9 +100,9 @@ function getReasoningConfig(model) {
104
100
  if (reasoning && (reasoning.effort !== undefined || reasoning.mode !== undefined)) {
105
101
  return reasoning;
106
102
  }
107
- if (model && isModelEffortEnabled(model, openaiEffortPolicy(model))) {
108
- return { effort: EFFORT_TO_OPENAI[model.effort] };
109
- }
103
+ const effort = resolveEnabledEffort(model, openaiEffortPolicy(model));
104
+ if (effort !== undefined)
105
+ return { effort: EFFORT_TO_OPENAI[effort] };
110
106
  return;
111
107
  }
112
108
  function fnv1aHex(input) {
@@ -194,10 +190,10 @@ function registerOpenAiImageValidator() {
194
190
  AiImageOutputTask.registerProviderImageValidator(OPENAI, (taskType, input, model) => {
195
191
  if (taskType !== "ImageEditTask")
196
192
  return;
197
- const modelName2 = model.provider_config?.model_name ?? "";
193
+ const modelName = model.provider_config?.model_name ?? "";
198
194
  const additional = input["additionalImages"];
199
- if (modelName2.startsWith("dall-e-2") && Array.isArray(additional) && additional.length > 0) {
200
- throw new ProviderUnsupportedFeatureError("additionalImages", model.model_id ?? modelName2, "DALL-E 2 only supports single-image edits");
195
+ if (modelName.startsWith("dall-e-2") && Array.isArray(additional) && additional.length > 0) {
196
+ throw new ProviderUnsupportedFeatureError("additionalImages", model.model_id ?? modelName, "DALL-E 2 only supports single-image edits");
201
197
  }
202
198
  });
203
199
  }
@@ -243,20 +239,20 @@ async function loadTiktoken() {
243
239
  return _tiktoken;
244
240
  }
245
241
  var _encoderCache = new Map;
246
- async function getEncoder(modelName2) {
242
+ async function getEncoder(modelName) {
247
243
  const tiktoken = await loadTiktoken();
248
- if (!_encoderCache.has(modelName2)) {
244
+ if (!_encoderCache.has(modelName)) {
249
245
  try {
250
- _encoderCache.set(modelName2, tiktoken.encoding_for_model(modelName2));
246
+ _encoderCache.set(modelName, tiktoken.encoding_for_model(modelName));
251
247
  } catch {
252
248
  const fallback = "cl100k_base";
253
249
  if (!_encoderCache.has(fallback)) {
254
250
  _encoderCache.set(fallback, tiktoken.get_encoding(fallback));
255
251
  }
256
- _encoderCache.set(modelName2, _encoderCache.get(fallback));
252
+ _encoderCache.set(modelName, _encoderCache.get(fallback));
257
253
  }
258
254
  }
259
- return _encoderCache.get(modelName2);
255
+ return _encoderCache.get(modelName);
260
256
  }
261
257
  async function countTokens(input, model) {
262
258
  const enc = await getEncoder(getModelName(model));
@@ -304,12 +300,12 @@ async function decodeB64Png(b64) {
304
300
  return dataUriToImageValue(`data:image/png;base64,${b64}`);
305
301
  }
306
302
  async function buildEditPayload(input, model) {
307
- const modelName2 = getModelName(model);
303
+ const modelName = getModelName(model);
308
304
  const primary = await gpuImageToOpenAiFile(input.image, "image.png");
309
305
  const additionalFiles = input.additionalImages && input.additionalImages.length > 0 ? await Promise.all(input.additionalImages.map((g, i) => gpuImageToOpenAiFile(g, `image-${i + 1}.png`))) : [];
310
306
  const imageField = additionalFiles.length === 0 ? primary : [primary, ...additionalFiles];
311
307
  const payload = {
312
- model: modelName2,
308
+ model: modelName,
313
309
  prompt: input.prompt,
314
310
  image: imageField,
315
311
  size: aspectRatioToSize(input.aspectRatio),
@@ -372,12 +368,12 @@ async function decodeB64Png2(b64) {
372
368
  }
373
369
  var OpenAI_ImageGenerate_Stream = async (input, model, signal, emit) => {
374
370
  const client = await getClient(model);
375
- const modelName2 = getModelName(model);
371
+ const modelName = getModelName(model);
376
372
  const size = aspectRatioToSize2(input.aspectRatio);
377
- if (modelName2.startsWith("dall-e")) {
373
+ if (modelName.startsWith("dall-e")) {
378
374
  try {
379
375
  const resp = await client.images.generate({
380
- model: modelName2,
376
+ model: modelName,
381
377
  prompt: input.prompt,
382
378
  size,
383
379
  quality: input.quality,
@@ -408,7 +404,7 @@ var OpenAI_ImageGenerate_Stream = async (input, model, signal, emit) => {
408
404
  }
409
405
  try {
410
406
  const stream = await client.images.generate({
411
- model: modelName2,
407
+ model: modelName,
412
408
  prompt: input.prompt,
413
409
  size,
414
410
  quality: input.quality,
@@ -463,17 +459,17 @@ function isNotFoundError(err) {
463
459
  return status === 404 || statusCode === 404 || code === "model_not_found";
464
460
  }
465
461
  async function assertOpenAiModelExists(model, signal) {
466
- const modelName2 = modelNameOf(model);
462
+ const modelName = modelNameOf(model);
467
463
  const client = await getClient(model);
468
464
  try {
469
- await client.models.retrieve(modelName2, signal ? { signal } : undefined);
465
+ await client.models.retrieve(modelName, signal ? { signal } : undefined);
470
466
  } catch (err) {
471
467
  if (isNotFoundError(err)) {
472
- throw new Error(`${OPENAI} model "${modelName2}" was not found (provider API returned not found)`);
468
+ throw new Error(`${OPENAI} model "${modelName}" was not found (provider API returned not found)`);
473
469
  }
474
470
  throw err;
475
471
  }
476
- return modelName2;
472
+ return modelName;
477
473
  }
478
474
  function remoteInfoBase(input) {
479
475
  return {
@@ -488,14 +484,14 @@ function remoteInfoBase(input) {
488
484
  };
489
485
  }
490
486
  var OpenAI_ModelInfo_Stream = async (input, model, signal, emit) => {
491
- const modelName2 = await assertOpenAiModelExists(model, signal);
487
+ const modelName = await assertOpenAiModelExists(model, signal);
492
488
  const base = remoteInfoBase(input);
493
489
  if (input.detail === "dimensions") {
494
490
  const pc = model?.provider_config;
495
491
  let native_dimensions = typeof pc?.native_dimensions === "number" ? pc.native_dimensions : undefined;
496
492
  let mrl = typeof pc?.mrl === "boolean" ? pc.mrl : undefined;
497
493
  if (native_dimensions === undefined) {
498
- const known = OPENAI_EMBEDDING_DIMENSIONS[modelName2];
494
+ const known = OPENAI_EMBEDDING_DIMENSIONS[modelName];
499
495
  if (known) {
500
496
  native_dimensions = known.native_dimensions;
501
497
  mrl = mrl ?? known.mrl;
@@ -625,17 +621,17 @@ function _resetOpenAIResponsesWarnings() {
625
621
  // src/ai/common/OpenAI_StructuredGeneration.ts
626
622
  var OpenAI_StructuredGeneration_Stream = async (input, model, signal, emit, outputSchema) => {
627
623
  const client = await getClient(model);
628
- const modelName2 = getModelName(model);
624
+ const modelName = getModelName(model);
629
625
  const schema = input.outputSchema ?? outputSchema;
630
626
  const rewritten = rewriteNullableUnionsForStrict(schema);
631
627
  const strict = isStrictCompatibleSchema(rewritten);
632
628
  const prompt = strict ? input.prompt : promptWithJsonSchema(input.prompt, schema);
633
629
  if (!strict) {
634
630
  const reason = firstNonStrictReason(rewritten) ?? "unknown reason";
635
- warnStrictDowngradedOnce(modelName2, reason);
631
+ warnStrictDowngradedOnce(modelName, reason);
636
632
  }
637
633
  const params = {
638
- model: modelName2,
634
+ model: modelName,
639
635
  input: prompt,
640
636
  text: {
641
637
  format: {
@@ -693,9 +689,9 @@ var OpenAI_TextEmbedding_Stream = async (input, model, signal, emit) => {
693
689
  logger.time(timerLabel, { model: getModelName(model) });
694
690
  try {
695
691
  const client = await getClient(model);
696
- const modelName2 = getModelName(model);
692
+ const modelName = getModelName(model);
697
693
  const response = await client.embeddings.create({
698
- model: modelName2,
694
+ model: modelName,
699
695
  input: input.text
700
696
  }, { signal });
701
697
  const result = Array.isArray(input.text) ? {
@@ -752,12 +748,12 @@ function buildResponsesParams(input, model) {
752
748
  params.temperature = input.temperature;
753
749
  if (input.topP !== undefined)
754
750
  params.top_p = input.topP;
755
- const modelName2 = getModelName(model);
751
+ const modelName = getModelName(model);
756
752
  if (input.frequencyPenalty !== undefined) {
757
- warnPenaltyDroppedOnce(modelName2, "frequencyPenalty");
753
+ warnPenaltyDroppedOnce(modelName, "frequencyPenalty");
758
754
  }
759
755
  if (input.presencePenalty !== undefined) {
760
- warnPenaltyDroppedOnce(modelName2, "presencePenalty");
756
+ warnPenaltyDroppedOnce(modelName, "presencePenalty");
761
757
  }
762
758
  return params;
763
759
  }
@@ -845,7 +841,7 @@ import {
845
841
  import { filterValidToolCalls, toOpenAIMessages as toOpenAIMessages3 } from "@workglow/ai/worker";
846
842
  var OpenAI_ToolCalling_Stream = async (input, model, signal, emit, _outputSchema, sessionContext) => {
847
843
  const client = await getClient(model);
848
- const modelName2 = getModelName(model);
844
+ const modelName = getModelName(model);
849
845
  const merged = mergeOpenAICheckpointPrefix(sessionContext, input);
850
846
  const toolDefinitions = merged?.tools ?? input.tools;
851
847
  const tools = buildResponsesTools3(toolDefinitions);
@@ -859,7 +855,7 @@ var OpenAI_ToolCalling_Stream = async (input, model, signal, emit, _outputSchema
859
855
  });
860
856
  const toolChoice = mapResponsesToolChoice(input.toolChoice);
861
857
  const params = {
862
- model: modelName2,
858
+ model: modelName,
863
859
  input: responsesInput,
864
860
  tools,
865
861
  tool_choice: toolChoice
@@ -1013,4 +1009,4 @@ export {
1013
1009
  resolvePromptCacheKey
1014
1010
  };
1015
1011
 
1016
- //# debugId=66202F50544F20FB64756E2164756E21
1012
+ //# debugId=E7975AC9BA69881B64756E2164756E21
@@ -3,8 +3,8 @@
3
3
  "sources": ["../src/ai/common/OpenAI_CacheCheckpoint.ts", "../src/ai/common/OpenAI_Client.ts", "../src/ai/common/OpenAI_EffortPolicy.ts", "../src/ai/registerOpenAiInline.ts", "../src/ai/common/OpenAI_ImageValidation.ts", "../src/ai/common/OpenAI_Constants.ts", "../src/ai/common/OpenAI_CapabilitySets.ts", "../src/ai/common/OpenAI_CountTokens.ts", "../src/ai/common/OpenAI_ImageEdit.ts", "../src/ai/common/OpenAI_ImageGenerate.ts", "../src/ai/common/OpenAI_ModelInfo.ts", "../src/ai/common/OpenAI_ModelSearch.ts", "../src/ai/common/OpenAI_StructuredGeneration.ts", "../src/ai/common/OpenAI_ResponsesWarnings.ts", "../src/ai/common/OpenAI_TextEmbedding.ts", "../src/ai/common/OpenAI_TextGeneration.ts", "../src/ai/common/OpenAI_TextRewriter.ts", "../src/ai/common/OpenAI_TextSummary.ts", "../src/ai/common/OpenAI_ToolCalling.ts", "../src/ai/common/OpenAI_JobRunFns.ts", "../src/ai/OpenAiQueuedProvider.ts", "../src/ai/common/OpenAI_Capabilities.ts", "../src/ai/registerOpenAiWorker.ts", "../src/ai/OpenAiProvider.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiSessionContext,\n CacheCheckpointTaskInput,\n CacheCheckpointTaskOutput,\n ChatMessage,\n ToolDefinition,\n} from \"@workglow/ai\";\nimport {\n buildResponsesInput,\n buildResponsesTools,\n mapOpenAIResponsesUsage,\n} from \"@workglow/ai/provider-utils\";\nimport { promptToTailMessages, toOpenAIMessages } from \"@workglow/ai/worker\";\nimport { finalizeResponsesRequest, getClient, getModelName } from \"./OpenAI_Client\";\nimport type { OpenAiModelConfig } from \"./OpenAI_ModelSchema\";\n\n/**\n * Merges a checkpoint prefix into the unified generation input: the prefix's\n * messages come first, the caller's tail follows (its `messages`, or its\n * `prompt` lifted into a user message — the shared message builders only fall\n * back to `prompt` when the message list is empty), the prefix system prompt\n * applies when the call carries none (an explicit `\"\"` falls through too —\n * suppressing the warmed instructions would diverge the replayed prefix), and\n * the effective `tools` are the caller's when it declares any, else the\n * prefix's — tools precede the conversation in the serialized request, so a\n * tools-warmed prefix consumed without them never shares the warm-up's cached\n * prefix. Returns undefined when the session has no prefix so plain calls\n * take the unmodified path.\n *\n * OpenAI's prompt caching is automatic and keyed on the request's literal\n * token prefix, so replaying identical prefix content is both the correctness\n * path and the cache-hit path — no per-request cache annotations exist.\n */\nexport function mergeOpenAICheckpointPrefix(\n session: AiSessionContext | undefined,\n input: {\n readonly messages?: readonly unknown[] | undefined;\n readonly systemPrompt?: string | undefined;\n readonly prompt?: unknown;\n readonly tools?: readonly ToolDefinition[] | undefined;\n }\n):\n | {\n messages: readonly ChatMessage[];\n systemPrompt: string | undefined;\n tools: readonly ToolDefinition[] | undefined;\n }\n | undefined {\n const prefix = session?.prefix;\n if (!prefix) return undefined;\n const tail: readonly ChatMessage[] =\n Array.isArray(input.messages) && input.messages.length > 0\n ? (input.messages as readonly ChatMessage[])\n : promptToTailMessages(input.prompt);\n return {\n messages: [...(prefix.messages ?? []), ...tail],\n systemPrompt: input.systemPrompt || prefix.systemPrompt,\n tools: input.tools && input.tools.length > 0 ? input.tools : prefix.tools,\n };\n}\n\n/**\n * Warm-up run-fn for `[\"cache.checkpoint\"]` on OpenAI. Sends the prefix once\n * (minimal `max_output_tokens` — the Responses API floor is 16) so the\n * server-side automatic prompt cache is populated before consumers arrive.\n *\n * The warm-up is advisory: OpenAI caches long prompt prefixes on its own and\n * may evict at any time, so consumption never depends on this call having\n * succeeded — consumers always replay the full prefix content.\n * {@link finalizeResponsesRequest} derives the `prompt_cache_key` from the\n * request's model + instructions + tools, so this warm-up and every consumer\n * replaying the same prefix converge on the same key without coordination.\n */\nexport const OpenAI_CacheCheckpoint_Stream: AiProviderRunFn<\n CacheCheckpointTaskInput,\n CacheCheckpointTaskOutput,\n OpenAiModelConfig\n> = async (_input, model, signal, emit, _outputSchema, session) => {\n const prefix = session?.prefix ?? {};\n const client = await getClient(model);\n\n // The \".\" prompt is a throwaway user turn used only when the prefix has no\n // messages of its own (toOpenAIMessages ignores it otherwise); the cached\n // value is the system/tools region ahead of it.\n const messages = toOpenAIMessages({\n messages: prefix.messages ?? [],\n systemPrompt: prefix.systemPrompt,\n prompt: \".\",\n tools: [],\n } as never);\n const { input: responsesInput, instructions } = buildResponsesInput({ messages });\n\n const params: Record<string, unknown> = {\n model: getModelName(model),\n input: responsesInput,\n max_output_tokens: 16,\n };\n if (instructions !== undefined) params.instructions = instructions;\n if (prefix.tools && prefix.tools.length > 0) {\n params.tools = buildResponsesTools(prefix.tools);\n }\n finalizeResponsesRequest(model, params);\n\n const response = await (client.responses.create as (p: unknown, o: unknown) => Promise<unknown>)(\n params,\n { signal }\n );\n const usage = mapOpenAIResponsesUsage((response as { usage?: unknown } | undefined)?.usage);\n emit({\n type: \"finish\",\n data: { checkpoint: session?.sessionId ?? \"\" },\n ...(usage ? { usage } : {}),\n });\n};\n",
6
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { isBrowserLike, resolveApiKey, validateProviderBaseUrl } from \"@workglow/ai/provider-utils\";\nimport { isModelEffortEnabled, type ModelEffort } from \"@workglow/ai/worker\";\nimport { openaiEffortPolicy } from \"./OpenAI_EffortPolicy\";\nimport type { OpenAiModelConfig } from \"./OpenAI_ModelSchema\";\n\n/** Maps coarse {@link ModelEffort} to OpenAI Responses `reasoning.effort`. */\nconst EFFORT_TO_OPENAI: Record<ModelEffort, string> = {\n none: \"none\",\n low: \"low\",\n medium: \"medium\",\n high: \"high\",\n extra: \"xhigh\",\n ultra: \"max\",\n};\n\n/**\n * Hostnames (or hostname suffixes) accepted for OpenAI `base_url` without\n * the explicit `trustedBaseUrl` opt-out. Includes Azure OpenAI tenants.\n */\nexport const OPENAI_ALLOWED_HOSTS: readonly string[] = [\"api.openai.com\", \".openai.azure.com\"];\n\ntype OpenAIClientClass = new (config: any) => any;\n\nlet _loadPromise: Promise<OpenAIClientClass> | undefined;\n\n// NOTE: we do not want to de-dup this in the provider-utils, vite wants direct import with string literals.\nexport async function loadOpenAISDK(): Promise<OpenAIClientClass> {\n _loadPromise ??= import(/* @vite-ignore */ \"openai\")\n\n .then((mod) => mod.default as OpenAIClientClass)\n .catch(() => {\n _loadPromise = undefined;\n throw new Error(\"openai is required for OpenAI tasks. Install it with: bun add openai\");\n });\n return _loadPromise;\n}\n\ninterface ResolvedProviderConfig {\n readonly credential_key?: string;\n readonly api_key?: string;\n readonly model_name?: string;\n readonly base_url?: string;\n readonly organization?: string;\n readonly prompt_cache_key?: string;\n readonly reasoning?: { readonly effort?: string; readonly mode?: string };\n /**\n * When `true`, accept the `base_url` even if its hostname is not in\n * {@link OPENAI_ALLOWED_HOSTS}. Use only for known-good custom enterprise\n * gateways. The URL still has to parse and use a safe scheme.\n */\n readonly trustedBaseUrl?: boolean;\n}\n\nlet _testClient: unknown;\n\n/**\n * Override the client returned by {@link getClient} so runtime tests can\n * capture the requests the OpenAI run-fns build without a live SDK, API key,\n * or network call. Pass `undefined` to restore normal SDK-backed creation.\n * This lives in the runtime module (not a `vi.mock` of `openai`) so it works\n * identically whether the provider resolves to `src` or the bundled `dist`,\n * and is immune to duplicate SDK copies across the workspace defeating\n * module-level mocks.\n */\nfunction setOpenAIClientForTests(client: unknown): void {\n _testClient = client;\n}\n\n/**\n * @internal Symbols exported only for use by `@workglow/test`. Not part of the\n * stable public API. Surfaced on the `ai-runtime` barrel (via `export *`) and\n * merged into the `/ai` barrel's `_testOnly`.\n */\nexport const _testOnly = {\n setOpenAIClientForTests,\n} as const;\n\nexport async function getClient(model: OpenAiModelConfig | undefined) {\n if (_testClient) return _testClient as InstanceType<OpenAIClientClass>;\n const OpenAI = await loadOpenAISDK();\n const config = model?.provider_config as ResolvedProviderConfig | undefined;\n const apiKey = resolveApiKey({\n config,\n envVar: \"OPENAI_API_KEY\",\n providerLabel: \"OpenAI\",\n });\n // Throw before SDK construction on a rejected base_url so the API key is\n // never sent to an unvalidated host.\n const baseURL = validateProviderBaseUrl(config?.base_url, {\n vendor: \"openai\",\n allowHosts: OPENAI_ALLOWED_HOSTS,\n trustedBaseUrl: config?.trustedBaseUrl,\n providerLabel: \"OpenAI\",\n });\n try {\n return new OpenAI({\n apiKey,\n baseURL,\n organization: config?.organization || undefined,\n dangerouslyAllowBrowser: isBrowserLike(),\n });\n } catch (err) {\n throw new Error(\n `Failed to create OpenAI client: ${err instanceof Error ? err.message : \"unknown error\"}`\n );\n }\n}\n\nexport function getModelName(model: OpenAiModelConfig | undefined): string {\n const name = model?.provider_config?.model_name;\n if (!name) {\n throw new Error(\"Missing model name in provider_config.model_name.\");\n }\n return name;\n}\n\n/**\n * Resolves the `reasoning` object for reasoning-capable models (GPT-5.6\n * sol/terra/luna and the o-series). Native `provider_config.reasoning` wins;\n * otherwise map `model.effort`. Returns `undefined` when neither is set.\n */\nexport function getReasoningConfig(\n model: OpenAiModelConfig | undefined\n): { effort?: string; mode?: string } | undefined {\n const reasoning = (model?.provider_config as ResolvedProviderConfig | undefined)?.reasoning;\n if (reasoning && (reasoning.effort !== undefined || reasoning.mode !== undefined)) {\n return reasoning;\n }\n if (model && isModelEffortEnabled(model, openaiEffortPolicy(model))) {\n return { effort: EFFORT_TO_OPENAI[model.effort as ModelEffort] };\n }\n return undefined;\n}\n\n/** Deterministic 32-bit FNV-1a hash → 8-char hex. Worker-safe (no crypto import). */\nfunction fnv1aHex(input: string): string {\n let hash = 0x811c9dc5;\n for (let i = 0; i < input.length; i++) {\n hash ^= input.charCodeAt(i);\n hash = Math.imul(hash, 0x01000193);\n }\n return (hash >>> 0).toString(16).padStart(8, \"0\");\n}\n\n/**\n * Resolves the Responses `prompt_cache_key`. Uses an explicit\n * `provider_config.prompt_cache_key` override when set, otherwise derives a\n * stable key from the request's cache-relevant prefix (model + system\n * instructions + tools) so requests sharing that prefix converge on one key and\n * hit the cache. GPT-5.6 bills cache writes, so a stable key (not a random one)\n * is the cost-correct default.\n */\nexport function resolvePromptCacheKey(\n model: OpenAiModelConfig | undefined,\n params: { model?: unknown; instructions?: unknown; tools?: unknown }\n): string {\n const override = (model?.provider_config as ResolvedProviderConfig | undefined)?.prompt_cache_key;\n if (override) return override;\n const material = JSON.stringify([\n params.model ?? \"\",\n params.instructions ?? \"\",\n params.tools ?? null,\n ]);\n return `wg-${fnv1aHex(material)}`;\n}\n\n/**\n * Applies the per-request Responses fields common to every OpenAI text run-fn:\n * the model's `reasoning` config and a stable `prompt_cache_key`. Mutates and\n * returns `params` so callers can inline it into the create call. Call this\n * last, after model/instructions/tools/temperature are populated, so the cache\n * key sees the full prefix and the reasoning default can see the temperature.\n *\n * When the caller pinned a `temperature` but expressed no reasoning preference,\n * reasoning is forced off. The two are not independently selectable on the\n * reasoning families: `gpt-5.6-luna` answers `temperature` alone with\n * `400 Unsupported parameter: 'temperature' is not supported with this model`,\n * yet accepts `{reasoning: {effort: \"none\"}, temperature: 0}`. A caller asking\n * for a specific temperature is asking for controlled sampling, so honouring\n * that request — rather than failing it — is the useful reading. An explicit\n * `reasoning` in the model config always wins.\n */\nexport function finalizeResponsesRequest(\n model: OpenAiModelConfig | undefined,\n params: Record<string, unknown>\n): Record<string, unknown> {\n const reasoning = getReasoningConfig(model);\n if (reasoning !== undefined) params.reasoning = reasoning;\n else if (params.temperature !== undefined) params.reasoning = { effort: \"none\" };\n params.prompt_cache_key = resolvePromptCacheKey(model, params);\n return params;\n}\n",
7
- "/**\n * @license\n * Copyright 2026 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MODEL_EFFORTS, type ModelConfig, type ModelEffortPolicy } from \"@workglow/ai/worker\";\n\nconst ALL = { supported: MODEL_EFFORTS, default: undefined } as const satisfies ModelEffortPolicy;\nconst REASONING = {\n supported: MODEL_EFFORTS,\n default: \"medium\",\n} as const satisfies ModelEffortPolicy;\nconst NONE = { supported: [], default: undefined } as const satisfies ModelEffortPolicy;\n\nfunction modelName(model: ModelConfig): string {\n return String(\n (model.provider_config as { model_name?: string } | undefined)?.model_name ?? \"\"\n ).trim();\n}\n\nexport function openaiEffortPolicy(model: ModelConfig): ModelEffortPolicy {\n const id = modelName(model);\n if (!id) return ALL;\n if (/^text-embedding/i.test(id) || /^gpt-image/i.test(id) || /^dall-e/i.test(id)) return NONE;\n if (/^gpt-5/i.test(id) || /^o[134]/i.test(id)) return REASONING;\n return NONE;\n}\n",
6
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { isBrowserLike, resolveApiKey, validateProviderBaseUrl } from \"@workglow/ai/provider-utils\";\nimport { resolveEnabledEffort, type ModelEffort } from \"@workglow/ai/worker\";\nimport { openaiEffortPolicy } from \"./OpenAI_EffortPolicy\";\nimport type { OpenAiModelConfig } from \"./OpenAI_ModelSchema\";\n\n/** Maps coarse {@link ModelEffort} to OpenAI Responses `reasoning.effort`. */\nconst EFFORT_TO_OPENAI: Record<ModelEffort, string> = {\n none: \"none\",\n low: \"low\",\n medium: \"medium\",\n high: \"high\",\n extra: \"xhigh\",\n ultra: \"max\",\n};\n\n/**\n * Hostnames (or hostname suffixes) accepted for OpenAI `base_url` without\n * the explicit `trustedBaseUrl` opt-out. Includes Azure OpenAI tenants.\n */\nexport const OPENAI_ALLOWED_HOSTS: readonly string[] = [\"api.openai.com\", \".openai.azure.com\"];\n\ntype OpenAIClientClass = new (config: any) => any;\n\nlet _loadPromise: Promise<OpenAIClientClass> | undefined;\n\n// NOTE: we do not want to de-dup this in the provider-utils, vite wants direct import with string literals.\nexport async function loadOpenAISDK(): Promise<OpenAIClientClass> {\n _loadPromise ??= import(/* @vite-ignore */ \"openai\")\n\n .then((mod) => mod.default as OpenAIClientClass)\n .catch(() => {\n _loadPromise = undefined;\n throw new Error(\"openai is required for OpenAI tasks. Install it with: bun add openai\");\n });\n return _loadPromise;\n}\n\ninterface ResolvedProviderConfig {\n readonly credential_key?: string;\n readonly api_key?: string;\n readonly model_name?: string;\n readonly base_url?: string;\n readonly organization?: string;\n readonly prompt_cache_key?: string;\n readonly reasoning?: { readonly effort?: string; readonly mode?: string };\n /**\n * When `true`, accept the `base_url` even if its hostname is not in\n * {@link OPENAI_ALLOWED_HOSTS}. Use only for known-good custom enterprise\n * gateways. The URL still has to parse and use a safe scheme.\n */\n readonly trustedBaseUrl?: boolean;\n}\n\nlet _testClient: unknown;\n\n/**\n * Override the client returned by {@link getClient} so runtime tests can\n * capture the requests the OpenAI run-fns build without a live SDK, API key,\n * or network call. Pass `undefined` to restore normal SDK-backed creation.\n * This lives in the runtime module (not a `vi.mock` of `openai`) so it works\n * identically whether the provider resolves to `src` or the bundled `dist`,\n * and is immune to duplicate SDK copies across the workspace defeating\n * module-level mocks.\n */\nfunction setOpenAIClientForTests(client: unknown): void {\n _testClient = client;\n}\n\n/**\n * @internal Symbols exported only for use by `@workglow/test`. Not part of the\n * stable public API. Surfaced on the `ai-runtime` barrel (via `export *`) and\n * merged into the `/ai` barrel's `_testOnly`.\n */\nexport const _testOnly = {\n setOpenAIClientForTests,\n} as const;\n\nexport async function getClient(model: OpenAiModelConfig | undefined) {\n if (_testClient) return _testClient as InstanceType<OpenAIClientClass>;\n const OpenAI = await loadOpenAISDK();\n const config = model?.provider_config as ResolvedProviderConfig | undefined;\n const apiKey = resolveApiKey({\n config,\n envVar: \"OPENAI_API_KEY\",\n providerLabel: \"OpenAI\",\n });\n // Throw before SDK construction on a rejected base_url so the API key is\n // never sent to an unvalidated host.\n const baseURL = validateProviderBaseUrl(config?.base_url, {\n vendor: \"openai\",\n allowHosts: OPENAI_ALLOWED_HOSTS,\n trustedBaseUrl: config?.trustedBaseUrl,\n providerLabel: \"OpenAI\",\n });\n try {\n return new OpenAI({\n apiKey,\n baseURL,\n organization: config?.organization || undefined,\n dangerouslyAllowBrowser: isBrowserLike(),\n });\n } catch (err) {\n throw new Error(\n `Failed to create OpenAI client: ${err instanceof Error ? err.message : \"unknown error\"}`\n );\n }\n}\n\nexport function getModelName(model: OpenAiModelConfig | undefined): string {\n const name = model?.provider_config?.model_name;\n if (!name) {\n throw new Error(\"Missing model name in provider_config.model_name.\");\n }\n return name;\n}\n\n/**\n * Resolves the `reasoning` object for reasoning-capable models (GPT-5.6\n * sol/terra/luna and the o-series). Native `provider_config.reasoning` wins;\n * otherwise map `model.effort`. Returns `undefined` when neither is set.\n */\nexport function getReasoningConfig(\n model: OpenAiModelConfig | undefined\n): { effort?: string; mode?: string } | undefined {\n const reasoning = (model?.provider_config as ResolvedProviderConfig | undefined)?.reasoning;\n if (reasoning && (reasoning.effort !== undefined || reasoning.mode !== undefined)) {\n return reasoning;\n }\n const effort = resolveEnabledEffort(model, openaiEffortPolicy(model));\n if (effort !== undefined) return { effort: EFFORT_TO_OPENAI[effort] };\n return undefined;\n}\n\n/** Deterministic 32-bit FNV-1a hash → 8-char hex. Worker-safe (no crypto import). */\nfunction fnv1aHex(input: string): string {\n let hash = 0x811c9dc5;\n for (let i = 0; i < input.length; i++) {\n hash ^= input.charCodeAt(i);\n hash = Math.imul(hash, 0x01000193);\n }\n return (hash >>> 0).toString(16).padStart(8, \"0\");\n}\n\n/**\n * Resolves the Responses `prompt_cache_key`. Uses an explicit\n * `provider_config.prompt_cache_key` override when set, otherwise derives a\n * stable key from the request's cache-relevant prefix (model + system\n * instructions + tools) so requests sharing that prefix converge on one key and\n * hit the cache. GPT-5.6 bills cache writes, so a stable key (not a random one)\n * is the cost-correct default.\n */\nexport function resolvePromptCacheKey(\n model: OpenAiModelConfig | undefined,\n params: { model?: unknown; instructions?: unknown; tools?: unknown }\n): string {\n const override = (model?.provider_config as ResolvedProviderConfig | undefined)?.prompt_cache_key;\n if (override) return override;\n const material = JSON.stringify([\n params.model ?? \"\",\n params.instructions ?? \"\",\n params.tools ?? null,\n ]);\n return `wg-${fnv1aHex(material)}`;\n}\n\n/**\n * Applies the per-request Responses fields common to every OpenAI text run-fn:\n * the model's `reasoning` config and a stable `prompt_cache_key`. Mutates and\n * returns `params` so callers can inline it into the create call. Call this\n * last, after model/instructions/tools/temperature are populated, so the cache\n * key sees the full prefix and the reasoning default can see the temperature.\n *\n * When the caller pinned a `temperature` but expressed no reasoning preference,\n * reasoning is forced off. The two are not independently selectable on the\n * reasoning families: `gpt-5.6-luna` answers `temperature` alone with\n * `400 Unsupported parameter: 'temperature' is not supported with this model`,\n * yet accepts `{reasoning: {effort: \"none\"}, temperature: 0}`. A caller asking\n * for a specific temperature is asking for controlled sampling, so honouring\n * that request — rather than failing it — is the useful reading. An explicit\n * `reasoning` in the model config always wins.\n */\nexport function finalizeResponsesRequest(\n model: OpenAiModelConfig | undefined,\n params: Record<string, unknown>\n): Record<string, unknown> {\n const reasoning = getReasoningConfig(model);\n if (reasoning !== undefined) params.reasoning = reasoning;\n else if (params.temperature !== undefined) params.reasoning = { effort: \"none\" };\n params.prompt_cache_key = resolvePromptCacheKey(model, params);\n return params;\n}\n",
7
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n EFFORT_POLICY_NONE,\n makeEffortPolicy,\n MODEL_EFFORTS,\n type ModelEffortPolicy,\n type ModelEffortPolicyFn,\n} from \"@workglow/ai/worker\";\n\nconst REASONING = {\n supported: MODEL_EFFORTS,\n default: \"medium\",\n} as const satisfies ModelEffortPolicy;\n\n/**\n * OpenAI rejects `reasoning` with a 400 on the chat models that do not take it,\n * and those — `gpt-4o`, `gpt-4.1`, `chatgpt-*` are most of what does not match\n * a rule here, so an unrecognized id keeps the plain no-reasoning path. A new\n * reasoning family is one entry below rather than a live request that 400s.\n */\nexport const openaiEffortPolicy: ModelEffortPolicyFn = makeEffortPolicy({\n rules: [\n { when: [/^text-embedding/i, /^gpt-image/i, /^dall-e/i], policy: EFFORT_POLICY_NONE },\n { when: [/^gpt-5/i, /^o[134]/i], policy: REASONING },\n ],\n fallback: EFFORT_POLICY_NONE,\n});\n",
8
8
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRegisterOptions } from \"@workglow/ai\";\nimport { registerProviderInline } from \"@workglow/ai/provider-utils\";\nimport { registerOpenAiImageValidator } from \"./common/OpenAI_ImageValidation\";\nimport { OPENAI_PREVIEW_TASKS, OPENAI_RUN_FNS } from \"./common/OpenAI_JobRunFns\";\nimport { OpenAiQueuedProvider } from \"./OpenAiQueuedProvider\";\n\nexport async function registerOpenAiInline(options?: AiProviderRegisterOptions): Promise<void> {\n registerOpenAiImageValidator();\n await registerProviderInline(\n new OpenAiQueuedProvider(OPENAI_RUN_FNS, OPENAI_PREVIEW_TASKS),\n \"OpenAI\",\n options\n );\n}\n",
9
9
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ModelConfig } from \"@workglow/ai\";\nimport { AiImageOutputTask, ProviderUnsupportedFeatureError } from \"@workglow/ai\";\n\nimport { OPENAI } from \"./OpenAI_Constants\";\n\n/**\n * Registers the OpenAI per-provider image validator. Called at provider registration time\n * (both inline and worker-backed paths) so it runs on the main thread before any dispatch.\n *\n * Currently validates:\n * - DALL-E 2 + non-empty `additionalImages` → throws (single-image edit only).\n * DALL-E 3 + ImageEditTask is rejected upstream by the model registry task-array check.\n */\nexport function registerOpenAiImageValidator(): void {\n AiImageOutputTask.registerProviderImageValidator(\n OPENAI,\n (taskType, input, model: ModelConfig) => {\n if (taskType !== \"ImageEditTask\") return;\n const modelName =\n (model.provider_config as { model_name?: string } | undefined)?.model_name ?? \"\";\n const additional = input[\"additionalImages\"] as unknown[] | undefined;\n if (modelName.startsWith(\"dall-e-2\") && Array.isArray(additional) && additional.length > 0) {\n throw new ProviderUnsupportedFeatureError(\n \"additionalImages\",\n model.model_id ?? modelName,\n \"DALL-E 2 only supports single-image edits\"\n );\n }\n }\n );\n}\n",
10
10
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const OPENAI = \"OPENAI\";\n",
@@ -27,7 +27,7 @@
27
27
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { registerProviderWorker } from \"@workglow/ai/provider-utils\";\nimport { OPENAI_PREVIEW_TASKS, OPENAI_RUN_FNS } from \"./common/OpenAI_JobRunFns\";\nimport { OpenAiProvider } from \"./OpenAiProvider\";\n\nexport async function registerOpenAiWorker(): Promise<void> {\n await registerProviderWorker(\n (ws) => new OpenAiProvider(OPENAI_RUN_FNS, OPENAI_PREVIEW_TASKS).registerOnWorkerServer(ws),\n \"OpenAI\"\n );\n}\n",
28
28
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { createCloudProviderClass } from \"@workglow/ai/provider-utils\";\nimport type { Capability, ModelEffortPolicy, ModelRecord } from \"@workglow/ai/worker\";\nimport { AiProvider } from \"@workglow/ai/worker\";\nimport { inferOpenAiCapabilities, openAiWorkerRunFnSpecs } from \"./common/OpenAI_Capabilities\";\nimport { OPENAI } from \"./common/OpenAI_Constants\";\nimport { openaiEffortPolicy } from \"./common/OpenAI_EffortPolicy\";\nimport type { OpenAiModelConfig } from \"./common/OpenAI_ModelSchema\";\n\n/**\n * Worker-server registration for OpenAI cloud models. Imports `AiProvider`\n * from `@workglow/ai/worker` so the SDK is only loaded in the worker.\n *\n * The class extends the {@link createCloudProviderClass} mixin (which\n * supplies `name` / `displayName` / `isLocal` / `supportsBrowser`) and adds\n * the OpenAI-specific {@link AiProvider.inferCapabilities} and\n * {@link AiProvider.workerRunFnSpecs} overrides.\n */\nexport class OpenAiProvider extends createCloudProviderClass<OpenAiModelConfig>(AiProvider, {\n name: OPENAI,\n displayName: \"OpenAI\",\n}) {\n override inferCapabilities(model: ModelRecord): readonly Capability[] {\n return inferOpenAiCapabilities(model);\n }\n\n override effortPolicy(model: OpenAiModelConfig): ModelEffortPolicy | undefined {\n return openaiEffortPolicy(model);\n }\n\n protected override workerRunFnSpecs(): readonly { serves: readonly Capability[] }[] {\n return openAiWorkerRunFnSpecs();\n }\n}\n"
29
29
  ],
30
- "mappings": "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",
31
- "debugId": "66202F50544F20FB64756E2164756E21",
30
+ "mappings": ";;;;;;;;;AAcA;AAAA;AAAA;AAAA;AAAA;AAKA;;;ACbA;AACA;;;ACDA;AAAA;AAAA;AAAA;AAAA;AAQA,IAAM,YAAY;AAAA,EAChB,WAAW;AAAA,EACX,SAAS;AACX;AAQO,IAAM,qBAA0C,iBAAiB;AAAA,EACtE,OAAO;AAAA,IACL,EAAE,MAAM,CAAC,oBAAoB,eAAe,UAAU,GAAG,QAAQ,mBAAmB;AAAA,IACpF,EAAE,MAAM,CAAC,WAAW,UAAU,GAAG,QAAQ,UAAU;AAAA,EACrD;AAAA,EACA,UAAU;AACZ,CAAC;;;ADnBD,IAAM,mBAAgD;AAAA,EACpD,MAAM;AAAA,EACN,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AACT;AAMO,IAAM,uBAA0C,CAAC,kBAAkB,mBAAmB;AAI7F,IAAI;AAGJ,eAAsB,aAAa,GAA+B;AAAA,EAChE,iBAA2C,iBAExC,KAAK,CAAC,QAAQ,IAAI,OAA4B,EAC9C,MAAM,MAAM;AAAA,IACX,eAAe;AAAA,IACf,MAAM,IAAI,MAAM,sEAAsE;AAAA,GACvF;AAAA,EACH,OAAO;AAAA;AAmBT,IAAI;AAWJ,SAAS,uBAAuB,CAAC,QAAuB;AAAA,EACtD,cAAc;AAAA;AAQT,IAAM,YAAY;AAAA,EACvB;AACF;AAEA,eAAsB,SAAS,CAAC,OAAsC;AAAA,EACpE,IAAI;AAAA,IAAa,OAAO;AAAA,EACxB,MAAM,SAAS,MAAM,cAAc;AAAA,EACnC,MAAM,SAAS,OAAO;AAAA,EACtB,MAAM,SAAS,cAAc;AAAA,IAC3B;AAAA,IACA,QAAQ;AAAA,IACR,eAAe;AAAA,EACjB,CAAC;AAAA,EAGD,MAAM,UAAU,wBAAwB,QAAQ,UAAU;AAAA,IACxD,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,gBAAgB,QAAQ;AAAA,IACxB,eAAe;AAAA,EACjB,CAAC;AAAA,EACD,IAAI;AAAA,IACF,OAAO,IAAI,OAAO;AAAA,MAChB;AAAA,MACA;AAAA,MACA,cAAc,QAAQ,gBAAgB;AAAA,MACtC,yBAAyB,cAAc;AAAA,IACzC,CAAC;AAAA,IACD,OAAO,KAAK;AAAA,IACZ,MAAM,IAAI,MACR,mCAAmC,eAAe,QAAQ,IAAI,UAAU,iBAC1E;AAAA;AAAA;AAIG,SAAS,YAAY,CAAC,OAA8C;AAAA,EACzE,MAAM,OAAO,OAAO,iBAAiB;AAAA,EACrC,IAAI,CAAC,MAAM;AAAA,IACT,MAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAAA,EACA,OAAO;AAAA;AAQF,SAAS,kBAAkB,CAChC,OACgD;AAAA,EAChD,MAAM,YAAa,OAAO,iBAAwD;AAAA,EAClF,IAAI,cAAc,UAAU,WAAW,aAAa,UAAU,SAAS,YAAY;AAAA,IACjF,OAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,qBAAqB,OAAO,mBAAmB,KAAK,CAAC;AAAA,EACpE,IAAI,WAAW;AAAA,IAAW,OAAO,EAAE,QAAQ,iBAAiB,QAAQ;AAAA,EACpE;AAAA;AAIF,SAAS,QAAQ,CAAC,OAAuB;AAAA,EACvC,IAAI,OAAO;AAAA,EACX,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,IACrC,QAAQ,MAAM,WAAW,CAAC;AAAA,IAC1B,OAAO,KAAK,KAAK,MAAM,QAAU;AAAA,EACnC;AAAA,EACA,QAAQ,SAAS,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA;AAW3C,SAAS,qBAAqB,CACnC,OACA,QACQ;AAAA,EACR,MAAM,WAAY,OAAO,iBAAwD;AAAA,EACjF,IAAI;AAAA,IAAU,OAAO;AAAA,EACrB,MAAM,WAAW,KAAK,UAAU;AAAA,IAC9B,OAAO,SAAS;AAAA,IAChB,OAAO,gBAAgB;AAAA,IACvB,OAAO,SAAS;AAAA,EAClB,CAAC;AAAA,EACD,OAAO,MAAM,SAAS,QAAQ;AAAA;AAmBzB,SAAS,wBAAwB,CACtC,OACA,QACyB;AAAA,EACzB,MAAM,YAAY,mBAAmB,KAAK;AAAA,EAC1C,IAAI,cAAc;AAAA,IAAW,OAAO,YAAY;AAAA,EAC3C,SAAI,OAAO,gBAAgB;AAAA,IAAW,OAAO,YAAY,EAAE,QAAQ,OAAO;AAAA,EAC/E,OAAO,mBAAmB,sBAAsB,OAAO,MAAM;AAAA,EAC7D,OAAO;AAAA;;;AD3JF,SAAS,2BAA2B,CACzC,SACA,OAYY;AAAA,EACZ,MAAM,SAAS,SAAS;AAAA,EACxB,IAAI,CAAC;AAAA,IAAQ;AAAA,EACb,MAAM,OACJ,MAAM,QAAQ,MAAM,QAAQ,KAAK,MAAM,SAAS,SAAS,IACpD,MAAM,WACP,qBAAqB,MAAM,MAAM;AAAA,EACvC,OAAO;AAAA,IACL,UAAU,CAAC,GAAI,OAAO,YAAY,CAAC,GAAI,GAAG,IAAI;AAAA,IAC9C,cAAc,MAAM,gBAAgB,OAAO;AAAA,IAC3C,OAAO,MAAM,SAAS,MAAM,MAAM,SAAS,IAAI,MAAM,QAAQ,OAAO;AAAA,EACtE;AAAA;AAeK,IAAM,gCAIT,OAAO,QAAQ,OAAO,QAAQ,MAAM,eAAe,YAAY;AAAA,EACjE,MAAM,SAAS,SAAS,UAAU,CAAC;AAAA,EACnC,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,EAKpC,MAAM,WAAW,iBAAiB;AAAA,IAChC,UAAU,OAAO,YAAY,CAAC;AAAA,IAC9B,cAAc,OAAO;AAAA,IACrB,QAAQ;AAAA,IACR,OAAO,CAAC;AAAA,EACV,CAAU;AAAA,EACV,QAAQ,OAAO,gBAAgB,iBAAiB,oBAAoB,EAAE,SAAS,CAAC;AAAA,EAEhF,MAAM,SAAkC;AAAA,IACtC,OAAO,aAAa,KAAK;AAAA,IACzB,OAAO;AAAA,IACP,mBAAmB;AAAA,EACrB;AAAA,EACA,IAAI,iBAAiB;AAAA,IAAW,OAAO,eAAe;AAAA,EACtD,IAAI,OAAO,SAAS,OAAO,MAAM,SAAS,GAAG;AAAA,IAC3C,OAAO,QAAQ,oBAAoB,OAAO,KAAK;AAAA,EACjD;AAAA,EACA,yBAAyB,OAAO,MAAM;AAAA,EAEtC,MAAM,WAAW,MAAO,OAAO,UAAU,OACvC,QACA,EAAE,OAAO,CACX;AAAA,EACA,MAAM,QAAQ,wBAAyB,UAA8C,KAAK;AAAA,EAC1F,KAAK;AAAA,IACH,MAAM;AAAA,IACN,MAAM,EAAE,YAAY,SAAS,aAAa,GAAG;AAAA,OACzC,QAAQ,EAAE,MAAM,IAAI,CAAC;AAAA,EAC3B,CAAC;AAAA;;;AGhHH;;;ACAA;;;ACDO,IAAM,SAAS;;;ADaf,SAAS,4BAA4B,GAAS;AAAA,EACnD,kBAAkB,+BAChB,QACA,CAAC,UAAU,OAAO,UAAuB;AAAA,IACvC,IAAI,aAAa;AAAA,MAAiB;AAAA,IAClC,MAAM,YACH,MAAM,iBAAyD,cAAc;AAAA,IAChF,MAAM,aAAa,MAAM;AAAA,IACzB,IAAI,UAAU,WAAW,UAAU,KAAK,MAAM,QAAQ,UAAU,KAAK,WAAW,SAAS,GAAG;AAAA,MAC1F,MAAM,IAAI,gCACR,oBACA,MAAM,YAAY,WAClB,2CACF;AAAA,IACF;AAAA,GAEJ;AAAA;;;AEhBK,IAAM,yBAAyB,CAAC,iBAAiB;AACjD,IAAM,kBAAkB,CAAC,mBAAmB,UAAU;AACtD,IAAM,mBAAmB,CAAC,mBAAmB,WAAW;AACxD,IAAM,uBAAuB,CAAC,eAAe;AAC7C,IAAM,sBAAsB,CAAC,cAAc;AAC3C,IAAM,wBAAwB,CAAC,gBAAgB;AAC/C,IAAM,0BAA0B,CAAC,kBAAkB;AACnD,IAAM,uBAAuB,CAAC,eAAe;AAC7C,IAAM,sBAAsB,CAAC,oBAAoB;AACjD,IAAM,sBAAsB,CAAC,cAAc;AAC3C,IAAM,oBAAoB,CAAC,YAAY;AACvC,IAAM,0BAA0B,CAAC,kBAAkB;AAGnD,IAAM,yBAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC9BA,IAAI;AAEJ,eAAe,YAAY,GAAG;AAAA,EAC5B,IAAI,CAAC,WAAW;AAAA,IACd,IAAI;AAAA,MACF,YAAY,MAAa;AAAA,MACzB,MAAM;AAAA,MACN,MAAM,IAAI,MACR,mFACF;AAAA;AAAA,EAEJ;AAAA,EACA,OAAO;AAAA;AAGT,IAAM,gBAAgB,IAAI;AAE1B,eAAe,UAAU,CAAC,WAAmB;AAAA,EAC3C,MAAM,WAAW,MAAM,aAAa;AAAA,EACpC,IAAI,CAAC,cAAc,IAAI,SAAS,GAAG;AAAA,IACjC,IAAI;AAAA,MACF,cAAc,IAAI,WAAW,SAAS,mBAAmB,SAA0B,CAAC;AAAA,MACpF,MAAM;AAAA,MACN,MAAM,WAAW;AAAA,MACjB,IAAI,CAAC,cAAc,IAAI,QAAQ,GAAG;AAAA,QAChC,cAAc,IAAI,UAAU,SAAS,aAAa,QAAQ,CAAC;AAAA,MAC7D;AAAA,MACA,cAAc,IAAI,WAAW,cAAc,IAAI,QAAQ,CAAE;AAAA;AAAA,EAE7D;AAAA,EACA,OAAO,cAAc,IAAI,SAAS;AAAA;AAGpC,eAAe,WAAW,CACxB,OACA,OACgC;AAAA,EAChC,MAAM,MAAM,MAAM,WAAW,aAAa,KAAK,CAAC;AAAA,EAChD,MAAM,SAAS,IAAI,OAAO,MAAM,IAAI;AAAA,EACpC,OAAO,EAAE,OAAO,OAAO,OAAO;AAAA;AAOzB,IAAM,4BAIT,OAAO,OAAO,OAAO,SAAS,SAAS;AAAA,EACzC,MAAM,SAAS,MAAM,YAAY,OAAO,KAAK;AAAA,EAC7C,KAAK,EAAE,MAAM,UAAU,MAAM,OAAO,CAAC;AAAA;AAIhC,IAAM,6BAIT,OAAO,OAAO,UAAU;AAAA,EAC1B,OAAO,YAAY,OAAO,KAAK;AAAA;;;ACtEjC;AAGA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,iBAAiB,CACxB,aACyC;AAAA,EACzC,QAAQ;AAAA,SACD;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA;AAAA,MAEH,OAAO;AAAA;AAAA;AAUb,eAAe,oBAAoB,CAAC,OAAyB,MAAgC;AAAA,EAC3F,MAAM,QAAQ,MAAM,qBAAqB,KAAK;AAAA,EAE9C,MAAM,SACJ,MAAM,kBAAkB,cACpB,MAAM,OAAO,MAAM,MAAM,YAAY,MAAM,aAAa,MAAM,UAAU,IACxE,IAAI,WAAW,KAAK,EAAE;AAAA,EAC5B,MAAM,MAAO,MAAa;AAAA,EAG1B,IAAI,OAAO,IAAI,WAAW,YAAY;AAAA,IACpC,OAAO,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,MAAM,YAAY,CAAC,GAAG,MAAM,EAAE,MAAM,YAAY,CAAC;AAAA,EAC1F;AAAA,EACA,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,YAAY,CAAC;AAAA;AAGvD,eAAe,YAAY,CAAC,KAAkC;AAAA,EAC5D,OAAO,oBAAoB,yBAAyB,KAAK;AAAA;AAG3D,eAAe,gBAAgB,CAC7B,OACA,OACkC;AAAA,EAClC,MAAM,YAAY,aAAa,KAAK;AAAA,EAGpC,MAAM,UAAU,MAAM,qBACpB,MAAM,OACN,WACF;AAAA,EACA,MAAM,kBACJ,MAAM,oBAAqB,MAAM,iBAAwC,SAAS,IAC9E,MAAM,QAAQ,IACX,MAAM,iBAAwC,IAAI,CAAC,GAAG,MACrD,qBAAqB,GAAG,SAAS,IAAI,OAAO,CAC9C,CACF,IACA,CAAC;AAAA,EACP,MAAM,aAAa,gBAAgB,WAAW,IAAI,UAAU,CAAC,SAAS,GAAG,eAAe;AAAA,EAExF,MAAM,UAAmC;AAAA,IACvC,OAAO;AAAA,IACP,QAAQ,MAAM;AAAA,IACd,OAAO;AAAA,IACP,MAAM,kBAAkB,MAAM,WAAW;AAAA,IACzC,SAAS,MAAM;AAAA,IACf,GAAG;AAAA,OACC,MAAM,mBAAmB,CAAC;AAAA,EAChC;AAAA,EACA,IAAI,MAAM,MAAM;AAAA,IACd,QAAQ,OAAO,MAAM,qBACnB,MAAM,MACN,UACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAQF,IAAM,0BAIT,OAAO,OAAO,OAAO,QAAQ,SAAS;AAAA,EACxC,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,EAEpC,IAAI;AAAA,IACF,MAAM,UAAU,MAAM,iBAAiB,OAAO,KAAK;AAAA,IACnD,MAAM,SAAS,MACb,OAAO,OAAO,KAId,KAAK,SAAS,QAAQ,MAAM,gBAAgB,EAAE,GAAG,EAAE,OAAO,CAAC;AAAA,IAE7D,iBAAiB,SAAS,QAAQ;AAAA,MAChC,IAAI,OAAO;AAAA,QAAS;AAAA,MACpB,MAAM,MAAM,MAAM;AAAA,MAClB,IAAI,CAAC;AAAA,QAAK;AAAA,MACV,MAAM,QAAQ,MAAM,aAAa,GAAG;AAAA,MACpC,KAAK,EAAE,MAAM,YAAY,MAAM,EAAE,MAAM,EAAE,CAA+B;AAAA,IAC1E;AAAA,IACA,KAAK,EAAE,MAAM,UAAU,MAAM,CAAC,EAAyB,CAAC;AAAA,IACxD,OAAO,KAAK;AAAA,IACZ,IACE,eAAe,gCACf,eAAe,mCACf;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA,MAAM,MAAM,eAAe,QAAQ,IAAI,UAAU;AAAA,IACjD,IAAI,4BAA4B,KAAK,GAAG,GAAG;AAAA,MACzC,MAAM,IAAI,kCAAkC,gBAAgB,OAAO,QAAQ,GAAG,GAAG;AAAA,IACnF;AAAA,IACA,MAAM,IAAI,6BAA6B,gBAAgB,OAAO,QAAQ,GAAG,KAAK;AAAA,MAC5E,OAAO;AAAA,IACT,CAAC;AAAA;AAAA;;;ACpIL,8CAAS,oEAAmC;AAG5C,gCAAS,yCAAqB;AAK9B,SAAS,kBAAiB,CACxB,aACyC;AAAA,EACzC,QAAQ;AAAA,SACD;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA;AAAA,MAEH,OAAO;AAAA;AAAA;AAIb,eAAe,aAAY,CAAC,KAAkC;AAAA,EAC5D,OAAO,qBAAoB,yBAAyB,KAAK;AAAA;AAUpD,IAAM,8BAIT,OAAO,OAAO,OAAO,QAAQ,SAAS;AAAA,EACxC,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,EACpC,MAAM,YAAY,aAAa,KAAK;AAAA,EACpC,MAAM,OAAO,mBAAkB,MAAM,WAAW;AAAA,EAGhD,IAAI,UAAU,WAAW,QAAQ,GAAG;AAAA,IAClC,IAAI;AAAA,MACF,MAAM,OAAO,MACX,OAAO,OAAO,SAKd;AAAA,QACE,OAAO;AAAA,QACP,QAAQ,MAAM;AAAA,QACd;AAAA,QACA,SAAS,MAAM;AAAA,QACf,GAAG;AAAA,QACH,iBAAiB;AAAA,WACb,MAAM,mBAAmB,CAAC;AAAA,MAChC,GACA,EAAE,OAAO,CACX;AAAA,MACA,MAAM,MAAM,KAAK,OAAO,IAAI;AAAA,MAC5B,IAAI,CAAC,KAAK;AAAA,QACR,MAAM,IAAI,8BACR,iBAAgB,OAAO,QAAQ,GAC/B,8BACF;AAAA,MACF;AAAA,MACA,MAAM,QAAQ,MAAM,cAAa,GAAG;AAAA,MACpC,KAAK,EAAE,MAAM,YAAY,MAAM,EAAE,MAAM,EAAE,CAA+B;AAAA,MACxE,KAAK,EAAE,MAAM,UAAU,MAAM,CAAC,EAA6B,CAAC;AAAA,MAC5D;AAAA,MACA,OAAO,KAAK;AAAA,MACZ,IACE,eAAe,iCACf,eAAe,oCACf;AAAA,QACA,MAAM;AAAA,MACR;AAAA,MACA,MAAM,MAAM,eAAe,QAAQ,IAAI,UAAU;AAAA,MACjD,IAAI,4BAA4B,KAAK,GAAG,GAAG;AAAA,QACzC,MAAM,IAAI,mCAAkC,iBAAgB,OAAO,QAAQ,GAAG,GAAG;AAAA,MACnF;AAAA,MACA,MAAM,IAAI,8BAA6B,iBAAgB,OAAO,QAAQ,GAAG,KAAK;AAAA,QAC5E,OAAO;AAAA,MACT,CAAC;AAAA;AAAA,EAEL;AAAA,EAGA,IAAI;AAAA,IACF,MAAM,SAAS,MAAM,OAAO,OAAO,SACjC;AAAA,MACE,OAAO;AAAA,MACP,QAAQ,MAAM;AAAA,MACd;AAAA,MACA,SAAS,MAAM;AAAA,MACf,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,gBAAgB;AAAA,SACZ,MAAM,mBAAmB,CAAC;AAAA,IAChC,GACA,EAAE,OAAO,CACX;AAAA,IAEA,iBAAiB,SAAS,QAAQ;AAAA,MAChC,IAAI,OAAO;AAAA,QAAS;AAAA,MACpB,MAAM,MAAM,MAAM;AAAA,MAClB,IAAI,CAAC;AAAA,QAAK;AAAA,MACV,MAAM,QAAQ,MAAM,cAAa,GAAG;AAAA,MACpC,KAAK,EAAE,MAAM,YAAY,MAAM,EAAE,MAAM,EAAE,CAA+B;AAAA,IAC1E;AAAA,IACA,KAAK,EAAE,MAAM,UAAU,MAAM,CAAC,EAA6B,CAAC;AAAA,IAC5D,OAAO,KAAK;AAAA,IACZ,IACE,eAAe,iCACf,eAAe,oCACf;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA,MAAM,MAAM,eAAe,QAAQ,IAAI,UAAU;AAAA,IACjD,IAAI,4BAA4B,KAAK,GAAG,GAAG;AAAA,MACzC,MAAM,IAAI,mCAAkC,iBAAgB,OAAO,QAAQ,GAAG,GAAG;AAAA,IACnF;AAAA,IACA,MAAM,IAAI,8BAA6B,iBAAgB,OAAO,QAAQ,GAAG,KAAK;AAAA,MAC5E,OAAO;AAAA,IACT,CAAC;AAAA;AAAA;;;AChIL,IAAM,8BAA2F;AAAA,EAC/F,0BAA0B,EAAE,mBAAmB,MAAM,KAAK,KAAK;AAAA,EAC/D,0BAA0B,EAAE,mBAAmB,MAAM,KAAK,KAAK;AAAA,EAC/D,0BAA0B,EAAE,mBAAmB,MAAM,KAAK,MAAM;AAClE;AAEA,SAAS,WAAW,CAAC,OAA8C;AAAA,EACjE,MAAM,OAAO,OAAO,iBAAiB;AAAA,EACrC,IAAI,CAAC,MAAM;AAAA,IACT,MAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,eAAe,CAAC,KAAuB;AAAA,EAC9C,IAAI,CAAC,OAAO,OAAO,QAAQ;AAAA,IAAU,OAAO;AAAA,EAC5C,MAAM,SAAU,IAA6B;AAAA,EAC7C,MAAM,OAAQ,IAA2B;AAAA,EACzC,MAAM,aAAc,IAAiC;AAAA,EACrD,OAAO,WAAW,OAAO,eAAe,OAAO,SAAS;AAAA;AAQ1D,eAAe,uBAAuB,CACpC,OACA,QACiB;AAAA,EACjB,MAAM,YAAY,YAAY,KAAK;AAAA,EACnC,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,EACpC,IAAI;AAAA,IACF,MAAM,OAAO,OAAO,SAAS,WAAW,SAAS,EAAE,OAAO,IAAI,SAAS;AAAA,IACvE,OAAO,KAAK;AAAA,IACZ,IAAI,gBAAgB,GAAG,GAAG;AAAA,MACxB,MAAM,IAAI,MACR,GAAG,iBAAiB,4DACtB;AAAA,IACF;AAAA,IACA,MAAM;AAAA;AAAA,EAER,OAAO;AAAA;AAGT,SAAS,cAAc,CAAC,OAAgD;AAAA,EACtE,OAAO;AAAA,IACL,OAAO,MAAM;AAAA,IACb,UAAU;AAAA,IACV,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AAAA;AASK,IAAM,0BAIT,OAAO,OAAO,OAAO,QAAQ,SAAS;AAAA,EACxC,MAAM,YAAY,MAAM,wBAAwB,OAAO,MAAM;AAAA,EAC7D,MAAM,OAAO,eAAe,KAAK;AAAA,EAEjC,IAAI,MAAM,WAAW,cAAc;AAAA,IACjC,MAAM,KAAK,OAAO;AAAA,IAClB,IAAI,oBACF,OAAO,IAAI,sBAAsB,WAAW,GAAG,oBAAoB;AAAA,IACrE,IAAI,MAAM,OAAO,IAAI,QAAQ,YAAY,GAAG,MAAM;AAAA,IAElD,IAAI,sBAAsB,WAAW;AAAA,MACnC,MAAM,QAAQ,4BAA4B;AAAA,MAC1C,IAAI,OAAO;AAAA,QACT,oBAAoB,MAAM;AAAA,QAC1B,MAAM,OAAO,MAAM;AAAA,MACrB;AAAA,IACF;AAAA,IAEA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,MAAM;AAAA,WACD;AAAA,WACC,sBAAsB,YAAY,EAAE,kBAAkB,IAAI,CAAC;AAAA,WAC3D,QAAQ,YAAY,EAAE,IAAI,IAAI,CAAC;AAAA,MACrC;AAAA,IACF,CAAC;AAAA,IACD;AAAA,EACF;AAAA,EAEA,KAAK,EAAE,MAAM,UAAU,MAAM,KAAK,CAAC;AAAA;;;AClGrC;AACA;AAWA,IAAM,kBAA2D;AAAA,EAC/D,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,YAAY,OAAO,WAAW;AAAA,EACvC,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,EACrC,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,iBAAiB,OAAO,gBAAgB;AAAA,EACjD,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,EACrC,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,EAC/C,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACjC,EAAE,OAAO,cAAc,OAAO,aAAa;AAAA,EAC3C,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,eAAe,OAAO,cAAc;AAAA,EAC7C,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,EAC3B,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,EACrC,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,EAC3B,EAAE,OAAO,WAAW,OAAO,UAAU;AACvC;AAEA,IAAM,sBAAwE;AAAA,EAC5E,EAAE,OAAO,eAAe,cAAc,CAAC,oBAAoB,eAAe,EAAE;AAAA,EAC5E,EAAE,OAAO,YAAY,cAAc,CAAC,kBAAkB,EAAE;AAC1D;AAEA,eAAe,gBAAgB,CAAC,eAAuD;AAAA,EACrF,MAAM,SAAS,MAAM,UAAU;AAAA,IAC7B,UAAU;AAAA,IACV,iBAAiB,EAAE,YAAY,IAAI,gBAAgB,cAAc;AAAA,EACnE,CAAC;AAAA,EACD,MAAM,SAAgC,CAAC;AAAA,EACvC,iBAAiB,KAAK,OAAO,OAAO,KAAK,GAAG;AAAA,IAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,IAAI,aAAa,EAAE,SAAS,CAAC;AAAA,EACnE;AAAA,EACA,OAAO,KAAK,CAAC,GAAG,MAAM;AAAA,IACpB,MAAM,OAAO,EAAE,MAAM,WAAW,KAAK,KAAK,EAAE,MAAM,WAAW,IAAI,IAAI,IAAI;AAAA,IACzE,MAAM,OAAO,EAAE,MAAM,WAAW,KAAK,KAAK,EAAE,MAAM,WAAW,IAAI,IAAI,IAAI;AAAA,IACzE,IAAI,SAAS;AAAA,MAAM,OAAO,OAAO;AAAA,IACjC,OAAO,EAAE,MAAM,cAAc,EAAE,KAAK;AAAA,GACrC;AAAA,EACD,OAAO;AAAA;AAGT,SAAS,YAAY,CAAC,QAAwD;AAAA,EAC5E,OAAO,OAAO,IAAI,CAAC,MAAM;AAAA,IACvB,MAAM,aAAa,oBAAoB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK;AAAA,IACtE,OAAO;AAAA,MACL,IAAI,EAAE;AAAA,MACN,OAAO,EAAE;AAAA,MACT,aAAa,EAAE,eAAe;AAAA,MAC9B,QAAQ,mBACN;AAAA,QACE,UAAU,EAAE;AAAA,QACZ,UAAU;AAAA,QACV,OAAO,EAAE;AAAA,QACT,aAAa;AAAA,QACb,cAAc,YAAY,gBAAgB,CAAC;AAAA,QAC3C,iBAAiB,EAAE,YAAY,EAAE,MAAM;AAAA,QACvC,UAAU,CAAC;AAAA,MACb,GACA,mBAAmB,EAAE,UAAU,QAAQ,iBAAiB,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CACnF;AAAA,MACA,KAAK;AAAA,IACP;AAAA,GACD;AAAA;AAQI,IAAM,4BAGT,OAAO,OAAO,QAAQ,SAAS,SAAS;AAAA,EAC1C,IAAI;AAAA,EACJ,IAAI,CAAC,MAAM,gBAAgB;AAAA,IACzB,SAAS;AAAA,EACX,EAAO;AAAA,IACL,SAAS,MAAM,iBAAiB,MAAM,cAAc;AAAA;AAAA,EAEtD,SAAS,2BAA2B,QAAQ,MAAM,KAAK;AAAA,EACvD,KAAK,EAAE,MAAM,UAAU,MAAM,EAAE,SAAS,aAAa,MAAM,EAAE,EAAE,CAAC;AAAA;;;AC/FlE;AAAA;AAAA;AAAA;AAAA,6BAIE;AAAA;AAAA;AAAA;AAIF;;;ACdA;AAQA,IAAM,qBAAqB,IAAI;AAExB,SAAS,sBAAsB,CACpC,OACA,OACM;AAAA,EACN,MAAM,MAAM,GAAG,UAAU;AAAA,EACzB,IAAI,mBAAmB,IAAI,GAAG;AAAA,IAAG;AAAA,EACjC,mBAAmB,IAAI,GAAG;AAAA,EAC1B,UAAU,EAAE,KACV,wCAAwC,uCACtC,cAAc,kBAAkB,2CAChC,6CACJ;AAAA;AAUF,IAAM,yBAAyB,IAAI;AAE5B,SAAS,wBAAwB,CAAC,OAAe,QAAsB;AAAA,EAC5E,IAAI,uBAAuB,IAAI,KAAK;AAAA,IAAG;AAAA,EACvC,uBAAuB,IAAI,KAAK;AAAA,EAChC,UAAU,EAAE,KACV,2CAA2C,6BACzC,6EACA,IAAI,iEACJ,oEACA,+DACA,0BACJ;AAAA;AAIK,SAAS,6BAA6B,GAAS;AAAA,EACpD,mBAAmB,MAAM;AAAA,EACzB,uBAAuB,MAAM;AAAA;;;ADtBxB,IAAM,qCAIT,OAAO,OAAO,OAAO,QAAQ,MAAM,iBAAiB;AAAA,EACtD,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,EACpC,MAAM,YAAY,aAAa,KAAK;AAAA,EAEpC,MAAM,SAAS,MAAM,gBAAgB;AAAA,EACrC,MAAM,YAAY,+BAA+B,MAAM;AAAA,EACvD,MAAM,SAAS,yBAAyB,SAAS;AAAA,EACjD,MAAM,SAAS,SAAS,MAAM,SAAS,qBAAqB,MAAM,QAAQ,MAAM;AAAA,EAChF,IAAI,CAAC,QAAQ;AAAA,IAGX,MAAM,SAAS,qBAAqB,SAAS,KAAK;AAAA,IAClD,yBAAyB,WAAW,MAAM;AAAA,EAC5C;AAAA,EAEA,MAAM,SAAkC;AAAA,IACtC,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QAGN,QAAQ,SAAS,YAAY;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI,MAAM,cAAc;AAAA,IAAW,OAAO,oBAAoB,MAAM;AAAA,EACpE,IAAI,MAAM,gBAAgB;AAAA,IAAW,OAAO,cAAc,MAAM;AAAA,EAChE,yBAAyB,OAAO,MAAM;AAAA,EAMtC,MAAM,mBAAmB,mCAAmC,IAAI;AAAA,EAChE,iBAAiB,SAAS,OAAO,WAAW,WAAW,SAAS,EAAE;AAAA,EAElE,MAAM,SAAS,MAAM,OAAO,UAAU,OACpC,KAAK,QAAQ,QAAQ,KAAK,GAC1B,EAAE,OAAO,CACX;AAAA,EAEA,MAAM,OAAO,wBAAwB;AAAA,EACrC,IAAI,UAAU;AAAA,EACd,IAAI;AAAA,EACJ,iBAAiB,SAAS,QAItB;AAAA,IACF,IACE,MAAM,SAAS,wBACf,MAAM,SAAS,yBACf,MAAM,SAAS,mBACf;AAAA,MACA,QAAQ,yBAAwB,MAAM,UAAU,KAAK,KAAK;AAAA,IAC5D,EAAO,SAAI,MAAM,SAAS,8BAA8B;AAAA,MACtD,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC7B,IAAI,OAAO;AAAA,QACT,iBAAiB,OAAO,KAAK;AAAA,QAC7B,MAAM,UAAU,KAAK,KAAK,KAAK;AAAA,QAC/B,IAAI,YAAY,WAAW;AAAA,UACzB,KAAK,EAAE,MAAM,gBAAgB,MAAM,UAAU,aAAa,QAAQ,CAAC;AAAA,QACrE;AAAA,MACF;AAAA,IACF,EAAO,SAAI,MAAM,SAAS,0BAA0B;AAAA,MAClD,WAAW,MAAM,SAAS;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,iBAAiB,MAAM;AAAA,EAEvB,IAAI,SAAS;AAAA,IAGX,KAAK,EAAE,MAAM,WAAW,QAAQ,CAAC;AAAA,EACnC;AAAA,EAEA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,MAAM,EAAE,QAAQ,KAAK,aAAa,EAAE;AAAA,IACpC;AAAA,EACF,CAAC;AAAA;;;AE9GH;AACA,sBAAS;AASF,IAAM,8BAIT,OAAO,OAAO,OAAO,QAAQ,SAAS;AAAA,EACxC,MAAM,SAAS,WAAU;AAAA,EACzB,MAAM,aAAa,wBAAwB,aAAa,KAAK;AAAA,EAC7D,OAAO,KAAK,YAAY,EAAE,OAAO,aAAa,KAAK,EAAE,CAAC;AAAA,EACtD,IAAI;AAAA,IACF,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,IACpC,MAAM,YAAY,aAAa,KAAK;AAAA,IAEpC,MAAM,WAAW,MAAM,OAAO,WAAW,OACvC;AAAA,MACE,OAAO;AAAA,MACP,OAAO,MAAM;AAAA,IACf,GACA,EAAE,OAAO,CACX;AAAA,IAEA,MAAM,SAAkC,MAAM,QAAQ,MAAM,IAAI,IAC3D;AAAA,MACC,QAAQ,SAAS,KAAK,IACpB,CAAC,SAAkC,IAAI,aAAa,KAAK,SAAS,CACpE;AAAA,IACF,IACC,EAAE,QAAQ,IAAI,aAAa,SAAS,KAAK,GAAG,SAAS,EAAE;AAAA,IAI5D,MAAM,WAAY,SACf;AAAA,IACH,MAAM,QAAQ,iBAAiB;AAAA,MAC7B,OAAO,aAAa,UAAU,aAAa;AAAA,MAC3C,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,OAAO,aAAa,UAAU,YAAY;AAAA,MAC1C,OAAO;AAAA,IACT,CAAC;AAAA,IAED,KAAK,EAAE,MAAM,UAAU,MAAM,QAAQ,MAAM,CAAC;AAAA,YAC5C;AAAA,IACA,OAAO,QAAQ,YAAY,EAAE,OAAO,aAAa,KAAK,EAAE,CAAC;AAAA;AAAA;;;ACtD7D;AAAA;AAAA,yBAEE;AAAA,yBACA;AAAA,wCACA;AAAA;AAAA;AAGF,6BAAS;AACT,sBAAS;AA0BT,SAAS,oBAAoB,CAC3B,OACA,OACyB;AAAA,EACzB,MAAM,cAAc,MAAM,QAAQ,MAAM,QAAQ,KAAK,MAAM,SAAS,SAAS;AAAA,EAC7E,MAAM,WAAW,cACb,kBAAiB;AAAA,IACf,UAAU,MAAM;AAAA,IAChB,cAAc,MAAM;AAAA,IACpB,QAAQ;AAAA,IACR,OAAO,CAAC;AAAA,EACV,CAAU,IACV;AAAA,EAEJ,QAAQ,OAAO,gBAAgB,iBAAiB,qBAAoB;AAAA,IAClE;AAAA,IACA,QAAQ,cAAc,YAAY,MAAM;AAAA,IACxC,cAAc,cAAc,YAAY,MAAM;AAAA,EAChD,CAAC;AAAA,EAED,MAAM,SAAkC;AAAA,IACtC,OAAO,aAAa,KAAK;AAAA,IACzB,OAAO;AAAA,EACT;AAAA,EACA,IAAI,iBAAiB;AAAA,IAAW,OAAO,eAAe;AAAA,EACtD,IAAI,MAAM,cAAc;AAAA,IAAW,OAAO,oBAAoB,MAAM;AAAA,EACpE,IAAI,MAAM,gBAAgB;AAAA,IAAW,OAAO,cAAc,MAAM;AAAA,EAChE,IAAK,MAA4B,SAAS;AAAA,IACxC,OAAO,QAAS,MAA4B;AAAA,EAI9C,MAAM,YAAY,aAAa,KAAK;AAAA,EACpC,IAAI,MAAM,qBAAqB,WAAW;AAAA,IACxC,uBAAuB,WAAW,kBAAkB;AAAA,EACtD;AAAA,EACA,IAAI,MAAM,oBAAoB,WAAW;AAAA,IACvC,uBAAuB,WAAW,iBAAiB;AAAA,EACrD;AAAA,EAEA,OAAO;AAAA;AAUF,IAAM,+BAIT,OAAO,OAAO,OAAO,QAAQ,MAAM,eAAe,mBAAmB;AAAA,EACvE,MAAM,SAAS,WAAU;AAAA,EACzB,MAAM,aAAa,yBAAyB,aAAa,KAAK;AAAA,EAC9D,OAAO,KAAK,YAAY,EAAE,OAAO,aAAa,KAAK,EAAE,CAAC;AAAA,EACtD,IAAI;AAAA,IACF,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,IAIpC,MAAM,UAAU;AAAA,IAChB,MAAM,SAAS,4BAA4B,gBAAgB,OAAO;AAAA,IAClE,MAAM,YAAwC,SAC1C,KAAK,SAAS,UAAU,OAAO,UAAU,cAAc,OAAO,cAAc,QAAQ,GAAG,IACvF;AAAA,IACJ,MAAM,SAAS,qBAAqB,WAAW,KAAK;AAAA,IAMpD,IAAI,QAAQ,SAAS,OAAO,MAAM,SAAS,GAAG;AAAA,MAC5C,OAAO,QAAQ,qBAAoB,OAAO,KAAK;AAAA,IACjD;AAAA,IACA,yBAAyB,OAAO,MAAM;AAAA,IAItC,MAAM,aAAa,oCAAoC,MAAM;AAAA,IAC7D,oCAAmC,IAAI,EAAE,SAAS,UAAU;AAAA,IAE5D,MAAM,SAAS,MAAM,OAAO,UAAU,OACpC,KAAK,QAAQ,QAAQ,KAAK,GAC1B,EAAE,OAAO,CACX;AAAA,IAEA,MAAM,QAAQ,MAAM,gCAAgC,QAAkC,MAAM;AAAA,MAC1F;AAAA,IACF,CAAC;AAAA,IACD,KAAK,EAAE,MAAM,UAAU,MAAM,CAAC,GAA+B,MAAM,CAAC;AAAA,YACpE;AAAA,IACA,OAAO,QAAQ,YAAY,EAAE,OAAO,aAAa,KAAK,EAAE,CAAC;AAAA;AAAA;;;ACpI7D;AAAA,qCACE;AAAA,wCACA;AAAA,yCACA;AAAA;AAUK,IAAM,6BAIT,OAAO,OAAO,OAAO,QAAQ,SAAS;AAAA,EACxC,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,EAEpC,MAAM,SAAkC;AAAA,IACtC,OAAO,aAAa,KAAK;AAAA,IACzB,cAAc,MAAM;AAAA,IACpB,OAAO,MAAM;AAAA,EACf;AAAA,EACA,yBAAyB,OAAO,MAAM;AAAA,EAEtC,MAAM,aAAa,qCAAoC,MAAM;AAAA,EAC7D,oCAAmC,IAAI,EAAE,SAAS,UAAU;AAAA,EAE5D,MAAM,SAAS,MAAM,OAAO,UAAU,OACpC,KAAK,QAAQ,QAAQ,KAAK,GAC1B,EAAE,OAAO,CACX;AAAA,EAEA,MAAM,QAAQ,MAAM,iCAAgC,QAAkC,MAAM;AAAA,IAC1F;AAAA,EACF,CAAC;AAAA,EACD,KAAK,EAAE,MAAM,UAAU,MAAM,CAAC,GAA6B,MAAM,CAAC;AAAA;;;ACtCpE;AAAA,qCACE;AAAA,wCACA;AAAA,yCACA;AAAA;AASK,IAAM,4BAIT,OAAO,OAAO,OAAO,QAAQ,SAAS;AAAA,EACxC,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,EAEpC,MAAM,SAAkC;AAAA,IACtC,OAAO,aAAa,KAAK;AAAA,IACzB,cAAc;AAAA,IACd,OAAO,MAAM;AAAA,EACf;AAAA,EACA,yBAAyB,OAAO,MAAM;AAAA,EAEtC,MAAM,aAAa,qCAAoC,MAAM;AAAA,EAC7D,oCAAmC,IAAI,EAAE,SAAS,UAAU;AAAA,EAE5D,MAAM,SAAS,MAAM,OAAO,UAAU,OACpC,KAAK,QAAQ,QAAQ,KAAK,GAC1B,EAAE,OAAO,CACX;AAAA,EAEA,MAAM,QAAQ,MAAM,iCAAgC,QAAkC,MAAM;AAAA,IAC1F;AAAA,EACF,CAAC;AAAA,EACD,KAAK,EAAE,MAAM,UAAU,MAAM,CAAC,GAA4B,MAAM,CAAC;AAAA;;;AChCnE;AAAA,qCACE;AAAA,yBACA;AAAA,yBACA;AAAA,wCACA;AAAA;AAAA,yCAEA;AAAA;AAEF,mDAA+B;AAexB,IAAM,4BAIT,OAAO,OAAO,OAAO,QAAQ,MAAM,eAAe,mBAAmB;AAAA,EACvE,MAAM,SAAS,MAAM,UAAU,KAAK;AAAA,EACpC,MAAM,YAAY,aAAa,KAAK;AAAA,EAOpC,MAAM,SAAS,4BAA4B,gBAAgB,KAAK;AAAA,EAChE,MAAM,kBAAkB,QAAQ,SAAS,MAAM;AAAA,EAC/C,MAAM,QAAQ,qBAAoB,eAAe;AAAA,EACjD,QAAQ,OAAO,gBAAgB,iBAAiB,qBAAoB;AAAA,IAClE,UAAU,kBACR,SACK;AAAA,SACI;AAAA,MACH,UAAU,OAAO;AAAA,MACjB,cAAc,OAAO;AAAA,MACrB,QAAQ;AAAA,IACV,IACA,KACN;AAAA,EACF,CAAC;AAAA,EACD,MAAM,aAAa,uBAAuB,MAAM,UAAU;AAAA,EAE1D,MAAM,SAAkC;AAAA,IACtC,OAAO;AAAA,IACP,OAAO;AAAA,IACP;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA,IAAI,iBAAiB;AAAA,IAAW,OAAO,eAAe;AAAA,EACtD,IAAI,MAAM,cAAc;AAAA,IAAW,OAAO,oBAAoB,MAAM;AAAA,EACpE,IAAI,MAAM,gBAAgB;AAAA,IAAW,OAAO,cAAc,MAAM;AAAA,EAChE,yBAAyB,OAAO,MAAM;AAAA,EAEtC,MAAM,aAAa,qCAAoC,MAAM;AAAA,EAC7D,oCAAmC,IAAI,EAAE,SAAS,UAAU;AAAA,EAE5D,MAAM,SAAS,MAAM,OAAO,UAAU,OACpC,KAAK,QAAQ,QAAQ,KAAK,GAC1B,EAAE,OAAO,CACX;AAAA,EAEA,MAAM,QAAQ,MAAM,iCAClB,QACA,CAAC,UAAU;AAAA,IACT,IAAI,MAAM,SAAS,kBAAkB,MAAM,SAAS,aAAa;AAAA,MAC/D,MAAM,YAAY,qBAAqB,MAAM,aAA0B,eAAe;AAAA,MACtF,IAAI,UAAU,SAAS,GAAG;AAAA,QACxB,KAAK,EAAE,MAAM,gBAAgB,MAAM,aAAa,aAAa,UAAU,CAAC;AAAA,MAC1E;AAAA,MACA;AAAA,IACF;AAAA,IACA,KAAK,KAAK;AAAA,KAEZ,EAAE,WAAW,CACf;AAAA,EACA,KAAK,EAAE,MAAM,UAAU,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,EAAE,GAA4B,MAAM,CAAC;AAAA;;;ACpDrF,IAAM,iBAAsF;AAAA,EACjG,EAAE,QAAQ,wBAAwB,OAAO,6BAA6B;AAAA,EACtE,EAAE,QAAQ,iBAAiB,OAAO,0BAA0B;AAAA,EAC5D,EAAE,QAAQ,kBAAkB,OAAO,mCAAmC;AAAA,EACtE,EAAE,QAAQ,sBAAsB,OAAO,2BAA2B;AAAA,EAClE,EAAE,QAAQ,qBAAqB,OAAO,0BAA0B;AAAA,EAChE,EAAE,QAAQ,uBAAuB,OAAO,4BAA4B;AAAA,EACpE,EAAE,QAAQ,yBAAyB,OAAO,4BAA4B;AAAA,EACtE,EAAE,QAAQ,sBAAsB,OAAO,wBAAwB;AAAA,EAC/D,EAAE,QAAQ,qBAAqB,OAAO,0BAA0B;AAAA,EAChE,EAAE,QAAQ,qBAAqB,OAAO,0BAA0B;AAAA,EAChE,EAAE,QAAQ,mBAAmB,OAAO,wBAAwB;AAAA,EAC5D,EAAE,QAAQ,yBAAyB,OAAO,8BAA8B;AAC1E;AAEO,IAAM,uBAGT;AAAA,EACF,iBAAiB;AACnB;;;AC3DA;AACA;;;ACOO,IAAM,sBAAsB,uBAAuB,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAE/E,SAAS,sBAAsB,GAA0D;AAAA,EAC9F,OAAO;AAAA;AAmBF,SAAS,uBAAuB,CAAC,OAA+C;AAAA,EACrF,MAAM,KAAK,OACT,MAAM,YACH,MAAM,iBAAyD,cAChE,EACJ;AAAA,EAGA,IAAI,mBAAmB,KAAK,EAAE,GAAG;AAAA,IAC/B,OAAO,CAAC,kBAAkB,sBAAsB,cAAc,cAAc;AAAA,EAC9E;AAAA,EAGA,IAAI,WAAW,KAAK,EAAE,GAAG;AAAA,IAGvB,OAAO,CAAC,oBAAoB,cAAc,cAAc;AAAA,EAC1D;AAAA,EACA,IAAI,cAAc,KAAK,EAAE,GAAG;AAAA,IAC1B,OAAO,CAAC,oBAAoB,iBAAiB,cAAc,cAAc;AAAA,EAC3E;AAAA,EAIA,IAAI,SAAS,KAAK,EAAE,KAAK,QAAQ,KAAK,EAAE,GAAG;AAAA,IACzC,MAAM,OAAqB;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,MAAM,iBACJ,kDAAkD,KAAK,EAAE,KAAK,QAAQ,KAAK,EAAE;AAAA,IAC/E,IAAI,gBAAgB;AAAA,MAClB,KAAK,KAAK,cAAc;AAAA,IAC1B;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAIA,MAAM,WAAY,MAAM,gBAAsD,CAAC;AAAA,EAC/E,IAAI,SAAS,SAAS;AAAA,IAAG,OAAO;AAAA,EAChC,OAAO,CAAC,gBAAgB,YAAY;AAAA;;;ADjE/B,MAAM,6BAA6B,yBAA4C,YAAY;AAAA,EAChG,MAAM;AAAA,EACN,aAAa;AACf,CAAC,EAAE;AAAA,EACQ,iBAAiB,CAAC,OAA2C;AAAA,IACpE,OAAO,wBAAwB,KAAK;AAAA;AAAA,EAG7B,YAAY,CAAC,OAAyD;AAAA,IAC7E,OAAO,mBAAmB,KAAK;AAAA;AAAA,EAGd,gBAAgB,GAAiD;AAAA,IAClF,OAAO,uBAAuB;AAAA;AAElC;;;AjBvBA,eAAsB,oBAAoB,CAAC,SAAoD;AAAA,EAC7F,6BAA6B;AAAA,EAC7B,MAAM,uBACJ,IAAI,qBAAqB,gBAAgB,oBAAoB,GAC7D,UACA,OACF;AAAA;;;AmBZF;;;ACAA,qCAAS;AAET,uBAAS;AAeF,MAAM,uBAAuB,0BAA4C,aAAY;AAAA,EAC1F,MAAM;AAAA,EACN,aAAa;AACf,CAAC,EAAE;AAAA,EACQ,iBAAiB,CAAC,OAA2C;AAAA,IACpE,OAAO,wBAAwB,KAAK;AAAA;AAAA,EAG7B,YAAY,CAAC,OAAyD;AAAA,IAC7E,OAAO,mBAAmB,KAAK;AAAA;AAAA,EAGd,gBAAgB,GAAiD;AAAA,IAClF,OAAO,uBAAuB;AAAA;AAElC;;;AD5BA,eAAsB,oBAAoB,GAAkB;AAAA,EAC1D,MAAM,uBACJ,CAAC,OAAO,IAAI,eAAe,gBAAgB,oBAAoB,EAAE,uBAAuB,EAAE,GAC1F,QACF;AAAA;",
31
+ "debugId": "E7975AC9BA69881B64756E2164756E21",
32
32
  "names": []
33
33
  }
@@ -8,29 +8,25 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
8
8
 
9
9
  // src/ai/common/OpenAI_Client.ts
10
10
  import { isBrowserLike, resolveApiKey, validateProviderBaseUrl } from "@workglow/ai/provider-utils";
11
- import { isModelEffortEnabled } from "@workglow/ai/worker";
11
+ import { resolveEnabledEffort } from "@workglow/ai/worker";
12
12
 
13
13
  // src/ai/common/OpenAI_EffortPolicy.ts
14
- import { MODEL_EFFORTS } from "@workglow/ai/worker";
15
- var ALL = { supported: MODEL_EFFORTS, default: undefined };
14
+ import {
15
+ EFFORT_POLICY_NONE,
16
+ makeEffortPolicy,
17
+ MODEL_EFFORTS
18
+ } from "@workglow/ai/worker";
16
19
  var REASONING = {
17
20
  supported: MODEL_EFFORTS,
18
21
  default: "medium"
19
22
  };
20
- var NONE = { supported: [], default: undefined };
21
- function modelName(model) {
22
- return String(model.provider_config?.model_name ?? "").trim();
23
- }
24
- function openaiEffortPolicy(model) {
25
- const id = modelName(model);
26
- if (!id)
27
- return ALL;
28
- if (/^text-embedding/i.test(id) || /^gpt-image/i.test(id) || /^dall-e/i.test(id))
29
- return NONE;
30
- if (/^gpt-5/i.test(id) || /^o[134]/i.test(id))
31
- return REASONING;
32
- return NONE;
33
- }
23
+ var openaiEffortPolicy = makeEffortPolicy({
24
+ rules: [
25
+ { when: [/^text-embedding/i, /^gpt-image/i, /^dall-e/i], policy: EFFORT_POLICY_NONE },
26
+ { when: [/^gpt-5/i, /^o[134]/i], policy: REASONING }
27
+ ],
28
+ fallback: EFFORT_POLICY_NONE
29
+ });
34
30
 
35
31
  // src/ai/common/OpenAI_Client.ts
36
32
  var EFFORT_TO_OPENAI = {
@@ -96,9 +92,9 @@ function getReasoningConfig(model) {
96
92
  if (reasoning && (reasoning.effort !== undefined || reasoning.mode !== undefined)) {
97
93
  return reasoning;
98
94
  }
99
- if (model && isModelEffortEnabled(model, openaiEffortPolicy(model))) {
100
- return { effort: EFFORT_TO_OPENAI[model.effort] };
101
- }
95
+ const effort = resolveEnabledEffort(model, openaiEffortPolicy(model));
96
+ if (effort !== undefined)
97
+ return { effort: EFFORT_TO_OPENAI[effort] };
102
98
  return;
103
99
  }
104
100
  function fnv1aHex(input) {
@@ -314,10 +310,10 @@ function registerOpenAiImageValidator() {
314
310
  AiImageOutputTask.registerProviderImageValidator(OPENAI, (taskType, input, model) => {
315
311
  if (taskType !== "ImageEditTask")
316
312
  return;
317
- const modelName2 = model.provider_config?.model_name ?? "";
313
+ const modelName = model.provider_config?.model_name ?? "";
318
314
  const additional = input["additionalImages"];
319
- if (modelName2.startsWith("dall-e-2") && Array.isArray(additional) && additional.length > 0) {
320
- throw new ProviderUnsupportedFeatureError("additionalImages", model.model_id ?? modelName2, "DALL-E 2 only supports single-image edits");
315
+ if (modelName.startsWith("dall-e-2") && Array.isArray(additional) && additional.length > 0) {
316
+ throw new ProviderUnsupportedFeatureError("additionalImages", model.model_id ?? modelName, "DALL-E 2 only supports single-image edits");
321
317
  }
322
318
  });
323
319
  }
@@ -337,4 +333,4 @@ export {
337
333
  registerOpenAi
338
334
  };
339
335
 
340
- //# debugId=712AEB2F224767BB64756E2164756E21
336
+ //# debugId=65CB9307C22F0B4D64756E2164756E21