@elizaos/plugin-elizacloud 2.0.3-beta.2 → 2.0.3-beta.4

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 (182) hide show
  1. package/dist/cjs/index.node.cjs +32 -8
  2. package/dist/cjs/index.node.js.map +7 -7
  3. package/dist/cloud/auth-service-types.js +1 -1
  4. package/dist/cloud/auth-service-types.js.map +1 -1
  5. package/dist/cloud/auth.js +1 -1
  6. package/dist/cloud/auth.js.map +1 -1
  7. package/dist/cloud/backup.js +1 -1
  8. package/dist/cloud/backup.js.map +1 -1
  9. package/dist/cloud/base-url.js +1 -1
  10. package/dist/cloud/base-url.js.map +1 -1
  11. package/dist/cloud/bridge-client.js +1 -1
  12. package/dist/cloud/bridge-client.js.map +1 -1
  13. package/dist/cloud/clack-observer.js +1 -1
  14. package/dist/cloud/clack-observer.js.map +1 -1
  15. package/dist/cloud/cloud-api-key.js +1 -1
  16. package/dist/cloud/cloud-api-key.js.map +1 -1
  17. package/dist/cloud/cloud-manager.js +1 -1
  18. package/dist/cloud/cloud-manager.js.map +1 -1
  19. package/dist/cloud/cloud-proxy.js +1 -1
  20. package/dist/cloud/cloud-proxy.js.map +1 -1
  21. package/dist/cloud/cloud-wallet.js +1 -1
  22. package/dist/cloud/cloud-wallet.js.map +1 -1
  23. package/dist/cloud/duffel-client.js +1 -1
  24. package/dist/cloud/duffel-client.js.map +1 -1
  25. package/dist/cloud/index.js +914 -11
  26. package/dist/cloud/index.js.map +13 -4
  27. package/dist/cloud/lifeops-schedule-sync-client.js +1 -1
  28. package/dist/cloud/lifeops-schedule-sync-client.js.map +1 -1
  29. package/dist/cloud/lifeops-schedule-sync-contracts.js +1 -1
  30. package/dist/cloud/lifeops-schedule-sync-contracts.js.map +1 -1
  31. package/dist/cloud/managed-payment-clients.js +1 -1
  32. package/dist/cloud/managed-payment-clients.js.map +1 -1
  33. package/dist/cloud/null-observer.js +1 -1
  34. package/dist/cloud/null-observer.js.map +1 -1
  35. package/dist/cloud/reconnect.js +1 -1
  36. package/dist/cloud/reconnect.js.map +1 -1
  37. package/dist/cloud/validate-url.js +1 -1
  38. package/dist/cloud/validate-url.js.map +1 -1
  39. package/dist/cloud/x402-payment-handler.js +1 -1
  40. package/dist/cloud/x402-payment-handler.js.map +1 -1
  41. package/dist/cloud-providers/cloud-status.js +1 -1
  42. package/dist/cloud-providers/cloud-status.js.map +1 -1
  43. package/dist/cloud-providers/container-health.js +1 -1
  44. package/dist/cloud-providers/container-health.js.map +1 -1
  45. package/dist/cloud-providers/credit-balance.js +1 -1
  46. package/dist/cloud-providers/credit-balance.js.map +1 -1
  47. package/dist/cloud-providers/index.js +1 -1
  48. package/dist/cloud-providers/index.js.map +1 -1
  49. package/dist/cloud-providers/model-registry.js +1 -1
  50. package/dist/cloud-providers/model-registry.js.map +1 -1
  51. package/dist/cloud-setup.js +1 -1
  52. package/dist/cloud-setup.js.map +1 -1
  53. package/dist/cloud-voice-catalog.js +1 -1
  54. package/dist/cloud-voice-catalog.js.map +2 -2
  55. package/dist/index.js +45 -16
  56. package/dist/index.js.map +9 -8
  57. package/dist/init.js +1 -1
  58. package/dist/init.js.map +1 -1
  59. package/dist/lib/cloud-connection.js +1 -1
  60. package/dist/lib/cloud-connection.js.map +1 -1
  61. package/dist/lib/cloud-secrets.js +1 -1
  62. package/dist/lib/cloud-secrets.js.map +1 -1
  63. package/dist/lib/config-env.js +1 -1
  64. package/dist/lib/config-env.js.map +1 -1
  65. package/dist/lib/config-like.js +1 -1
  66. package/dist/lib/config-like.js.map +1 -1
  67. package/dist/lib/credential-type-map.js +1 -1
  68. package/dist/lib/credential-type-map.js.map +1 -1
  69. package/dist/lib/feature-flags.js +1 -1
  70. package/dist/lib/feature-flags.js.map +1 -1
  71. package/dist/lib/http.js +1 -1
  72. package/dist/lib/http.js.map +1 -1
  73. package/dist/lib/server-cloud-tts.js +1 -1
  74. package/dist/lib/server-cloud-tts.js.map +1 -1
  75. package/dist/lib/state-paths.js +1 -1
  76. package/dist/lib/state-paths.js.map +1 -1
  77. package/dist/lib/tts-debug.js +1 -1
  78. package/dist/lib/tts-debug.js.map +1 -1
  79. package/dist/models/embeddings.d.ts.map +1 -1
  80. package/dist/models/embeddings.js +4 -1
  81. package/dist/models/embeddings.js.map +3 -3
  82. package/dist/models/image.js +1 -1
  83. package/dist/models/image.js.map +1 -1
  84. package/dist/models/index.js +32 -8
  85. package/dist/models/index.js.map +5 -5
  86. package/dist/models/research.js +1 -1
  87. package/dist/models/research.js.map +1 -1
  88. package/dist/models/speech.js +1 -1
  89. package/dist/models/speech.js.map +2 -2
  90. package/dist/models/text.d.ts +1 -0
  91. package/dist/models/text.d.ts.map +1 -1
  92. package/dist/models/text.js +30 -8
  93. package/dist/models/text.js.map +3 -3
  94. package/dist/models/tokenization.js +1 -1
  95. package/dist/models/tokenization.js.map +1 -1
  96. package/dist/models/transcription.js +1 -1
  97. package/dist/models/transcription.js.map +1 -1
  98. package/dist/node/index.node.js +32 -8
  99. package/dist/node/index.node.js.map +7 -7
  100. package/dist/plugin.js +1 -1
  101. package/dist/plugin.js.map +1 -1
  102. package/dist/providers/openai.js +1 -1
  103. package/dist/providers/openai.js.map +1 -1
  104. package/dist/register-routes.js +1 -1
  105. package/dist/register-routes.js.map +1 -1
  106. package/dist/routes/cloud-billing-routes.js +1 -1
  107. package/dist/routes/cloud-billing-routes.js.map +1 -1
  108. package/dist/routes/cloud-coding-container-routes.js +1 -1
  109. package/dist/routes/cloud-coding-container-routes.js.map +1 -1
  110. package/dist/routes/cloud-compat-routes.js +1 -1
  111. package/dist/routes/cloud-compat-routes.js.map +1 -1
  112. package/dist/routes/cloud-features-routes.js +1 -1
  113. package/dist/routes/cloud-features-routes.js.map +1 -1
  114. package/dist/routes/cloud-provisioning.js +1 -1
  115. package/dist/routes/cloud-provisioning.js.map +1 -1
  116. package/dist/routes/cloud-relay-routes.js +1 -1
  117. package/dist/routes/cloud-relay-routes.js.map +1 -1
  118. package/dist/routes/cloud-routes-autonomous.js +1 -1
  119. package/dist/routes/cloud-routes-autonomous.js.map +1 -1
  120. package/dist/routes/cloud-routes.js +1 -1
  121. package/dist/routes/cloud-routes.js.map +1 -1
  122. package/dist/routes/cloud-status-routes-autonomous.js +1 -1
  123. package/dist/routes/cloud-status-routes-autonomous.js.map +1 -1
  124. package/dist/routes/cloud-status-routes.js +1 -1
  125. package/dist/routes/cloud-status-routes.js.map +1 -1
  126. package/dist/routes/home-remote-runner-access-url.js +1 -1
  127. package/dist/routes/home-remote-runner-access-url.js.map +1 -1
  128. package/dist/routes/travel-provider-relay-routes.js +1 -1
  129. package/dist/routes/travel-provider-relay-routes.js.map +1 -1
  130. package/dist/services/cloud-auth.js +1 -1
  131. package/dist/services/cloud-auth.js.map +1 -1
  132. package/dist/services/cloud-backup.js +1 -1
  133. package/dist/services/cloud-backup.js.map +1 -1
  134. package/dist/services/cloud-bootstrap.js +1 -1
  135. package/dist/services/cloud-bootstrap.js.map +1 -1
  136. package/dist/services/cloud-bridge.js +1 -1
  137. package/dist/services/cloud-bridge.js.map +1 -1
  138. package/dist/services/cloud-container.js +1 -1
  139. package/dist/services/cloud-container.js.map +1 -1
  140. package/dist/services/cloud-credential-provider.js +1 -1
  141. package/dist/services/cloud-credential-provider.js.map +1 -1
  142. package/dist/services/cloud-managed-gateway-relay.js +1 -1
  143. package/dist/services/cloud-managed-gateway-relay.js.map +1 -1
  144. package/dist/services/cloud-model-registry.js +1 -1
  145. package/dist/services/cloud-model-registry.js.map +1 -1
  146. package/dist/services/index.js +1 -1
  147. package/dist/services/index.js.map +1 -1
  148. package/dist/types/cloud.js +1 -1
  149. package/dist/types/cloud.js.map +1 -1
  150. package/dist/types/index.js +1 -1
  151. package/dist/types/index.js.map +1 -1
  152. package/dist/utils/cloud-api.js +1 -1
  153. package/dist/utils/cloud-api.js.map +1 -1
  154. package/dist/utils/cloud-sdk/client.js +1 -1
  155. package/dist/utils/cloud-sdk/client.js.map +1 -1
  156. package/dist/utils/cloud-sdk/http.js +1 -1
  157. package/dist/utils/cloud-sdk/http.js.map +1 -1
  158. package/dist/utils/cloud-sdk/index.js +1 -1
  159. package/dist/utils/cloud-sdk/index.js.map +1 -1
  160. package/dist/utils/cloud-sdk/public-routes.js +1 -1
  161. package/dist/utils/cloud-sdk/public-routes.js.map +1 -1
  162. package/dist/utils/cloud-sdk/types.js +1 -1
  163. package/dist/utils/cloud-sdk/types.js.map +1 -1
  164. package/dist/utils/config.js +1 -1
  165. package/dist/utils/config.js.map +1 -1
  166. package/dist/utils/events.js +1 -1
  167. package/dist/utils/events.js.map +1 -1
  168. package/dist/utils/helpers.js +1 -1
  169. package/dist/utils/helpers.js.map +1 -1
  170. package/dist/utils/responses-output.js +1 -1
  171. package/dist/utils/responses-output.js.map +1 -1
  172. package/dist/utils/sdk-client.js +1 -1
  173. package/dist/utils/sdk-client.js.map +1 -1
  174. package/dist/utils/waifu-metering.js +1 -1
  175. package/dist/utils/waifu-metering.js.map +1 -1
  176. package/package.json +6 -5
  177. package/registry-entry.json +208 -0
  178. package/src/cloud-voice-catalog.ts +2 -2
  179. package/src/index.ts +1 -1
  180. package/src/models/embeddings.ts +9 -0
  181. package/src/models/speech.ts +2 -2
  182. package/src/models/text.ts +54 -6
@@ -9,6 +9,6 @@
9
9
  "import type { IAgentRuntime, ImageDescriptionParams, ImageGenerationParams } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport {\n getImageDescriptionModel,\n getImageGenerationModel,\n getSetting,\n resolveCloudTimeoutMs,\n} from \"../utils/config\";\nimport { emitModelUsageEvent } from \"../utils/events\";\nimport { parseImageDescriptionResponse } from \"../utils/helpers\";\nimport { createElizaCloudClient } from \"../utils/sdk-client\";\n\nexport async function handleImageGeneration(\n runtime: IAgentRuntime,\n params: ImageGenerationParams\n): Promise<{ url: string }[]> {\n const numImages = params.count || 1;\n const size = params.size || \"1024x1024\";\n const prompt = params.prompt;\n const modelName = getImageGenerationModel(runtime);\n logger.log(`[ELIZAOS_CLOUD] Using IMAGE model: ${modelName}`);\n\n const aspectRatioMap: Record<string, string> = {\n \"1024x1024\": \"1:1\",\n \"1792x1024\": \"16:9\",\n \"1024x1792\": \"9:16\",\n };\n const aspectRatio = aspectRatioMap[size] || \"1:1\";\n\n try {\n const requestBody = {\n prompt: prompt,\n numImages: numImages,\n aspectRatio: aspectRatio,\n model: modelName,\n };\n\n const typedData = await createElizaCloudClient(runtime).generateImage(requestBody);\n\n const result = typedData.images.map((img: { url?: string; image?: string }) => ({\n url: img.url ?? img.image ?? \"\",\n }));\n return result;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`[ELIZAOS_CLOUD] Image generation error: ${message}`);\n throw error;\n }\n}\n\nexport async function handleImageDescription(\n runtime: IAgentRuntime,\n params: ImageDescriptionParams | string\n): Promise<{ title: string; description: string }> {\n // Honour `DISABLE_IMAGE_DESCRIPTION` (set by the runtime when\n // `features.vision === false`). The runtime exposes it via getSetting; some\n // hosts only set it in process.env. Check both before burning a quota slot.\n // The docs (`docs/runtime/core.md`) already promise this behaviour, but\n // historically only `plugin-discord` honoured it at the call site, leaving\n // every other caller (agent-orchestrator's task validator, vision, lifeops,\n // farcaster, telegram) free to spend the rate-limit budget.\n const disableSetting = getSetting(runtime, \"DISABLE_IMAGE_DESCRIPTION\", \"\");\n const disabled = [disableSetting, process.env.DISABLE_IMAGE_DESCRIPTION].some((value) => {\n const normalized = value?.trim().toLowerCase();\n return normalized === \"1\" || normalized === \"true\" || normalized === \"yes\" || normalized === \"on\";\n });\n if (disabled) {\n logger.debug(\"[ELIZAOS_CLOUD] IMAGE_DESCRIPTION skipped — DISABLE_IMAGE_DESCRIPTION is set\");\n return {\n title: \"Image description disabled\",\n description: \"Image description is disabled by configuration.\",\n };\n }\n\n let imageUrl: string;\n let promptText: string | undefined;\n const modelName = getImageDescriptionModel(runtime);\n logger.log(`[ELIZAOS_CLOUD] Using IMAGE_DESCRIPTION model: ${modelName}`);\n const maxTokens = Number.parseInt(\n getSetting(runtime, \"ELIZAOS_CLOUD_IMAGE_DESCRIPTION_MAX_TOKENS\", \"8192\") || \"8192\",\n 10\n );\n\n if (typeof params === \"string\") {\n imageUrl = params;\n promptText = \"Please analyze this image and provide a title and detailed description.\";\n } else {\n imageUrl = params.imageUrl;\n promptText =\n params.prompt || \"Please analyze this image and provide a title and detailed description.\";\n }\n\n const messages = [\n {\n role: \"user\",\n content: [\n { type: \"text\", text: promptText },\n { type: \"image_url\", image_url: { url: imageUrl } },\n ],\n },\n ];\n\n const client = createElizaCloudClient(runtime);\n\n try {\n const requestBody: Record<string, unknown> = {\n model: modelName,\n messages: messages,\n max_tokens: maxTokens,\n };\n\n // On 429, honour the upstream's `retryAfter` instead of retrying on a\n // hardcoded backoff. Hardcoded retries inside the rate-limit window add\n // wasted requests to the same bucket and make the problem worse — see\n // #7374's billing render-loop fix and S33's dashboard 429-aware UX.\n // Strategy: only retry once, only if the upstream signals a short wait\n // (≤5s, i.e. transient burst). Anything longer, bail immediately and let\n // the caller fail fast.\n let response: Response | null = null;\n let attemptedRetry = false;\n for (let attempt = 0; attempt < 2; attempt++) {\n const attemptResponse = await client.routes.postApiV1ChatCompletionsRaw({\n json: requestBody,\n timeoutMs: resolveCloudTimeoutMs(\"ELIZAOS_CLOUD_IMAGE_TIMEOUT_MS\", 120_000),\n });\n if (!attemptResponse) {\n continue;\n }\n response = attemptResponse;\n if (attemptResponse.status !== 429 || attemptedRetry) break;\n\n // `Number(null) === 0`, so guard against a missing header before\n // calling `Number(...)` — otherwise the header path always wins with a\n // bogus `0` and the body fallback becomes unreachable.\n const headerValue = attemptResponse.headers.get(\"retry-after\");\n const headerRetryAfter =\n headerValue !== null && Number.isFinite(Number(headerValue))\n ? Number(headerValue)\n : undefined;\n let bodyRetryAfter: number | undefined;\n try {\n const peek = (await attemptResponse.clone().json()) as {\n retryAfter?: unknown;\n };\n bodyRetryAfter =\n typeof peek?.retryAfter === \"number\" && Number.isFinite(peek.retryAfter)\n ? peek.retryAfter\n : undefined;\n } catch {\n // Body wasn't JSON — fall through to header value.\n }\n const retryAfter = headerRetryAfter ?? bodyRetryAfter ?? 0;\n\n if (retryAfter > 0 && retryAfter <= 5) {\n logger.warn(\n `[ELIZAOS_CLOUD] Image analysis rate-limited (429), retrying once after ${retryAfter}s...`\n );\n await new Promise((r) => setTimeout(r, retryAfter * 1000));\n attemptedRetry = true;\n continue;\n }\n // Long rate-limit window: don't burn another bucket slot retrying inside it.\n logger.warn(\n `[ELIZAOS_CLOUD] Image analysis rate-limited (429); upstream retryAfter=${retryAfter || \"unknown\"}s — failing fast`\n );\n break;\n }\n\n if (!response) {\n throw new Error(\"ElizaOS Cloud API did not return a response\");\n }\n\n const finalResponse = response;\n\n if (!finalResponse.ok) {\n const status = finalResponse.status;\n if (status === 402) {\n throw new Error(\n \"Eliza Cloud credits exhausted — top up at https://www.elizacloud.ai/dashboard/settings?tab=billing\"\n );\n }\n if (status === 429) {\n throw new Error(\n \"Eliza Cloud rate limit exceeded for image description — try again in a minute\"\n );\n }\n throw new Error(`ElizaOS Cloud API error: ${status}`);\n }\n\n type OpenAIResponseType = {\n choices?: Array<{\n message?: { content?: string };\n finish_reason?: string;\n }>;\n usage?: {\n prompt_tokens: number;\n completion_tokens: number;\n total_tokens: number;\n };\n };\n\n const typedResult = (await finalResponse.json()) as OpenAIResponseType;\n const content = typedResult.choices?.[0]?.message?.content;\n\n if (typedResult.usage) {\n emitModelUsageEvent(\n runtime,\n ModelType.IMAGE_DESCRIPTION,\n typeof params === \"string\" ? params : params.prompt || \"\",\n {\n inputTokens: typedResult.usage.prompt_tokens,\n outputTokens: typedResult.usage.completion_tokens,\n totalTokens: typedResult.usage.total_tokens,\n }\n );\n }\n\n if (!content) {\n return {\n title: \"Failed to analyze image\",\n description: \"No response from API\",\n };\n }\n\n return parseImageDescriptionResponse(content);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Error analyzing image: ${message}`);\n return {\n title: \"Failed to analyze image\",\n description: `Error: ${message}`,\n };\n }\n}\n"
10
10
  ],
11
11
  "mappings": "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",
12
- "debugId": "579602FD6FB0EC2B64756E2164756E21",
12
+ "debugId": "60F3AF86C053730564756E2164756E21",
13
13
  "names": []
14
14
  }
@@ -295,6 +295,9 @@ async function handleBatchTextEmbedding(runtime, texts) {
295
295
  if (response.status === 401 || response.status === 403) {
296
296
  throw new Error(`[BatchEmbeddings] Authentication failed (${response.status}). ` + `Check ELIZAOS_CLOUD_API_KEY or ELIZAOS_CLOUD_EMBEDDING_API_KEY — ` + `the current key is not authorized for the embedding endpoint.`);
297
297
  }
298
+ if (response.status === 429) {
299
+ throw new Error(`[BatchEmbeddings] Rate-limit retry exhausted: API error: ${response.status} ${response.statusText}`);
300
+ }
298
301
  throw new Error(`[BatchEmbeddings] API error: ${response.status} ${response.statusText}`);
299
302
  }
300
303
  const data = await response.json();
@@ -1114,6 +1117,9 @@ function isReasoningModel(modelName) {
1114
1117
  const lower = modelName.toLowerCase();
1115
1118
  return REASONING_MODEL_PATTERNS.some((pattern) => lower.includes(pattern));
1116
1119
  }
1120
+ function isCerebrasServedModel(modelName) {
1121
+ return modelName.toLowerCase().includes("gpt-oss");
1122
+ }
1117
1123
  function isRecord(value) {
1118
1124
  return typeof value === "object" && value !== null && !Array.isArray(value);
1119
1125
  }
@@ -1235,7 +1241,15 @@ function normalizeNativeToolChoice(toolChoice) {
1235
1241
  }
1236
1242
  const choice = asRecord2(toolChoice);
1237
1243
  if (choice.type === "function") {
1238
- return toolChoice;
1244
+ const functionChoice2 = recordAt(choice, "function");
1245
+ const toolName2 = firstString(functionChoice2.name, choice.name, choice.toolName);
1246
+ return toolName2 ? {
1247
+ type: "function",
1248
+ function: {
1249
+ ...functionChoice2,
1250
+ name: toolName2
1251
+ }
1252
+ } : undefined;
1239
1253
  }
1240
1254
  if (choice.type === "tool") {
1241
1255
  const toolName2 = firstString(choice.toolName, choice.name);
@@ -1245,10 +1259,13 @@ function normalizeNativeToolChoice(toolChoice) {
1245
1259
  const toolName = firstString(choice.toolName, choice.name, functionChoice.name);
1246
1260
  return toolName ? { type: "function", function: { name: toolName } } : toolChoice;
1247
1261
  }
1248
- function buildNativeResponseFormat(responseSchema) {
1262
+ function buildNativeResponseFormat(responseSchema, modelName) {
1249
1263
  if (!responseSchema) {
1250
1264
  return;
1251
1265
  }
1266
+ if (isCerebrasServedModel(modelName)) {
1267
+ return { type: "json_object" };
1268
+ }
1252
1269
  const schemaRecord = asRecord2(responseSchema);
1253
1270
  if (schemaRecord.responseFormat) {
1254
1271
  return schemaRecord.responseFormat;
@@ -1326,15 +1343,20 @@ function buildNativeRequestBody(params, modelName, promptText, systemPrompt) {
1326
1343
  const promptCacheKey = providerOptions ? resolvePromptCacheKey(providerOptions) : undefined;
1327
1344
  const tools = normalizeNativeTools(params.tools);
1328
1345
  const toolChoice = normalizeNativeToolChoice(params.toolChoice);
1329
- const responseFormat = buildNativeResponseFormat(params.responseSchema);
1346
+ const responseFormat = buildNativeResponseFormat(params.responseSchema, modelName);
1330
1347
  const requestBody = {
1331
1348
  model: modelName,
1332
- messages: buildNativeMessages(params, promptText, systemPrompt),
1333
- max_tokens: params.maxTokens ?? 8192
1349
+ messages: buildNativeMessages(params, promptText, systemPrompt)
1334
1350
  };
1351
+ if (!params.omitMaxTokens) {
1352
+ requestBody.max_tokens = params.maxTokens ?? 8192;
1353
+ }
1335
1354
  if (!isReasoningModel(modelName) && typeof params.temperature === "number") {
1336
1355
  requestBody.temperature = params.temperature;
1337
1356
  }
1357
+ if (isCerebrasServedModel(modelName) && recordAt(asRecord2(params.providerOptions), "eliza").thinking === "off") {
1358
+ requestBody.reasoning_effort = "low";
1359
+ }
1338
1360
  if (tools) {
1339
1361
  requestBody.tools = tools;
1340
1362
  }
@@ -1496,9 +1518,11 @@ async function generateTextWithModel(runtime, modelType, params) {
1496
1518
  });
1497
1519
  const requestBody = {
1498
1520
  model: modelName,
1499
- input,
1500
- max_output_tokens: params.maxTokens ?? 8192
1521
+ input
1501
1522
  };
1523
+ if (!params.omitMaxTokens) {
1524
+ requestBody.max_output_tokens = params.maxTokens ?? 8192;
1525
+ }
1502
1526
  if (!reasoning && typeof params.temperature === "number") {
1503
1527
  requestBody.temperature = params.temperature;
1504
1528
  }
@@ -1903,4 +1927,4 @@ export {
1903
1927
  fetchTextToSpeech
1904
1928
  };
1905
1929
 
1906
- //# debugId=4FFC473B568B95F864756E2164756E21
1930
+ //# debugId=A300679511EB9B9464756E2164756E21